/*!
 * Theme: Egyptian
 * Package: DashLite v2.6.0
 * Updated: 06.29.2021
 * Author: Softnio
 * Author URI: http://themeforest.net/user/softnio
**/
.nk-sidebar.is-dark { background: #0f192a; border-right-color: #1c2f50; }

.nk-sidebar.is-theme { background: #02274d; border-right-color: #03407f; }

.is-dark .nk-sidebar-head { border-color: #1c2f50; }

.is-theme .nk-sidebar-head { border-color: #03407f; }

.nk-sidebar.is-dark .user-balance-alt, .nk-sidebar.is-theme .user-balance-alt { color: rgba(255, 255, 255, 0.8); }

.nk-header { background: #f5f6fa; border-bottom-color: #e5e9f2; }

.nk-header.is-dark:not([class*=bg-]) { background: #0f192a; }

.nk-header.is-theme:not([class*=bg-]) { background: #02274d; }

.is-dark .nk-menu-link { color: #8699b2; }

.is-dark .nk-menu-link:hover { background: #172641; }

.is-dark .active > .nk-menu-link { background: #172641; }

.is-dark .nk-menu-icon { color: #9faec2; }

.is-dark .nk-menu-badge { color: #5b97e0; background: #1c2f50; }

.is-dark .nk-menu-sub .active > .nk-menu-link, .is-dark .nk-menu-link:hover, .is-dark .active > .nk-menu-link, .is-dark .nk-menu-link:hover .nk-menu-icon, .is-dark .nk-menu-item.active > .nk-menu-link .nk-menu-icon, .is-dark .nk-menu-item.current-menu > .nk-menu-link .nk-menu-icon { color: #307bd8; }

.is-dark .user-name { color: #90a1b8; }

.is-dark .nk-quick-nav-icon { color: #9faec2; }

.is-theme .nk-menu-link { color: #aac4e1; }

.is-theme .nk-menu-link:hover { background: #02366b; }

.is-theme .active > .nk-menu-link { background: #02366b; }

.is-theme .nk-menu-icon { color: #c9d9ec; }

.is-theme .nk-menu-badge { color: #86b2e8; background: #03407f; }

.is-theme .nk-quick-nav-icon, .is-theme .overline-title { color: #b2c9e4; }

.is-theme .nk-menu-heading .overline-title { color: rgba(178, 201, 228, 0.8); }

.is-theme .user-name { color: #c5d6eb; }

.card-tools-nav li a:before, .nav-tabs .nav-link:after, .progress-bar, .dot-primary, .alert-fill.alert-primary, .badge-primary, .icon-circle, .noUi-connect, .nk-msg-menu-item a:after, .ui-shady .nk-msg-item.active:after, .ui-shady .nk-msg-item.current:after, .ui-softy .nk-msg-item.active:after, .ui-softy .nk-msg-item.current:after { background: #2263b3; }

.card-bordered.is-dark { border-color: #022c57; }

.card.is-dark { background: #022c57; }

.is-dark .nk-wg7-title, .is-dark .nk-wg7-note { color: #b2c9e4; }

.user-avatar, [class^="user-avatar"]:not([class*="-group"]) { background: #307bd8; }

.nk-menu-link:hover, .nk-menu-link:hover .nk-menu-icon, .nk-menu-item.active > .nk-menu-link .nk-menu-icon, .nk-menu-item.current-menu > .nk-menu-link .nk-menu-icon, .nk-menu-link:hover .count, .nk-menu-sub .nk-menu-link:hover, .nk-menu-sub .active > .nk-menu-link, .nk-menu-sm .nk-menu-link:hover, .nk-menu-main .nk-menu-link:hover, .nk-menu-main .nk-menu-link:focus, .nk-menu-main .nk-menu-item.active > .nk-menu-link, .nk-menu-main .nk-menu-item.current-menu > .nk-menu-link, .nk-menu-main .nk-menu-item:hover > .nk-menu-link, .is-light .nk-menu-link:hover, .is-light .active > .nk-menu-link, .active > .nk-menu-link, .active > .nk-menu-link .count, .nav-tabs .nav-link:focus, .nav-tabs .nav-link.active, .nav-tabs .nav-item.active .nav-link, .nk-menu-footer .nk-menu-icon, .nk-menu-footer .nk-menu-link:hover, .nk-footer-copyright a:hover, .page-link:hover, .list-plain a:hover, .link-check li a:hover, .link-list a:hover, .link-list-opt a:hover, .link-list-plain a:hover, .link-list-menu li.active > a, .link-list-menu a.active, .link-list-menu a:hover, .link-list-menu li.active > a .icon, .link-list-menu a.active .icon, .link-list-menu a:hover .icon, .link-list-menu li.active > a:after, .link-list-menu a.active:after, .link-list-menu a:hover:after, .list-checked li:before, .list-step li.list-step-current:before, .accordion-s2 .accordion-head .title, .accordion-s3 .accordion-head .title, .badge-outline-primary, .badge-dim.badge-primary, .badge-dot.badge-primary, .badge-dim.badge-outline-primary, .alert-primary, .form-clip, .form-text-hint, .search-submit:hover, .attach-item .icon, .attach-download:hover span, .nk-reply-meta-info .whom, .nk-msg-tags li > span .icon, .nk-msg-menu-item a:hover, .nk-msg-menu-item.active a, .user-balance, .user-avatar[class*="-primary-dim"], a, .dropzone .dz-message-text span, .nk-switch-icon.active, .link-list-plain a .icon, .chat-upload-option a, .is-unread .chat-context .status, .add-opt:hover .sub-text, .add-opt:hover .icon, .icon[class*="bg-primary-dim"], .nk-tb-list .tb-asterisk a { color: #2263b3; }

a:hover { color: #1b5091; }

.text-primary, .link-primary { color: #2263b3 !important; }

.link-primary:hover, a.text-primary:hover, a.text-primary:focus, .chat-upload-option a:hover { color: #1b5091 !important; }

.border-primary, .nk-kycfm-control:checked ~ .nk-kycfm-label { border-color: #2263b3 !important; }

.bg-lighter { background-color: #f5f6fa !important; }

.bg-primary { background-color: #2263b3 !important; }

a.bg-primary:hover, a.bg-primary:focus, button.bg-primary:hover, button.bg-primary:focus { background-color: #1a4b88 !important; }

.bg-primary-dim { background-color: #e9eff7 !important; }

.text-primary-dim { color: #e9eff7 !important; }

.alert-primary, .badge-dim.badge-outline-primary { background-color: #e9eff7; border-color: #a7c1e1; }

.alert-pro.alert-primary, .badge-primary, .sp-package-choose:checked ~ label, .plan-control:checked + .plan-item-card, .form-control:focus, .form-control.focus, .custom-file-input:focus ~ .custom-file-label, .custom-control-input:focus:not(:checked) ~ .custom-control-label::before, .select2-container--default .select2-selection--single:focus, .select2-container--default.select2-container--focus .select2-selection--multiple { border-color: #2263b3; }

.nk-order-ovwg-data.sell, .badge-outline-primary { border-color: #a7c1e1; }

.dropdown-menu-s1 { border-top-color: #2263b3; }

.nk-iv-wg2-amount.ui-v2 { border-bottom-color: #2263b3; }

.page-item.active .page-link, .custom-control-input:checked ~ .custom-control-label::before, .custom-control-input:not(:disabled):active ~ .custom-control-label::before { background-color: #2263b3; border-color: #2263b3; }

.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before, .custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before, .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { background-color: #7aa1d1; }

.badge-dim.badge-primary { background-color: #e9eff7; border-color: #e9eff7; }

.badge-primary.badge-dot { background: transparent; }

.nk-error-head { background: -webkit-linear-gradient(#2263b3, #034589); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }

.nav-switch .nav-link.active { background: #2263b3; color: #ffffff; }

.icon-avatar { color: #2263b3; background-color: #dee8f4; }

.is-theme .nk-quick-nav-icon:before { background-color: #011325; }

.btn-primary { background-color: #2263b3; border-color: #2263b3; }

.btn-primary:hover { background-color: #1f5aa2; border-color: #1d5599; }

.btn-primary:focus { background-color: #1f5aa2; border-color: #1d5599; }

.btn-primary.btn-dim { color: #2263b3; background-color: #e7eef7; border-color: #e7eef7; }

.btn-dim.btn-outline-primary { color: #2263b3; background-color: #e7eef7; border-color: #a7c1e1; }

/* Ollie brand logo sizing override */
.nk-sidebar-logo .logo-img,
.nk-header-brand .logo-img,
.header-compact-logo img {
    height: 32px !important;
    max-height: 32px !important;
    width: auto !important;
}

.brand-logo .logo-img-lg {
    height: 44px !important;
    max-height: 44px !important;
    width: auto !important;
}

.btn-dim.btn-outline-primary.btn-white { background-color: #ffffff; }

.btn-outline-primary { border-color: #2263b3; color: #2263b3; }

.btn-outline-primary:hover { background-color: #2263b3; border-color: #2263b3; }

.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle { background-color: #205ca6; border-color: #1f5aa2; }

.btn-primary:focus, .btn-outline-primary:focus, .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary.btn-dim:focus, .btn-primary.btn-dim:not(:disabled):not(.disabled):active, .btn-primary.btn-dim:not(:disabled):not(.disabled):active:focus, .btn-dim.btn-outline-primary:focus, .btn-dim.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-dim.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .show > .btn-primary.dropdown-toggle:focus, .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-primary.dropdown-toggle, .show > .btn-outline-primary.dropdown-toggle:focus { box-shadow: 0 0 0 0.2rem rgba(34, 99, 179, 0.2); }

.btn-outline-light:focus, .btn-outline-light.focus, .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-light.dropdown-toggle:focus { box-shadow: 0 0 0 0.2rem rgba(128, 148, 174, 0.1); }

.btn-trigger:focus { box-shadow: none; }

.form-control:focus, .form-control.focus, .custom-control-input:focus ~ .custom-control-label::before, .custom-file-input:focus ~ .custom-file-label, .select2-container--default .select2-selection--single:focus, .select2-container--default.select2-container--focus .select2-selection--multiple { box-shadow: 0 0 0 3px rgba(34, 99, 179, 0.1); }

.form-control-simple:focus { box-shadow: none; }

.btn-primary.btn-dim:not(:disabled):not(.disabled):hover, .btn-dim.btn-outline-primary:not(:disabled):not(.disabled):hover, .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, .show > .btn-outline-primary.dropdown-toggle, .btn-primary.disabled, .btn-primary:disabled { background-color: #2263b3; border-color: #2263b3; }

.form-focus-none:focus { border-color: transparent; box-shadow: none; }

@media (min-width: 992px) { .nk-menu-main > li > .nk-menu-link:before { background: #2263b3; }
  .is-theme .nk-menu-main > li > .nk-menu-link { color: #b2c9e4; }
  .is-theme .nk-menu-main > li > .nk-menu-link.nk-menu-toggle:after { color: rgba(178, 201, 228, 0.7); } }

.datepicker table tr td.today, .datepicker table tr td.today:hover, .datepicker table tr td.today.disabled, .datepicker table tr td.today.disabled:hover { background-color: #dee8f4; color: #2263b3; }

.datepicker table tr td.today:hover, .datepicker table tr td.today:hover:hover, .datepicker table tr td.today.disabled:hover, .datepicker table tr td.today.disabled:hover:hover, .datepicker table tr td.today:active, .datepicker table tr td.today:hover:active, .datepicker table tr td.today.disabled:active, .datepicker table tr td.today.disabled:hover:active, .datepicker table tr td.today.active, .datepicker table tr td.today:hover.active, .datepicker table tr td.today.disabled.active, .datepicker table tr td.today.disabled:hover.active, .datepicker table tr td.today.disabled, .datepicker table tr td.today:hover.disabled, .datepicker table tr td.today.disabled.disabled, .datepicker table tr td.today.disabled:hover.disabled, .datepicker table tr td.today[disabled], .datepicker table tr td.today:hover[disabled], .datepicker table tr td.today.disabled[disabled], .datepicker table tr td.today.disabled:hover[disabled] { background-color: #79a1d0; }

.datepicker table tr td.active:active, .datepicker table tr td.active:hover:active, .datepicker table tr td.active.disabled:active, .datepicker table tr td.active.disabled:hover:active, .datepicker table tr td.active.active, .datepicker table tr td.active:hover.active, .datepicker table tr td.active.disabled.active, .datepicker table tr td.active.disabled:hover.active, .datepicker table tr td span:hover, .datepicker table tr td span.focused { background-color: #2263b3; }

.code-tag { color: blue; }

.alert-pro { background: #ffffff; color: #526484; }

.nk-menu-badge { color: #6492ca; background-color: #e9eff7; }

.is-theme .nk-sidebar-footer, .nk-apps-sidebar.is-theme, .is-theme .nk-sidebar-profile-fixed { background: #02274d; border-color: #03407f; }

.is-theme .nk-menu-footer .nk-menu-link, .is-theme .sub-text, .is-theme .lead-text span { color: #b2c9e4; }

.nav-switch-s2 .nav-link:hover, .nav-switch-s2 .nav-link:focus { color: #526484; }

.nav-switch-s2 .nav-link.active { color: #364a63; }

.active .nk-ibx-menu-text, .active .nk-ibx-menu-item .icon, .nk-reply-form-nav li a:hover, .nk-reply-form-input .toggle-opt:hover { color: #2263b3; }

.nk-ibx-menu li.active { background: #edf3f9; }

.nk-fmg-menu li.active { background: #edf3f9; }

.nk-file-name .asterisk .icon, .nk-file-name-text a.title:hover, .nk-file-link:hover .title, .active .nk-fmg-menu-item .icon, .active .nk-fmg-menu-text { color: #2263b3; }

.nk-files-view-list .nk-file.selected { background-color: #e4ecf6; }

.chat.is-me .chat-msg { background-color: #2263b3; }

.kanban-add-task { color: #2263b3; }

.kanban-add-task:hover { background: #2263b3; border-color: #2263b3; }

.actions ul li a { border-color: #2263b3; background: #2263b3; }

.nk-wizard-simple .steps ul li.done h5, .nk-wizard-simple .steps ul li.done .number, .nk-wizard-simple .steps ul li.current h5, .nk-wizard-simple .steps ul li.current .number { color: #2263b3; }

.nk-wizard-simple .steps ul li:after { background: #2263b3; }

.invoice-contact ul .icon, .invoice-desc .title, .invoice-bills .table th { color: #2263b3; }

.product-gallery .slider-nav .slider-item.slick-current .thumb, .custom-control-pro.no-control .custom-control-input:checked ~ .custom-control-label, .custom-control-pro.no-control .custom-control-input:not(:disabled):active ~ .custom-control-label, .custom-control.color-control .custom-control-label:before { border-color: #2263b3 !important; }

/* Keep fixed-header pages from rendering under the topbar.
   DashLite only ships this as an adjacent sibling rule, but the topbar partial
   also renders the sign-out modal between the header and content. */
.nk-header-fixed ~ .nk-content {
    margin-top: 65px;
    position: relative;
}

/* ===== Sidebar: fully hidden when compact, smooth transition ===== */
.nk-sidebar {
    transition: width 350ms ease, min-width 350ms ease, padding 350ms ease, border-right 350ms ease, transform 350ms ease !important;
}

.nk-sidebar.is-compact {
    width: 0 !important;
    min-width: 0 !important;
    border-right: none !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
}

.nk-sidebar + .nk-wrap {
    transition: padding-left 350ms ease !important;
}

.nk-sidebar.is-compact + .nk-wrap {
    padding-left: 0 !important;
}

.nk-sidebar + .nk-wrap > .nk-header-fixed {
    transition: left 350ms ease !important;
}

.nk-sidebar.is-compact + .nk-wrap > .nk-header-fixed {
    left: 0 !important;
}

/* Hide sidebar internal elements when compact (no hover peek) */
.nk-sidebar.is-compact .nk-sidebar-head,
.nk-sidebar.is-compact .nk-sidebar-content {
    opacity: 0;
    visibility: hidden;
}

/* Compact header logo: hidden by default, slides in when sidebar collapses */
.kf-header-compact-logo {
    opacity: 0;
    visibility: hidden;
    transform: translateX(-12px);
    transition: opacity 350ms ease, transform 350ms ease, visibility 350ms ease;
}

.nk-sidebar.is-compact ~ .nk-wrap .kf-header-compact-logo {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}

/* ========================================================================
   Fix: Override DashLite default purple hover colors (#854fff / #9769ff)
   to the project's blue theme (#2263b3).
   The base DashLite CSS hardcodes purple for hover states; !important is
   required because some selectors have equal specificity from dashlite.min.css.
   ======================================================================== */

/* Sidebar (.is-light) hover overrides */
.is-light .nk-menu-link:hover,
.is-light .active > .nk-menu-link,
.is-light .nk-menu-link:hover .nk-menu-icon,
.is-light .nk-menu-item.active > .nk-menu-link .nk-menu-icon,
.is-light .nk-menu-item.current-menu > .nk-menu-link .nk-menu-icon,
.is-light .nk-menu-sub .nk-menu-link:hover,
.is-light .nk-menu-sub .active > .nk-menu-link,
.is-light .nk-menu-link:hover .count,
.is-light .active > .nk-menu-link .count,
.is-light .nk-menu-footer .nk-menu-link:hover { color: #2263b3 !important; }

/* General menu hover overrides */
.nk-menu-link:hover,
.active > .nk-menu-link,
.active.current-page > .nk-menu-link,
.nk-menu-item.active > .nk-menu-link,
.nk-menu-item.current-menu > .nk-menu-link,
.nk-menu-link:hover .nk-menu-icon,
.nk-menu-item.active > .nk-menu-link .nk-menu-icon,
.nk-menu-item.current-menu > .nk-menu-link .nk-menu-icon,
.nk-menu-link:hover .count,
.active > .nk-menu-link .count,
.nk-menu-sub .nk-menu-link:hover,
.nk-menu-sub .active > .nk-menu-link,
.nk-menu-sm .nk-menu-link:hover,
.nk-menu-main .nk-menu-link:hover,
.nk-menu-main .nk-menu-link:focus,
.nk-menu-main .nk-menu-item.active > .nk-menu-link,
.nk-menu-main .nk-menu-item.current-menu > .nk-menu-link,
.nk-menu-main .nk-menu-item:hover > .nk-menu-link,
.nk-menu-footer .nk-menu-link:hover,
.nk-menu-footer .nk-menu-icon { color: #2263b3 !important; }

/* Dark mode hover overrides (DashLite uses !important for these) */
.dark-mode .nk-menu-link:hover,
.dark-mode .active > .nk-menu-link,
.dark-mode .active.current-page > .nk-menu-link,
.dark-mode .nk-menu-sub .nk-menu-link:hover,
.dark-mode .nk-menu-sub .active > .nk-menu-link,
.dark-mode .nk-menu-link:hover .nk-menu-icon,
.dark-mode .nk-menu-item.active > .nk-menu-link .nk-menu-icon,
.dark-mode .nk-menu-item.current-menu > .nk-menu-link .nk-menu-icon,
.dark-mode .nk-menu-link:hover .count,
.dark-mode .active > .nk-menu-link .count,
.dark-mode .nk-menu-footer .nk-menu-link:hover { color: #2263b3 !important; }

/* Quick-nav / header icon overrides */
.nk-quick-nav-icon:hover,
.nk-quick-nav-icon.active { color: #2263b3 !important; }

/* Dropdown-item hover/focus/active overrides (used in filter bars etc.) */
.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active,
.dropdown-item:active { color: #2263b3 !important; }

/* Miscellaneous link/text hover overrides */
.link-list a:hover,
.link-list-opt a:hover,
.link-list-plain a:hover,
.list-plain a:hover,
.link-check li a:hover,
.list-link-menu a:hover,
.nk-footer-copyright a:hover,
.search-submit:hover,
.attach-download:hover span,
.nk-msg-menu-item a:hover,
.add-opt:hover .sub-text,
.add-opt:hover .icon,
.product-tags a:hover,
.product-actions li a:hover,
.channel-list a:hover,
.channel-list a.active,
.user-info .edit:hover { color: #2263b3 !important; }

/* ── Modal overlay standard ───────────────────────────────────────────
   Every modal in the system uses the same backdrop treatment: a translucent
   navy overlay with a 1px blur. This overrides DashLite's near-opaque black
   .modal-backdrop so the Bootstrap/DashLite modals (sign-out, login event
   detail, etc.) match the kf-editor-overlay / kf-confirm-backdrop pattern
   used by the custom modals. See docs/ui/components.md → Modals. */
.modal-backdrop {
    background-color: rgba(36, 50, 74, 0.45);
    -webkit-backdrop-filter: blur(1px);
    backdrop-filter: blur(1px);
}

.modal-backdrop.show,
.modal-backdrop.in {
    opacity: 1;
}

.proposal-share-result-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(36, 50, 74, 0.45);
    -webkit-backdrop-filter: blur(1px);
    backdrop-filter: blur(1px);
}

/* Close controls are often focused when a modal opens so keyboard users start
   in a predictable place. Pointer and programmatic focus must not leave the
   browser's blue outline visible, while keyboard focus remains explicit. */
:where(button, a):where(
    [aria-label^="Close"],
    [title="Close"],
    .close,
    [class*="__close"],
    [class*="-close"]
):focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none !important;
}

:where(button, a):where(
    [aria-label^="Close"],
    [title="Close"],
    .close,
    [class*="__close"],
    [class*="-close"]
):focus-visible {
    outline: 2px solid #2263b3;
    outline-offset: 2px;
}

/* Subsection title used inside building form sections (e.g. the "Parking"
   interface inside the Car Park section, in both the create wizard and the
   per-section editor modal). Mirrors the .bld-section-title accent. */
.bld-subsection-title { color: #1f2b3d; font-size: .85rem; font-weight: 800; margin: 0 0 .75rem; }
/* User administration form */
.kf-user-form {
    max-width: 900px;
}

.kf-user-page-head {
    max-width: 900px;
}

.kf-user-form-card > .card-inner {
    padding: 2rem;
}

.kf-user-form-section {
    padding-bottom: 2rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid #e5e9f2;
}

.kf-user-form-section:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.kf-user-section-heading {
    margin-bottom: 1.5rem;
}

.kf-department-options {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem 1.25rem;
    max-height: 8rem;
    overflow-y: auto;
}

.kf-department-option {
    display: inline-flex;
    min-height: 1.5rem;
    padding-left: 1.75rem;
    margin: 0;
}

.kf-department-option .custom-control-label::before,
.kf-department-option .custom-control-label::after {
    top: 50%;
    left: -1.75rem;
    transform: translateY(-50%);
}

.kf-user-status-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 0.25rem;
}

.kf-user-password-disclosure > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    cursor: pointer;
    list-style: none;
}

.kf-user-password-disclosure > summary::-webkit-details-marker {
    display: none;
}

.kf-user-password-disclosure > summary small {
    display: block;
    margin-top: 0.25rem;
    color: #8094ae;
    font-weight: 400;
}

.kf-user-password-disclosure[open] > summary .btn {
    color: #526484;
    background: #f5f6fa;
}

.kf-user-form-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.625rem;
    padding: 1rem 2rem;
    border-top: 1px solid #e5e9f2;
    background: #f8f9fc;
}

@media (max-width: 1199.98px) {
    .kf-user-form,
    .kf-user-page-head {
        max-width: none;
    }
}

@media (max-width: 575.98px) {
    .kf-user-form-card > .card-inner {
        padding: 1.25rem;
    }

    .kf-user-form-section {
        padding-bottom: 1.5rem;
        margin-bottom: 1.5rem;
    }

    .kf-user-password-disclosure > summary,
    .kf-user-status-row {
        align-items: stretch;
        flex-direction: column;
    }

    .kf-user-form-actions {
        flex-direction: column-reverse;
        align-items: stretch;
        padding: 1rem 1.25rem;
    }

    .kf-user-form-actions .btn {
        justify-content: center;
    }
}

/* Audit Trail */
.kf-audit-saved-views { display: flex; flex-wrap: wrap; gap: .5rem; }
.kf-audit-action-badge { border: 1px solid transparent !important; font-weight: 600; }
.kf-audit-action-primary, .kf-audit-action-light { color: #2263b3 !important; background: #e9eff7 !important; border-color: #d4e1f0 !important; }
.kf-audit-action-success { color: #168052 !important; background: #e7f7ef !important; border-color: #cdebdc !important; }
.kf-audit-action-danger { color: #c73e4d !important; background: #fcebed !important; border-color: #f4cfd4 !important; }
.kf-audit-action-info { color: #167f9b !important; background: #e7f6fa !important; border-color: #c9e9f1 !important; }
.kf-audit-action-warning { color: #9a6500 !important; background: #fff5db !important; border-color: #f3e1ae !important; }
.kf-audit-action-purple { color: #7048a8 !important; background: #f2ebfa !important; border-color: #dfd0f1 !important; }
.kf-record-audit-dialog { width: min(780px, calc(100% - 2rem)); max-width: 780px; height: calc(100vh - 2rem); margin: 1rem auto; }
.kf-record-audit-content { max-height: 100%; overflow: hidden; }
.kf-record-audit-content .modal-header { flex: 0 0 auto; align-items: flex-start; padding: 1rem 1.25rem; }
.kf-record-audit-close { display: inline-flex !important; align-items: center; justify-content: center; flex: 0 0 32px; width: 32px !important; height: 32px !important; min-width: 32px; margin: 0 !important; padding: 0 !important; border: 1px solid #dbdfea !important; border-radius: 4px; font-size: 1rem !important; line-height: 1 !important; }
.kf-record-audit-body { min-height: 0; padding: 0; overflow-y: auto; overscroll-behavior: contain; }
.kf-record-audit-list { padding: 0 1.25rem; }
.kf-record-audit-event { padding: 1rem 0; border-bottom: 1px solid #e5e9f2; }
.kf-record-audit-event:last-child { border-bottom: 0; }
.kf-record-audit-event-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.kf-record-audit-event-head time { flex: 0 0 auto; color: #8094ae; font-size: .75rem; white-space: nowrap; }
.kf-record-audit-actor-action { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; min-width: 0; color: #364a63; }
.kf-record-audit-actor-action > span:not(.badge) { color: #8094ae; font-size: .75rem; }
.kf-record-audit-actor-action .kf-audit-action-badge { display: inline-flex; align-items: center; gap: .25rem; }
.kf-record-audit-subject { margin-top: .45rem; color: #1f2b3d; font-size: .9rem; font-weight: 700; line-height: 1.4; }
.kf-record-audit-meta { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem .8rem; margin-top: .4rem; color: #65758b; font-size: .72rem; }
.kf-record-audit-meta span { display: inline-flex; align-items: center; gap: .25rem; }
.kf-record-audit-code { padding: .1rem .35rem; border-radius: 3px; background: #f1f4f8; color: #526484; font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.kf-record-audit-changes { margin-top: .55rem; padding: .4rem .55rem; border-left: 2px solid #6576ff; background: #f7f9fc; color: #526484; font-size: .75rem; }
.kf-record-audit-empty { display: flex; flex-direction: column; align-items: center; gap: .35rem; padding: 3rem 1.5rem; color: #8094ae; text-align: center; }
.kf-record-audit-empty .icon { color: #6576ff; font-size: 1.75rem; }
.kf-record-audit-empty strong { color: #364a63; }
.kf-record-audit-footer { flex: 0 0 auto; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .75rem; padding: .75rem 1.25rem; }
.kf-record-audit-pagination { display: flex; align-items: center; justify-content: center; gap: .5rem; min-width: 0; }
.kf-record-audit-pagination span { color: #8094ae; font-size: .72rem; white-space: nowrap; }
.kf-audit-table td { vertical-align: middle; }
.kf-audit-table td:nth-child(2) { min-width: 24rem; }
.kf-audit-table td:nth-child(3) { min-width: 12rem; }
.kf-audit-detail-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid #dbdfea; border-radius: 6px; background: #f7f9fc; }
.kf-audit-value { max-height: 12rem; margin: 0; padding: .65rem; overflow: auto; border-radius: 4px; background: #f5f6fa; color: #364a63; font-size: .75rem; white-space: pre-wrap; word-break: break-word; }
.kf-investigation-identity { border-left: 3px solid #2263b3; }
.kf-investigation-identity .overline-title { margin-bottom: .35rem; }
@media (max-width: 767.98px) {
    .kf-audit-detail-hero { flex-direction: column; }
    .kf-audit-table td:nth-child(2), .kf-audit-table td:nth-child(3) { min-width: 17rem; }
    .kf-record-audit-dialog { width: calc(100% - 1rem); height: calc(100vh - 1rem); margin: .5rem auto; }
    .kf-record-audit-event-head { flex-direction: column; gap: .35rem; }
    .kf-record-audit-footer { grid-template-columns: 1fr auto; }
    .kf-record-audit-pagination { grid-column: 1 / -1; grid-row: 1; }
}
/* Persistent-shell navigation and offline state. */
.turbo-progress-bar {
    height: 3px;
    background: #2263b3;
    box-shadow: 0 0 8px rgba(34, 99, 179, .35);
}

/* Turbo moves focus to the refreshed content region for assistive technology.
   It is programmatically focusable only, so suppress the browser's page-sized
   focus ring without changing focus styles on interactive controls. */
.nk-content-body[tabindex="-1"]:focus {
    outline: none !important;
    box-shadow: none !important;
}

.kf-connectivity-banner {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .75rem;
    padding: .55rem .75rem;
    border: 1px solid #e4b40b;
    border-radius: 4px;
    background: #fff8d8;
    color: #6b5700;
    font-size: .78rem;
    font-weight: 600;
}

.kf-connectivity-banner[hidden] { display: none !important; }

/* System action outcomes: one black, animated top-centre popdown across every
   layout. Validation, loading, confirmation and persistent state messaging
   remain inline because they require local context. */
.kf-action-feedback-region {
    position: fixed;
    top: 28px;
    left: 50%;
    z-index: 2200;
    display: flex;
    width: min(460px, calc(100vw - 2rem));
    transform: translateX(-50%);
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    pointer-events: none;
}

.kf-action-feedback {
    display: flex;
    align-items: center;
    gap: .55rem;
    max-width: 100%;
    min-height: 42px;
    padding: .65rem .75rem .65rem .9rem;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 8px;
    background: #1f2933;
    color: #fff;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .22);
    font-size: .8125rem;
    font-weight: 600;
    line-height: 1.35;
    opacity: 0;
    transform: translateY(-12px);
    transition: opacity .2s ease, transform .2s ease;
    pointer-events: auto;
}

.kf-action-feedback.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.kf-action-feedback.is-leaving {
    opacity: 0;
    transform: translateY(-8px);
}

.kf-action-feedback > .icon {
    flex: 0 0 auto;
    color: #d7dee8;
    font-size: 1rem;
}

.kf-action-feedback__message {
    min-width: 0;
    overflow-wrap: anywhere;
}

.kf-action-feedback__dismiss {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin: -.2rem -.25rem -.2rem .1rem;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: #d7dee8;
    opacity: 0;
    transition: opacity .15s ease, background-color .15s ease;
}

.kf-action-feedback:hover .kf-action-feedback__dismiss,
.kf-action-feedback__dismiss:focus-visible { opacity: 1; }
.kf-action-feedback__dismiss:hover { background: rgba(255, 255, 255, .12); }
.kf-action-feedback__dismiss:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 1px;
}

@media (max-width: 575.98px) {
    .kf-action-feedback-region { top: 12px; }
    .kf-action-feedback { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .kf-action-feedback,
    .kf-action-feedback__dismiss { transition: none; }
}

.kf-offline-readonly [data-offline-write],
.kf-offline-readonly form[method="post"] button[type="submit"] {
    pointer-events: none;
    opacity: .5;
}

.kf-offline-readonly .kf-filter-bar input,
.kf-offline-readonly .kf-filter-bar select,
.kf-offline-readonly .kf-filter-bar button {
    pointer-events: none;
    opacity: .58;
}

.kf-offline-map-notice {
    position: absolute;
    inset: 50% auto auto 50%;
    z-index: 1000;
    width: min(320px, calc(100% - 2rem));
    transform: translate(-50%, -50%);
    padding: .8rem 1rem;
    border: 1px solid #c9d3e1;
    border-radius: 6px;
    background: rgba(255, 255, 255, .94);
    color: #526484;
    text-align: center;
    box-shadow: 0 4px 18px rgba(31, 43, 61, .12);
}
