/* NoteBase Core global design system — Bootstrap 5.3 token bridge. Loaded after shared component styles. */
:root,
[data-bs-theme="light"] {
    color-scheme: light;
    --primary-50:#EAF0FF;--primary-100:#D5E0FF;--primary-200:#AFC4FF;--primary-300:#83A2FF;--primary-400:#5279FF;--primary-500:#2458F5;--primary-600:#1746D4;--primary-700:#1238AE;--primary-800:#102F8D;--primary-900:#10286F;
    --ice-50:#F5FCFF;--ice-100:#DDF5FB;--ice-200:#C9EDF7;--ice-300:#8DDEFA;--ice-400:#51C8EE;--ice-500:#20AEDA;--ice-600:#128BAF;--ice-700:#126F8B;--ice-800:#155A70;--ice-900:#164B5D;
    --neutral-0:#FFFFFF;--neutral-50:#F6F8FC;--neutral-100:#F1F5F9;--neutral-200:#E2E8F0;--neutral-300:#CBD5E1;--neutral-400:#94A3B8;--neutral-500:#64748B;--neutral-600:#475569;--neutral-700:#334155;--neutral-800:#1E293B;--neutral-900:#17243D;--neutral-950:#080F1E;
    --semantic-success:#16A36A;--semantic-success-soft:#E4F6EE;--semantic-success-text:#126D49;
    --semantic-warning:#D99013;--semantic-warning-soft:#FFF4D8;--semantic-warning-text:#785008;
    --semantic-danger:#DC4055;--semantic-danger-soft:#FCE9EC;--semantic-danger-text:#9C2335;
    --semantic-info:#2458F5;--semantic-info-soft:#EAF0FF;--semantic-info-text:#1238AE;
    --app-canvas:var(--neutral-50);--app-surface:var(--neutral-0);--app-surface-2:var(--neutral-100);--app-border:var(--neutral-200);--app-border-strong:var(--neutral-300);--app-heading:var(--neutral-900);--app-text:var(--neutral-900);--app-muted:var(--neutral-500);--app-focus:rgba(36,88,245,.22);--app-shadow:0 1px 3px rgba(15,23,42,.06);
    --bs-primary:#2458F5;--bs-primary-rgb:36,88,245;--bs-secondary:#64748B;--bs-secondary-rgb:100,116,139;--bs-success:#16A36A;--bs-success-rgb:22,163,106;--bs-warning:#D99013;--bs-warning-rgb:217,144,19;--bs-danger:#DC4055;--bs-danger-rgb:220,64,85;--bs-info:#2458F5;--bs-info-rgb:36,88,245;--bs-light:#F8FAFC;--bs-light-rgb:248,250,252;--bs-dark:#0F172A;--bs-dark-rgb:15,23,42;
    --bs-body-bg:var(--app-canvas);--bs-body-color:var(--app-text);--bs-secondary-color:var(--app-muted);--bs-secondary-bg:var(--app-surface-2);--bs-tertiary-bg:var(--neutral-50);--bs-border-color:var(--app-border);--bs-link-color:var(--primary-500);--bs-link-hover-color:var(--primary-600);--bs-focus-ring-color:var(--app-focus);
    /* Bridge the project's NiceAdmin, DataTables and Fiori layers. */
    --na-primary:var(--primary-500);--na-primary-rgb:36,88,245;--na-heading:var(--app-heading);--na-body:var(--app-text);--na-muted:var(--app-muted);--na-page:var(--app-canvas);--na-surface:var(--app-surface);--na-soft:var(--app-surface-2);--na-border:var(--app-border);--na-shadow:var(--app-shadow);
    --body-bg:var(--app-canvas);--content-bg:var(--app-surface);--card-bg:var(--app-surface);--bg-secondary:var(--app-surface-2);--border-solid:var(--app-border);--text-primary:var(--app-text);--text-secondary:var(--app-muted);
    --nb-bg:var(--app-surface);--nb-border:var(--app-border);--nb-title:var(--app-heading);--nb-icon:var(--neutral-600);--nb-btn-hover:var(--primary-50);
    --input-bg:var(--app-surface);--input-border:var(--app-border-strong);--input-focus-border:var(--primary-500);--input-text:var(--app-heading);--input-placeholder:var(--neutral-400);--focus-ring:var(--app-focus);
    --dropdown-bg:var(--app-surface);--dropdown-border:var(--app-border);--dropdown-item-text:var(--app-text);--dropdown-item-hover:var(--neutral-50);--modal-bg:var(--app-surface);
    --dt-bg:var(--app-surface);--dt-surface:var(--neutral-50);--dt-border:var(--app-border);--dt-head-bg:var(--neutral-50);--dt-head-bg-end:var(--neutral-50);--dt-head-text:var(--neutral-600);--dt-head-border:var(--app-border);--dt-body-text:var(--app-text);--dt-body-muted:var(--app-muted);--dt-row-even:var(--app-surface);--dt-row-odd:var(--app-surface);--dt-row-hover:#F5F8FF;--dt-row-selected:var(--primary-50);--dt-row-selected-border:var(--primary-500);--dt-page-bg:var(--app-surface);--dt-page-border:var(--app-border);--dt-page-text:var(--neutral-600);--dt-page-hover:var(--primary-50);--dt-page-active-bg:var(--primary-500);--dt-input-bg:var(--app-surface);--dt-input-border:var(--app-border-strong);--dt-input-text:var(--app-heading);--dt-input-focus:var(--primary-500);--dt-accent:var(--primary-500);
    --fiori-table-bg:var(--app-surface);--fiori-table-surface:var(--neutral-50);--fiori-table-text:var(--app-text);--fiori-table-muted:var(--neutral-600);--fiori-table-border:var(--app-border);--fiori-table-header-bg:var(--neutral-50);--fiori-table-hover:#F5F8FF;--fiori-table-selected:var(--primary-50);--fiori-action:var(--primary-500);--fiori-action-soft:var(--primary-50);
}

[data-theme="dark"],[data-bs-theme="dark"] {
    color-scheme:dark;--dark-canvas:#080F1E;--dark-sidebar:#0B1220;--dark-surface:#111C2E;--dark-surface-2:#172337;--dark-surface-3:#1E2A3D;--dark-border:#263449;--dark-border-light:#334155;--dark-text:#F8FAFC;--dark-text-body:#E2E8F0;--dark-text-muted:#94A3B8;
    --app-canvas:var(--dark-canvas);--app-surface:var(--dark-surface);--app-surface-2:var(--dark-surface-2);--app-border:var(--dark-border);--app-border-strong:var(--dark-border-light);--app-heading:var(--dark-text);--app-text:var(--dark-text-body);--app-muted:var(--dark-text-muted);--app-focus:rgba(131,162,255,.32);--app-shadow:0 1px 3px rgba(0,0,0,.28);
    --bs-primary:#5279FF;--bs-primary-rgb:82,121,255;--bs-body-bg:var(--dark-canvas);--bs-body-color:var(--dark-text-body);--bs-secondary-color:var(--dark-text-muted);--bs-secondary-bg:var(--dark-surface-2);--bs-tertiary-bg:var(--dark-surface-3);--bs-border-color:var(--dark-border);--bs-link-color:#8CA8FF;--bs-link-hover-color:#B8CAFF;
    --na-primary:#5279FF;--na-primary-rgb:82,121,255;--nb-bg:var(--dark-surface);--nb-icon:var(--dark-text-muted);--nb-btn-hover:var(--dark-surface-2);--input-bg:var(--dark-surface-2);--input-placeholder:#64748B;--dropdown-item-hover:var(--dark-surface-2);
    --dt-row-hover:var(--dark-surface-2);--dt-row-selected:var(--dm-primary-soft);--dt-page-hover:var(--dark-surface-2);--dt-page-active-bg:var(--dm-primary);--fiori-table-hover:var(--dark-surface-2);--fiori-table-selected:var(--dm-primary-soft);--fiori-action:var(--dm-primary);--fiori-action-soft:var(--dm-primary-soft);
}

html,body.app,.page-container,.main-content{background-color:var(--app-canvas);color:var(--app-text)}
h1,h2,h3,h4,h5,h6,.page-header-title,.card-title,.modal-title{color:var(--app-heading)}a{color:var(--bs-link-color)}a:hover{color:var(--bs-link-hover-color)}
.modern-navbar{background:var(--app-surface);border-bottom-color:var(--app-border);box-shadow:var(--app-shadow)}
.modern-navbar .btn-icon-only:hover,.modern-navbar .sidebar-toggle-btn:hover{color:var(--bs-primary);background:var(--primary-50)}
[data-theme="dark"] .modern-navbar .btn-icon-only:hover,[data-theme="dark"] .modern-navbar .sidebar-toggle-btn:hover{background:var(--dark-surface-2)}
.left-sidebar,.sidebar-logo{background:#0F172A;border-color:#1E293B}.sidebar-menu .sidebar-link{color:#CBD5E1}.sidebar-menu .sidebar-link .icon-holder{color:#94A3B8}
.sidebar-menu .sidebar-link:hover{color:#FFF!important;background:#172554!important}.sidebar-menu .sidebar-link.active,.sidebar-menu .nav-item.open>.sidebar-link{color:#FFF!important;background:#2457FF!important}.sidebar-menu .sidebar-link.active .icon-holder,.sidebar-menu .nav-item.open>.sidebar-link .icon-holder{color:#FFF!important}.sidebar-menu .submenu a{color:#94A3B8}
[data-theme="dark"] .left-sidebar,[data-theme="dark"] .sidebar-logo{background:#0B1220}[data-theme="dark"] .sidebar-menu .sidebar-link:hover{background:#172337!important}

.card,.modal-content,.dropdown-menu,.offcanvas,.list-group-item,.accordion-item{color:var(--app-text);background-color:var(--app-surface);border-color:var(--app-border);box-shadow:var(--app-shadow)}.card,.modal-content{border:1px solid var(--app-border)!important}.card-header,.card-footer,.modal-header,.modal-footer,.accordion-button{background:var(--app-surface);border-color:var(--app-border);color:var(--app-heading)}
.accordion-button:not(.collapsed){color:var(--bs-primary);background:var(--primary-50)}[data-theme="dark"] .accordion-button:not(.collapsed){background:#172554}.dropdown-item{color:var(--app-text)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-primary);background:var(--app-surface-2)}.dropdown-item.active,.dropdown-item:active{color:#FFF;background:var(--bs-primary)}.dropdown-divider{border-color:var(--app-border)}

.btn{--bs-btn-focus-box-shadow:0 0 0 .2rem var(--app-focus)}
.btn-primary{--bs-btn-bg:var(--dm-primary);--bs-btn-border-color:var(--dm-primary);--bs-btn-hover-bg:var(--dm-primary-hover);--bs-btn-hover-border-color:var(--dm-primary-hover);--bs-btn-active-bg:var(--dm-primary-active);--bs-btn-active-border-color:var(--dm-primary-active);--bs-btn-disabled-bg:#8CA8FF;--bs-btn-disabled-border-color:#8CA8FF}
.btn-secondary{--bs-btn-color:#1947E6;--bs-btn-bg:#EEF3FF;--bs-btn-border-color:#B8CAFF;--bs-btn-hover-color:#1539B8;--bs-btn-hover-bg:#DCE6FF;--bs-btn-hover-border-color:#8CA8FF;--bs-btn-active-color:#1539B8;--bs-btn-active-bg:#B8CAFF;--bs-btn-active-border-color:#8CA8FF}
.btn-success{--bs-btn-bg:var(--semantic-success);--bs-btn-border-color:var(--semantic-success);--bs-btn-hover-bg:#15803D;--bs-btn-hover-border-color:#15803D}.btn-warning{--bs-btn-color:#0F172A;--bs-btn-bg:var(--semantic-warning);--bs-btn-border-color:var(--semantic-warning);--bs-btn-hover-color:#0F172A;--bs-btn-hover-bg:#D97706;--bs-btn-hover-border-color:#D97706}.btn-danger{--bs-btn-bg:var(--semantic-danger);--bs-btn-border-color:var(--semantic-danger);--bs-btn-hover-bg:#B91C1C;--bs-btn-hover-border-color:#B91C1C}.btn-info{--bs-btn-color:#FFF;--bs-btn-bg:var(--semantic-info);--bs-btn-border-color:var(--semantic-info);--bs-btn-hover-color:#FFF;--bs-btn-hover-bg:#0369A1;--bs-btn-hover-border-color:#0369A1}.btn-light{--bs-btn-color:#334155;--bs-btn-bg:#FFF;--bs-btn-border-color:#CBD5E1;--bs-btn-hover-color:#0F172A;--bs-btn-hover-bg:#F8FAFC;--bs-btn-hover-border-color:#94A3B8}
[data-theme="dark"] .btn-primary{--bs-btn-bg:#5E7FFF;--bs-btn-border-color:#5E7FFF;--bs-btn-hover-bg:#7691FF;--bs-btn-hover-border-color:#7691FF;--bs-btn-active-bg:#8CA8FF;--bs-btn-active-border-color:#8CA8FF}[data-theme="dark"] .btn-secondary{--bs-btn-color:#DCE6FF;--bs-btn-bg:#172554;--bs-btn-border-color:#334155;--bs-btn-hover-color:#FFF;--bs-btn-hover-bg:#1E2A3D}[data-theme="dark"] .btn-light{--bs-btn-color:#E2E8F0;--bs-btn-bg:#172337;--bs-btn-border-color:#334155;--bs-btn-hover-color:#FFF;--bs-btn-hover-bg:#1E2A3D}.btn:disabled,.btn.disabled{opacity:.58;cursor:not-allowed}
.btn-action{width:36px;height:36px;min-width:36px;min-height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px}.table .btn-action,[id^="datatable-"] .btn-action{width:32px;height:32px;min-width:32px;min-height:32px}

.form-control,.form-select,.input-group-text,.ts-control{color:var(--app-heading)!important;background-color:var(--app-surface)!important;border-color:var(--app-border-strong)!important}.form-control::placeholder{color:var(--neutral-400);opacity:1}.form-control:focus,.form-select:focus,.form-check-input:focus,.ts-control.focus{border-color:var(--bs-primary)!important;box-shadow:0 0 0 .2rem var(--app-focus)!important}.form-check-input:checked{background-color:var(--bs-primary);border-color:var(--bs-primary)}.form-control:disabled,.form-select:disabled,.form-control[readonly]{background-color:var(--app-surface-2)!important;color:var(--app-muted)!important}.form-label,.form-check-label{color:var(--app-text)}.form-text{color:var(--app-muted)}
[data-theme="dark"] input:-webkit-autofill,[data-theme="dark"] input:-webkit-autofill:hover,[data-theme="dark"] input:-webkit-autofill:focus{-webkit-text-fill-color:#F8FAFC;box-shadow:0 0 0 1000px #172337 inset!important;caret-color:#F8FAFC}

.table,.dataTable-table{--bs-table-bg:var(--app-surface);--bs-table-color:var(--app-text);--bs-table-border-color:var(--app-border);--bs-table-hover-bg:#F5F8FF;--bs-table-hover-color:var(--app-text)}.table thead th,[id^="datatable-"] table>thead th,.dataTable-table>thead th{color:var(--neutral-600)!important;background:var(--neutral-50)!important;border-color:var(--app-border)!important}.table-hover>tbody>tr:hover>*{--bs-table-bg-state:#F5F8FF}.table-active>*{--bs-table-bg-state:var(--primary-50);box-shadow:inset 3px 0 var(--primary-500)}
[data-theme="dark"] .table,[data-theme="dark"] .dataTable-table{--bs-table-hover-bg:#172337}[data-theme="dark"] .table thead th,[data-theme="dark"] [id^="datatable-"] table>thead th,[data-theme="dark"] .dataTable-table>thead th{color:#CBD5E1!important;background:#172337!important}[data-theme="dark"] .table-hover>tbody>tr:hover>*{--bs-table-bg-state:#172337}[data-theme="dark"] .table-active>*{--bs-table-bg-state:#172554;box-shadow:inset 3px 0 #5E7FFF}

.page-link{color:var(--neutral-600);background:var(--app-surface);border-color:var(--app-border)}.page-link:hover{color:var(--primary-600);background:var(--primary-50);border-color:var(--primary-200)}.page-item.active .page-link{color:#FFF;background:var(--bs-primary);border-color:var(--bs-primary)}.page-item.disabled .page-link{color:var(--neutral-400);background:var(--app-surface-2)}[data-theme="dark"] .page-link{color:#CBD5E1}[data-theme="dark"] .page-link:hover{color:#FFF;background:#172337;border-color:#334155}
.alert{border:1px solid transparent;border-left-width:1px}.alert-primary,.alert-info{color:var(--semantic-info-text);background:var(--semantic-info-soft);border-color:var(--semantic-info)}.alert-secondary{color:#475569;background:#F1F5F9;border-color:#CBD5E1}.alert-success{color:var(--semantic-success-text);background:var(--semantic-success-soft);border-color:var(--semantic-success)}.alert-warning{color:var(--semantic-warning-text);background:var(--semantic-warning-soft);border-color:var(--semantic-warning)}.alert-danger{color:var(--semantic-danger-text);background:var(--semantic-danger-soft);border-color:var(--semantic-danger)}
.badge.bg-primary,.badge.bg-info{color:var(--semantic-info-text)!important;background-color:var(--semantic-info-soft)!important}.badge.bg-secondary{color:#475569!important;background-color:#F1F5F9!important}.badge.bg-success{color:var(--semantic-success-text)!important;background-color:var(--semantic-success-soft)!important}.badge.bg-warning{color:var(--semantic-warning-text)!important;background-color:var(--semantic-warning-soft)!important}.badge.bg-danger{color:var(--semantic-danger-text)!important;background-color:var(--semantic-danger-soft)!important}
.text-primary{color:var(--bs-primary)!important}.text-success{color:var(--semantic-success)!important}.text-warning{color:var(--semantic-warning-text)!important}.text-danger{color:var(--semantic-danger)!important}.text-info{color:var(--semantic-info)!important}.border-primary{border-color:var(--bs-primary)!important}.border-success{border-color:var(--semantic-success)!important}.border-warning{border-color:var(--semantic-warning)!important}.border-danger{border-color:var(--semantic-danger)!important}.border-info{border-color:var(--semantic-info)!important}
.nav-tabs,.nav-pills{border-color:var(--app-border)}.nav-tabs .nav-link,.nav-pills .nav-link{color:var(--app-text)}.nav-tabs .nav-link:hover,.nav-pills .nav-link:hover,.nav-tabs .nav-link.active,.nav-pills .nav-link.active{color:var(--bs-primary);background:var(--primary-50)}[data-theme="dark"] .nav-tabs .nav-link:hover,[data-theme="dark"] .nav-pills .nav-link:hover,[data-theme="dark"] .nav-tabs .nav-link.active,[data-theme="dark"] .nav-pills .nav-link.active{background:#172554}
.progress{background:var(--app-surface-2)}.progress-bar{background:var(--bs-primary)}.breadcrumb-item,.breadcrumb-item a{color:var(--app-muted)}.breadcrumb-item.active{color:var(--app-text)}.toast{color:var(--app-text);background:var(--app-surface);border-color:var(--app-border)}.popover,.tooltip .tooltip-inner{color:var(--app-text);background:var(--app-surface);border-color:var(--app-border);box-shadow:var(--app-shadow)}.spinner-border.text-primary,.spinner-grow.text-primary{color:var(--bs-primary)!important}.btn-close{opacity:.7}
html[data-theme="dark"] body.app .btn-close,
html[data-bs-theme="dark"] body.app .btn-close {
    --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23F3F6FC'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586l6.293-6.293a1 1 0 0 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293A1 1 0 0 1 .293 14.293L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");
    --bs-btn-close-color: var(--dm-text);
    filter: none;
}
*:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}.btn-close:focus-visible{outline:2px solid var(--bs-primary)!important;outline-offset:2px;box-shadow:0 0 0 .2rem var(--app-focus)!important}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Sidebar contrast contract. The sidebar remains dark in both application
 * themes, so every child surface and the selected logo must follow it. */
:root,
[data-theme="light"] {
    --sb-bg: #0F172A;
    --sb-bg-hover: #172554;
    --sb-border: #1E293B;
    --sb-text: #CBD5E1;
    --sb-text-muted: #94A3B8;
    --sb-text-icon: #94A3B8;
    --sb-active-bg: #2457FF;
    --sb-active-color: #FFFFFF;
}

[data-theme="dark"] {
    --sb-bg: #0B1220;
    --sb-bg-hover: #172337;
    --sb-border: #263449;
    --sb-text: #E2E8F0;
    --sb-text-muted: #94A3B8;
    --sb-text-icon: #94A3B8;
    --sb-active-bg: #2457FF;
    --sb-active-color: #FFFFFF;
}

body.app .left-sidebar,
body.app .left-sidebar .sidebar-logo,
body.app .left-sidebar .sidebar-user-footer {
    color: var(--sb-text);
    background: var(--sb-bg);
    border-color: var(--sb-border);
}

body.app .left-sidebar .sidebar-menu .nav-item .sidebar-link,
body.app .left-sidebar .sidebar-menu .nav-item .sidebar-link .title {
    color: var(--sb-text) !important;
}

body.app .left-sidebar .sidebar-menu .nav-item .sidebar-link .icon-holder,
body.app .left-sidebar .sidebar-menu .nav-item .sidebar-link .icon-holder svg,
body.app .left-sidebar .dropdown-arrow-wrapper svg {
    color: var(--sb-text-icon) !important;
}

body.app .left-sidebar .side-nav-title,
body.app .left-sidebar .sidebar-user-email {
    color: var(--sb-text-muted) !important;
}

body.app .left-sidebar .sidebar-menu .nav-item .sidebar-link:hover {
    color: #FFFFFF !important;
    background: var(--sb-bg-hover) !important;
}

body.app .left-sidebar .sidebar-menu .nav-item .sidebar-link.active,
body.app .left-sidebar .sidebar-menu .nav-item.open > .sidebar-link {
    color: #FFFFFF !important;
    background: var(--sb-active-bg) !important;
}

body.app .left-sidebar .sidebar-menu .nav-item .sidebar-link:hover .icon-holder,
body.app .left-sidebar .sidebar-menu .nav-item .sidebar-link:hover .icon-holder svg,
body.app .left-sidebar .sidebar-menu .nav-item .sidebar-link.active .icon-holder,
body.app .left-sidebar .sidebar-menu .nav-item .sidebar-link.active .icon-holder svg,
body.app .left-sidebar .sidebar-menu .nav-item.open > .sidebar-link .icon-holder,
body.app .left-sidebar .sidebar-menu .nav-item.open > .sidebar-link .icon-holder svg {
    color: #FFFFFF !important;
}

body.app .left-sidebar .sidebar-user-name {
    color: #F8FAFC;
}

body.app .left-sidebar .btn-user-menu {
    color: var(--sb-text-muted);
}

body.app .left-sidebar .btn-user-menu:hover,
body.app .left-sidebar .btn-user-menu[aria-expanded="true"] {
    color: #FFFFFF;
    background: var(--sb-bg-hover);
}

/* Both supported sidebar canvases are dark; use the high-contrast white
 * wordmark and keep all alternate assets hidden. */
body.app .left-sidebar .sidebar-brand-logo .logo_side_custom {
    display: none !important;
}

body.app .left-sidebar .sidebar-brand-logo .logo-full.logo-dark {
    display: block !important;
    max-width: 178px;
    filter: none;
}

body.app .left-sidebar .sidebar-user-actions .dropdown-menu {
    color: #E2E8F0;
    background: #111C2E !important;
    border-color: #263449 !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .36) !important;
}

body.app .left-sidebar .sidebar-user-actions .dropdown-item {
    color: #CBD5E1 !important;
}

body.app .left-sidebar .sidebar-user-actions .dropdown-item:hover,
body.app .left-sidebar .sidebar-user-actions .dropdown-item:focus {
    color: #FFFFFF !important;
    background: #172337 !important;
}

body.app .left-sidebar .sidebar-user-actions .dropdown-item.text-danger {
    color: #FCA5A5 !important;
}

body.app .left-sidebar .sidebar-user-actions .dropdown-item.text-danger:hover,
body.app .left-sidebar .sidebar-user-actions .dropdown-item.text-danger:focus {
    color: #FECACA !important;
    background: rgba(220, 38, 38, .18) !important;
}

body.app .left-sidebar .sidebar-user-actions .dropdown-divider {
    border-color: #263449;
}

/* Semantic badges use soft surfaces and strong text. Extra specificity is
 * intentional because Bootstrap utilities and table skins also use !important. */
body.app .badge.bg-primary,
body.app .badge.text-bg-primary {
    color: #1539B8 !important;
    background: #EEF3FF !important;
    border-color: #B8CAFF !important;
}

body.app .badge.bg-secondary,
body.app .badge.text-bg-secondary {
    color: #475569 !important;
    background: #F1F5F9 !important;
    border-color: #CBD5E1 !important;
}

body.app .badge.bg-success,
body.app .badge.text-bg-success {
    color: #166534 !important;
    background: #DCFCE7 !important;
    border-color: #86EFAC !important;
}

body.app .badge.bg-warning,
body.app .badge.bg-warning.text-dark,
body.app .badge.text-bg-warning {
    color: #92400E !important;
    background: #FEF3C7 !important;
    border-color: #FCD34D !important;
}

body.app .badge.bg-danger,
body.app .badge.text-bg-danger {
    color: #991B1B !important;
    background: #FEE2E2 !important;
    border-color: #FCA5A5 !important;
}

body.app .badge.bg-info,
body.app .badge.bg-info.text-dark,
body.app .badge.text-bg-info {
    color: #075985 !important;
    background: #E0F2FE !important;
    border-color: #7DD3FC !important;
}

body.app .badge.bg-light,
body.app .badge.bg-light.text-dark {
    color: #475569 !important;
    background: #F8FAFC !important;
    border-color: #CBD5E1 !important;
}

[data-theme="dark"] body.app .badge.bg-primary,
[data-theme="dark"] body.app .badge.text-bg-primary { color:#B8CAFF!important;background:rgba(94,127,255,.18)!important;border-color:rgba(94,127,255,.38)!important; }
[data-theme="dark"] body.app .badge.bg-secondary,
[data-theme="dark"] body.app .badge.text-bg-secondary,
[data-theme="dark"] body.app .badge.bg-light { color:#CBD5E1!important;background:rgba(148,163,184,.14)!important;border-color:#475569!important; }
[data-theme="dark"] body.app .badge.bg-success,
[data-theme="dark"] body.app .badge.text-bg-success { color:#86EFAC!important;background:rgba(22,163,74,.18)!important;border-color:rgba(22,163,74,.42)!important; }
[data-theme="dark"] body.app .badge.bg-warning,
[data-theme="dark"] body.app .badge.text-bg-warning { color:#FCD34D!important;background:rgba(245,158,11,.18)!important;border-color:rgba(245,158,11,.42)!important; }
[data-theme="dark"] body.app .badge.bg-danger,
[data-theme="dark"] body.app .badge.text-bg-danger { color:#FCA5A5!important;background:rgba(220,38,38,.18)!important;border-color:rgba(220,38,38,.42)!important; }
[data-theme="dark"] body.app .badge.bg-info,
[data-theme="dark"] body.app .badge.text-bg-info { color:#7DD3FC!important;background:rgba(81,200,238,.14)!important;border-color:rgba(81,200,238,.36)!important; }

/* SweetAlert2 confirmation dialogs inherit the active application theme. */
[data-theme="dark"] .swal2-container {
    --swal-surface: #111C2E;
    --swal-surface-hover: #1E2A3D;
    --swal-border: #334155;
    --swal-text: #F8FAFC;
    --swal-text-muted: #CBD5E1;
}

[data-theme="dark"] .swal2-popup {
    color: var(--swal-text) !important;
    background: var(--swal-surface) !important;
    border: 1px solid var(--swal-border);
    box-shadow: 0 24px 64px rgba(0, 0, 0, .5) !important;
}

[data-theme="dark"] .swal2-title,
[data-theme="dark"] .swal2-html-container,
[data-theme="dark"] .swal2-content,
[data-theme="dark"] .swal2-close {
    color: var(--swal-text) !important;
}

[data-theme="dark"] .swal2-html-container,
[data-theme="dark"] .swal2-content {
    color: var(--swal-text-muted) !important;
}

[data-theme="dark"] .swal2-input,
[data-theme="dark"] .swal2-textarea,
[data-theme="dark"] .swal2-select {
    color: var(--swal-text) !important;
    background: #0B1220 !important;
    border-color: var(--swal-border) !important;
}

[data-theme="dark"] .swal2-input::placeholder,
[data-theme="dark"] .swal2-textarea::placeholder {
    color: #94A3B8 !important;
}

[data-theme="dark"] .swal2-input:focus,
[data-theme="dark"] .swal2-textarea:focus,
[data-theme="dark"] .swal2-select:focus {
    border-color: #5E7FFF !important;
    box-shadow: 0 0 0 3px rgba(94, 127, 255, .2) !important;
}

[data-theme="dark"] .swal2-footer {
    color: var(--swal-text-muted) !important;
    border-top-color: var(--swal-border) !important;
}

[data-theme="dark"] .swal2-timer-progress-bar {
    background: #5E7FFF !important;
}

[data-theme="dark"] .swal2-actions .swal2-confirm {
    color: #FFFFFF !important;
    background: #4169E1 !important;
}

[data-theme="dark"] .swal2-actions .swal2-confirm:hover {
    background: #3157C9 !important;
}

[data-theme="dark"] .swal2-actions .swal2-cancel,
[data-theme="dark"] .swal2-actions .swal2-deny {
    color: #E2E8F0 !important;
    background: #263449 !important;
    border: 1px solid #475569 !important;
}

[data-theme="dark"] .swal2-actions .swal2-cancel:hover,
[data-theme="dark"] .swal2-actions .swal2-deny:hover {
    background: #334155 !important;
}

[data-theme="dark"] .swal2-validation-message {
    color: #FCA5A5 !important;
    background: rgba(220, 38, 38, .18) !important;
}

/* Compact table density shared by Bootstrap tables and every datatable.
 * A fixed minimum cell height aligns body rows with the header while cells
 * containing wrapped content can still grow naturally. */
body.app .table > thead > tr > th,
body.app .dataTable-table > thead > tr > th,
body.app [id^="datatable-"] table > thead > tr > th {
    height: 44px;
    padding-block: .5rem !important;
    vertical-align: middle;
}

body.app .table > tbody > tr > td,
body.app .table > tbody > tr > th,
body.app .dataTable-table > tbody > tr > td,
body.app .dataTable-table > tbody > tr > th,
body.app [id^="datatable-"] table > tbody > tr > td,
body.app [id^="datatable-"] table > tbody > tr > th {
    height: 44px;
    padding-block: .35rem !important;
    line-height: 1.25;
    vertical-align: middle;
}

body.app .table > tbody .btn,
body.app .dataTable-table > tbody .btn,
body.app [id^="datatable-"] table > tbody .btn {
    min-height: 32px;
    padding-block: .3rem;
}

/* Catalog by branch: keep the selector, actions, and dense product list on
 * the shared NoteBase Core surfaces without changing the shared table defaults. */
.catalog-center-page .catalog-center-selector {
    border-radius: var(--na-radius) !important;
    box-shadow: var(--app-shadow) !important;
}

.catalog-center-page .catalog-center-selector .form-label {
    margin-bottom: .45rem;
    font-weight: 600;
}

.catalog-center-page .catalog-center-selector .form-text {
    margin-top: .375rem;
    color: var(--app-muted);
    font-size: .875rem;
    line-height: 1.4;
}

.catalog-center-page .catalog-center-select,
.catalog-center-page .catalog-center-submit .btn,
.catalog-center-page .catalog-center-actions .btn {
    min-height: 44px;
    border-radius: var(--na-radius) !important;
}

.catalog-center-page .catalog-center-actions {
    gap: .5rem !important;
}

.catalog-center-page .catalog-center-actions .btn {
    min-width: 7.75rem;
    padding-inline: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 650;
    white-space: nowrap;
    transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.catalog-center-page .catalog-center-actions .btn.btn-outline-primary:not(:disabled):not(.disabled) {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--primary-500);
    --bs-btn-border-color: var(--primary-500);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--primary-600);
    --bs-btn-hover-border-color: var(--primary-600);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--primary-700);
    --bs-btn-active-border-color: var(--primary-700);
    color: var(--bs-btn-color) !important;
    background-color: var(--bs-btn-bg) !important;
    border-color: var(--bs-btn-border-color) !important;
}

.catalog-center-page .catalog-center-actions .btn.btn-outline-primary:not(:disabled):not(.disabled):hover {
    color: var(--bs-btn-hover-color) !important;
    background-color: var(--bs-btn-hover-bg) !important;
    border-color: var(--bs-btn-hover-border-color) !important;
}

.catalog-center-page .catalog-center-actions .btn.btn-outline-primary:not(:disabled):not(.disabled):active {
    color: var(--bs-btn-active-color) !important;
    background-color: var(--bs-btn-active-bg) !important;
    border-color: var(--bs-btn-active-border-color) !important;
}

.catalog-center-page .catalog-center-actions .btn.btn-outline-danger:not(:disabled):not(.disabled) {
    --bs-btn-color: var(--semantic-danger-text);
    --bs-btn-bg: var(--semantic-danger-soft);
    --bs-btn-border-color: #FECACA;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #B91C1C;
    --bs-btn-hover-border-color: #B91C1C;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #991B1B;
    --bs-btn-active-border-color: #991B1B;
    color: var(--bs-btn-color) !important;
    background-color: var(--bs-btn-bg) !important;
    border-color: var(--bs-btn-border-color) !important;
}

.catalog-center-page .catalog-center-actions .btn.btn-outline-danger:not(:disabled):not(.disabled):hover {
    color: var(--bs-btn-hover-color) !important;
    background-color: var(--bs-btn-hover-bg) !important;
    border-color: var(--bs-btn-hover-border-color) !important;
}

.catalog-center-page .catalog-center-actions .btn.btn-outline-danger:not(:disabled):not(.disabled):active {
    color: var(--bs-btn-active-color) !important;
    background-color: var(--bs-btn-active-bg) !important;
    border-color: var(--bs-btn-active-border-color) !important;
}

.catalog-center-page .catalog-center-actions .btn:focus-visible:not(:disabled):not(.disabled) {
    outline: 2px solid var(--bs-primary) !important;
    outline-offset: 2px;
    box-shadow: none !important;
}

.catalog-center-page .catalog-center-actions .btn:disabled,
.catalog-center-page .catalog-center-actions .btn.disabled {
    --bs-btn-disabled-color: var(--neutral-500);
    --bs-btn-disabled-bg: var(--app-surface-2);
    --bs-btn-disabled-border-color: var(--app-border);
    color: var(--bs-btn-disabled-color) !important;
    background-color: var(--bs-btn-disabled-bg) !important;
    border-color: var(--bs-btn-disabled-border-color) !important;
    opacity: 1;
    cursor: not-allowed;
    box-shadow: none;
}

[data-theme="dark"] .catalog-center-page .catalog-center-actions .btn.btn-outline-primary:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .catalog-center-page .catalog-center-actions .btn.btn-outline-primary:not(:disabled):not(.disabled) {
    --bs-btn-color: #fff;
    --bs-btn-bg: #2457FF;
    --bs-btn-border-color: #2457FF;
    --bs-btn-hover-bg: #1947E6;
    --bs-btn-hover-border-color: #1947E6;
    --bs-btn-active-bg: #1539B8;
    --bs-btn-active-border-color: #1539B8;
}

[data-theme="dark"] .catalog-center-page .catalog-center-actions .btn.btn-outline-danger:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .catalog-center-page .catalog-center-actions .btn.btn-outline-danger:not(:disabled):not(.disabled) {
    --bs-btn-color: #FDA4AF;
    --bs-btn-bg: #3A1D22;
    --bs-btn-border-color: #7F1D1D;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #991B1B;
    --bs-btn-hover-border-color: #991B1B;
    --bs-btn-active-bg: #7F1D1D;
    --bs-btn-active-border-color: #7F1D1D;
}

[data-theme="dark"] .catalog-center-page .catalog-center-actions .btn:disabled,
[data-theme="dark"] .catalog-center-page .catalog-center-actions .btn.disabled,
[data-bs-theme="dark"] .catalog-center-page .catalog-center-actions .btn:disabled,
[data-bs-theme="dark"] .catalog-center-page .catalog-center-actions .btn.disabled {
    --bs-btn-disabled-color: var(--dark-text-muted);
    --bs-btn-disabled-bg: var(--dark-surface-2);
    --bs-btn-disabled-border-color: var(--dark-border);
}

.catalog-center-page #table-filter-status-wrapper,
.catalog-center-page #table-filter-items_group-wrapper {
    padding: .75rem;
    background: var(--app-surface-2);
    border: 1px solid var(--app-border);
    border-radius: var(--na-radius);
    margin-bottom: 1rem !important;
}

.catalog-center-page #table-filter-status-wrapper label,
.catalog-center-page #table-filter-items_group-wrapper label {
    display: block;
    margin-bottom: .45rem;
    color: var(--app-text);
    font-size: .78rem;
    font-weight: 650;
}

.catalog-center-page #table-filter-status-wrapper .form-select,
.catalog-center-page #table-filter-items_group-wrapper .ts-control {
    min-height: 44px;
    border-radius: var(--na-radius) !important;
}

.catalog-center-page .catalog-products-heading {
    max-width: 72ch;
}

.catalog-center-page [id^="datatable-"] .form-control,
.catalog-center-page [id^="datatable-"] .form-select,
.catalog-center-page [id^="datatable-"] .btn {
    min-height: 44px;
    border-radius: var(--na-radius) !important;
}

.catalog-center-page [id^="datatable-"] .table-responsive {
    margin-top: .75rem;
}

.catalog-center-page [id^="datatable-"] [wire\:key^="empty-message-"] td {
    padding: 2rem 1rem !important;
    color: var(--app-muted) !important;
    text-align: center;
}

.catalog-center-page .catalog-center-sticky-bar {
    position: sticky;
    top: calc(56px + .5rem);
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem .85rem;
    margin-bottom: .75rem;
    background: var(--app-surface);
    border: 1px solid var(--app-border);
    border-radius: var(--na-radius);
    box-shadow: 0 .35rem .9rem rgb(15 23 42 / .12);
}

.catalog-center-page .catalog-center-sticky-context {
    display: flex;
    align-items: center;
    gap: .7rem;
    min-width: 0;
    flex: 1 1 auto;
    color: var(--app-text);
}

.catalog-center-page .catalog-center-sticky-context > i {
    flex: 0 0 auto;
    color: var(--bs-primary);
    font-size: 1rem;
}

.catalog-center-page .catalog-center-sticky-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.25;
}

.catalog-center-page .catalog-center-sticky-eyebrow {
    color: var(--app-muted);
    font-size: .7rem;
    font-weight: 600;
}

.catalog-center-page .catalog-center-sticky-copy strong {
    overflow: hidden;
    color: var(--app-text);
    font-size: .9rem;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.catalog-center-page .catalog-center-selection-count {
    flex: 0 0 auto;
    padding: .35rem .6rem;
    color: var(--app-muted);
    background: var(--app-surface-2);
    border: 1px solid var(--app-border);
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 600;
    white-space: nowrap;
}

.catalog-center-page .catalog-center-sticky-bar .catalog-center-actions {
    flex: 0 0 auto;
    margin: 0 !important;
}

@media (max-width: 767.98px) {
    .catalog-center-page .catalog-center-sticky-bar {
        align-items: stretch;
        flex-direction: column;
        gap: .65rem;
        padding: .7rem;
        top: calc(56px + .25rem);
    }

    .catalog-center-page .catalog-center-sticky-context {
        flex-wrap: wrap;
    }

    .catalog-center-page .catalog-center-sticky-bar .catalog-center-actions {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .catalog-center-page .catalog-center-submit,
    .catalog-center-page .catalog-center-submit .btn {
        width: 100%;
    }

    .catalog-center-page .catalog-center-actions {
        width: 100%;
    }

    .catalog-center-page .catalog-center-actions .btn {
        flex: 1 1 8.5rem;
    }
}

/* Product catalog: reuse the branch catalog's clear filter and action states
 * while keeping this page's row and bulk actions intact. */
.product-catalog-page .product-catalog-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: 1rem;
}

.product-catalog-page .product-catalog-actions .btn {
    min-height: 44px;
    padding-inline: 1rem;
    border-radius: var(--na-radius) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    font-weight: 650;
    transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.product-catalog-page .product-catalog-actions .btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--primary-500);
    --bs-btn-border-color: var(--primary-500);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #1746D4;
    --bs-btn-hover-border-color: #1746D4;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #1238AE;
    --bs-btn-active-border-color: #1238AE;
    color: var(--bs-btn-color) !important;
    background-color: var(--bs-btn-bg) !important;
    border-color: var(--bs-btn-border-color) !important;
}

.product-catalog-page .product-catalog-actions .btn-primary:hover:not(:disabled):not(.disabled) {
    color: #FFFFFF !important;
    background-color: #1746D4 !important;
    border-color: #1746D4 !important;
}

.product-catalog-page .product-catalog-actions .btn-primary:active:not(:disabled):not(.disabled) {
    color: #FFFFFF !important;
    background-color: #1238AE !important;
    border-color: #1238AE !important;
}

.product-catalog-page .product-catalog-actions .btn-outline-secondary {
    --bs-btn-color: var(--neutral-700);
    --bs-btn-bg: var(--app-surface);
    --bs-btn-border-color: var(--app-border-strong);
    --bs-btn-hover-color: var(--primary-700);
    --bs-btn-hover-bg: var(--primary-50);
    --bs-btn-hover-border-color: var(--primary-200);
    --bs-btn-active-color: var(--primary-800);
    --bs-btn-active-bg: var(--primary-100);
    --bs-btn-active-border-color: var(--primary-300);
    color: var(--bs-btn-color) !important;
    background-color: var(--bs-btn-bg) !important;
    border-color: var(--bs-btn-border-color) !important;
}

.product-catalog-page .product-catalog-actions .btn-outline-secondary:hover:not(:disabled):not(.disabled) {
    color: var(--bs-btn-hover-color) !important;
    background-color: var(--bs-btn-hover-bg) !important;
    border-color: var(--bs-btn-hover-border-color) !important;
}

.product-catalog-page .product-catalog-actions .btn-outline-secondary:active:not(:disabled):not(.disabled) {
    color: var(--bs-btn-active-color) !important;
    background-color: var(--bs-btn-active-bg) !important;
    border-color: var(--bs-btn-active-border-color) !important;
}

.product-catalog-page .product-catalog-actions .btn:focus-visible,
.product-catalog-page [id^="datatable-"] .btn:focus-visible,
.product-catalog-page [id^="datatable-"] .form-control:focus-visible,
.product-catalog-page [id^="datatable-"] .form-select:focus-visible,
.product-catalog-page [id^="datatable-"] .ts-control.focus {
    outline: 2px solid var(--bs-primary) !important;
    outline-offset: 2px;
    box-shadow: 0 0 0 .2rem var(--app-focus) !important;
}

.product-catalog-page .product-catalog-actions .btn:disabled,
.product-catalog-page .product-catalog-actions .btn.disabled {
    color: var(--neutral-500) !important;
    background-color: var(--app-surface-2) !important;
    border-color: var(--app-border) !important;
    opacity: 1;
    cursor: not-allowed;
    box-shadow: none !important;
}

[data-theme="dark"] .product-catalog-page .product-catalog-actions .btn-outline-secondary,
[data-bs-theme="dark"] .product-catalog-page .product-catalog-actions .btn-outline-secondary {
    --bs-btn-color: #CBD5E1;
    --bs-btn-bg: var(--dark-surface-2);
    --bs-btn-border-color: var(--dark-border-light);
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-hover-bg: #1E2A3D;
    --bs-btn-hover-border-color: #5E7FFF;
    --bs-btn-active-bg: #172554;
    --bs-btn-active-border-color: #5E7FFF;
}

[data-theme="dark"] .product-catalog-page .product-catalog-actions .btn-primary,
[data-bs-theme="dark"] .product-catalog-page .product-catalog-actions .btn-primary {
    --bs-btn-color: #FFFFFF;
    --bs-btn-bg: #2457FF;
    --bs-btn-border-color: #2457FF;
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-hover-bg: #1947E6;
    --bs-btn-hover-border-color: #1947E6;
    --bs-btn-active-color: #FFFFFF;
    --bs-btn-active-bg: #1539B8;
    --bs-btn-active-border-color: #1539B8;
}

[data-theme="dark"] .product-catalog-page .product-catalog-actions .btn-primary:hover:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .product-catalog-page .product-catalog-actions .btn-primary:hover:not(:disabled):not(.disabled) {
    color: #FFFFFF !important;
    background-color: #1947E6 !important;
    border-color: #1947E6 !important;
}

[data-theme="dark"] .product-catalog-page .product-catalog-actions .btn-primary:active:not(:disabled):not(.disabled),
[data-bs-theme="dark"] .product-catalog-page .product-catalog-actions .btn-primary:active:not(:disabled):not(.disabled) {
    color: #FFFFFF !important;
    background-color: #1539B8 !important;
    border-color: #1539B8 !important;
}

[data-theme="dark"] .product-catalog-page .product-catalog-actions .btn:disabled,
[data-theme="dark"] .product-catalog-page .product-catalog-actions .btn.disabled,
[data-bs-theme="dark"] .product-catalog-page .product-catalog-actions .btn:disabled,
[data-bs-theme="dark"] .product-catalog-page .product-catalog-actions .btn.disabled {
    color: var(--dark-text-muted) !important;
    background-color: var(--dark-surface-2) !important;
    border-color: var(--dark-border) !important;
}

.product-catalog-page [id^="datatable-"] .d-md-flex.justify-content-between.mb-3 {
    gap: .75rem;
}

.product-catalog-page [id^="datatable-"] .d-md-flex.justify-content-between.mb-3 > .d-md-flex {
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
}

.product-catalog-page [id^="datatable-"] .d-md-flex.justify-content-between.mb-3 > .d-md-flex > .mb-3 {
    margin-bottom: 0 !important;
}

.product-catalog-page [id^="datatable-"] .d-md-flex.justify-content-between.mb-3 .btn.dropdown-toggle,
.product-catalog-page [id^="datatable-"] .d-md-flex.justify-content-between.mb-3 .input-group .btn {
    min-height: 44px;
    padding-inline: .9rem;
    border: 1px solid var(--app-border-strong) !important;
    border-radius: var(--na-radius) !important;
    color: var(--app-text) !important;
    background-color: var(--app-surface) !important;
    box-shadow: none !important;
    font-weight: 600;
    transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.product-catalog-page [id^="datatable-"] .d-md-flex.justify-content-between.mb-3 .btn.dropdown-toggle:hover:not(:disabled):not(.disabled),
.product-catalog-page [id^="datatable-"] .d-md-flex.justify-content-between.mb-3 .input-group .btn:hover:not(:disabled):not(.disabled) {
    color: var(--primary-700) !important;
    background-color: var(--primary-50) !important;
    border-color: var(--primary-200) !important;
}

.product-catalog-page [id^="datatable-"] .d-md-flex.justify-content-between.mb-3 .btn.dropdown-toggle:active:not(:disabled):not(.disabled),
.product-catalog-page [id^="datatable-"] .d-md-flex.justify-content-between.mb-3 .input-group .btn:active:not(:disabled):not(.disabled),
.product-catalog-page [id^="datatable-"] .d-md-flex.justify-content-between.mb-3 .btn.dropdown-toggle[aria-expanded="true"] {
    color: var(--primary-800) !important;
    background-color: var(--primary-100) !important;
    border-color: var(--primary-300) !important;
}

.product-catalog-page [id^="datatable-"] .d-md-flex.justify-content-between.mb-3 #perPage,
.product-catalog-page [id^="datatable-"] .d-md-flex.justify-content-between.mb-3 .input-group .form-control {
    min-height: 44px;
    border: 1px solid var(--app-border-strong) !important;
    border-radius: var(--na-radius) !important;
    background-color: var(--app-surface) !important;
    color: var(--app-heading) !important;
    box-shadow: none;
}

.product-catalog-page [id^="datatable-"] > .d-flex.flex-column > div:nth-child(2) {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .45rem;
    margin-bottom: .85rem !important;
    color: var(--app-muted);
    font-size: .82rem;
}

.product-catalog-page [id^="datatable-"] > .d-flex.flex-column > div:nth-child(2) .badge-info {
    padding: .4rem .6rem;
    border-radius: 999px;
    color: var(--semantic-info-text);
    background-color: var(--semantic-info-soft);
    font-size: .78rem;
    font-weight: 600;
}

.product-catalog-page [id^="datatable-"] > .d-flex.flex-column > div:nth-child(2) .badge-info a {
    margin-left: .4rem;
    color: inherit !important;
    text-decoration: none;
}

.product-catalog-page [id^="datatable-"] > .d-flex.flex-column > div:nth-child(2) .badge-info a:hover {
    color: var(--primary-700) !important;
}

.product-catalog-page [id^="datatable-"] > .d-flex.flex-column > div:nth-child(2) .badge-light {
    padding: .4rem .65rem;
    border: 1px solid var(--app-border);
    border-radius: 999px;
    color: var(--app-muted);
    background: var(--app-surface-2);
    font-size: .78rem;
}

[data-theme="dark"] .product-catalog-page [id^="datatable-"] > .d-flex.flex-column > div:nth-child(2) .badge-info,
[data-bs-theme="dark"] .product-catalog-page [id^="datatable-"] > .d-flex.flex-column > div:nth-child(2) .badge-info {
    color: #7DD3FC;
    background-color: rgba(2, 132, 199, .18);
}

.product-catalog-page [id^="datatable-"] [id^="table-filter-"][id$="-wrapper"] {
    padding: 0 .75rem;
    margin-bottom: .65rem !important;
    border: 0;
    background: transparent;
}

.product-catalog-page [id^="datatable-"] [id^="table-filter-"][id$="-wrapper"] > div {
    height: 100%;
    padding: .75rem;
    border: 1px solid var(--app-border);
    border-radius: var(--na-radius);
    background: var(--app-surface-2);
}

.product-catalog-page [id^="datatable-"] [id^="table-filter-"][id$="-wrapper"] label {
    display: block;
    margin-bottom: .4rem;
    color: var(--app-text);
    font-size: .78rem;
    font-weight: 650;
}

.product-catalog-page [id^="datatable-"] [id^="table-filter-"][id$="-wrapper"] .form-control,
.product-catalog-page [id^="datatable-"] [id^="table-filter-"][id$="-wrapper"] .form-select,
.product-catalog-page [id^="datatable-"] [id^="table-filter-"][id$="-wrapper"] .ts-control {
    min-height: 44px;
    border: 1px solid var(--app-border-strong) !important;
    border-radius: var(--na-radius) !important;
    background-color: var(--app-surface) !important;
    color: var(--app-heading) !important;
}

.product-catalog-page [id^="datatable-"] .table-actions {
    gap: .4rem;
}

.product-catalog-page [id^="datatable-"] .table-actions .fiori-action-btn {
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
    border: 1px solid var(--app-border) !important;
    border-radius: 9px;
    background-color: var(--app-surface) !important;
    box-shadow: none;
    transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.product-catalog-page [id^="datatable-"] .table-actions .fiori-action-btn:hover:not(:disabled):not(.disabled),
.product-catalog-page [id^="datatable-"] .table-actions .fiori-action-btn:focus-visible:not(:disabled):not(.disabled) {
    border-color: currentColor !important;
    background-color: var(--fiori-action-soft) !important;
    color: var(--fiori-action) !important;
}

.product-catalog-page [id^="datatable-"] .table-actions .fiori-action-btn:active:not(:disabled):not(.disabled) {
    border-color: var(--fiori-action) !important;
    background-color: var(--fiori-action) !important;
    color: #fff !important;
}

.product-catalog-page [id^="datatable-"] .table-actions .fiori-action-btn:disabled,
.product-catalog-page [id^="datatable-"] .table-actions .fiori-action-btn.disabled,
.product-catalog-page [id^="datatable-"] .table-actions .fiori-action-btn[aria-disabled="true"] {
    border-color: var(--app-border) !important;
    background-color: var(--app-surface-2) !important;
    color: var(--neutral-500) !important;
    opacity: 1;
    cursor: not-allowed;
    box-shadow: none;
}

@media (max-width: 575.98px) {
    .product-catalog-page .product-catalog-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .product-catalog-page .product-catalog-actions .btn {
        width: 100%;
    }
}

@media (max-width: 767.98px) {
    .product-catalog-page [id^="datatable-"] .d-md-flex.justify-content-between.mb-3 > .d-md-flex > .mb-3 {
        margin-bottom: .5rem !important;
    }
}

/* NoteBase Core brand and semantic tokens. These values follow the approved
 * palette and bridge the existing Bootstrap, NiceAdmin, and table layers. */
:root,
[data-theme="light"],
[data-bs-theme="light"] {
    --dm-primary: #2458F5;
    --dm-primary-hover: #1746D4;
    --dm-primary-active: #1238AE;
    --dm-primary-soft: #EAF0FF;
    --dm-ice: #DDF5FB;
    --dm-ice-strong: #C9EDF7;
    --dm-deep-navy: #101B35;
    --dm-accent-lime: #B6FF2E;
    --dm-canvas: #F6F8FC;
    --dm-surface: #FFFFFF;
    --dm-surface-muted: #F1F5F9;
    --dm-text: #17243D;
    --dm-text-secondary: #64748B;
    --dm-border: #E2E8F0;
    --dm-success: #16A36A;
    --dm-warning: #D99013;
    --dm-danger: #DC4055;
    --dm-info: #2458F5;
    --dm-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

    --primary-50: #EAF0FF;
    --primary-100: #D5E0FF;
    --primary-200: #AFC4FF;
    --primary-300: #83A2FF;
    --primary-400: #5279FF;
    --primary-500: #2458F5;
    --primary-600: #1746D4;
    --primary-700: #1238AE;
    --primary-800: #102F8D;
    --primary-900: #10286F;
    --ice-100: #DDF5FB;
    --ice-200: #C9EDF7;
    --neutral-50: #F6F8FC;
    --neutral-100: #F1F5F9;
    --neutral-200: #E2E8F0;
    --neutral-500: #64748B;
    --neutral-900: #17243D;
    --semantic-success: #16A36A;
    --semantic-success-soft: #E4F6EE;
    --semantic-success-text: #126D49;
    --semantic-warning: #D99013;
    --semantic-warning-soft: #FFF4D8;
    --semantic-warning-text: #785008;
    --semantic-danger: #DC4055;
    --semantic-danger-soft: #FCE9EC;
    --semantic-danger-text: #9C2335;
    --semantic-info: #2458F5;
    --semantic-info-soft: #EAF0FF;
    --semantic-info-text: #1238AE;

    --app-canvas: #F6F8FC;
    --app-surface: #FFFFFF;
    --app-surface-2: #F1F5F9;
    --app-border: #E2E8F0;
    --app-border-strong: #CBD5E1;
    --app-heading: #17243D;
    --app-text: #17243D;
    --app-muted: #64748B;
    --app-focus: rgba(36, 88, 245, .22);
    --bs-primary: #2458F5;
    --bs-primary-rgb: 36, 88, 245;
    --bs-success: #16A36A;
    --bs-success-rgb: 22, 163, 106;
    --bs-warning: #D99013;
    --bs-warning-rgb: 217, 144, 19;
    --bs-danger: #DC4055;
    --bs-danger-rgb: 220, 64, 85;
    --bs-info: #2458F5;
    --bs-info-rgb: 36, 88, 245;
    --na-primary: #2458F5;
    --na-primary-rgb: 36, 88, 245;
    --na-heading: #17243D;
    --na-body: #17243D;
    --na-muted: #64748B;
    --na-page: #F6F8FC;
    --na-surface: #FFFFFF;
    --na-soft: #F1F5F9;
    --na-border: #E2E8F0;

    --sb-bg: #101B35;
    --sb-bg-hover: #1A294A;
    --sb-border: #253451;
    --sb-text: #DCE5F5;
    --sb-text-muted: #AEBBD1;
    --sb-text-icon: #AEBBD1;
    --sb-active-bg: #172554;
    --sb-active-color: #FFFFFF;
    --sb-active-indicator: var(--primary-400);
    --sidebar-width: 264px;
    --sidebar-width-collapsed: 60px;
}

[data-theme="dark"],
[data-bs-theme="dark"] {
    --dm-primary: #5279FF;
    --dm-primary-hover: #7794FF;
    --dm-primary-active: #AFC4FF;
    --dm-primary-soft: #1C2B50;
    --dm-ice: #173144;
    --dm-ice-strong: #26475D;
    --dm-deep-navy: #101B35;
    --dm-canvas: #0B1220;
    --dm-surface: #111C2E;
    --dm-surface-muted: #172337;
    --dm-text: #F3F6FC;
    --dm-text-secondary: #AAB6CC;
    --dm-border: #2A3850;
    --dm-success: #42C78B;
    --dm-warning: #F2B84B;
    --dm-danger: #F17888;
    --dm-info: #83A2FF;

    --primary-50: var(--dm-primary-soft);
    --primary-100: #1C2B50;
    --primary-200: #304879;
    --primary-300: #5279FF;
    --primary-400: #7794FF;
    --primary-500: #83A2FF;
    --primary-600: #AFC4FF;
    --primary-700: #C6D4FF;
    --primary-800: #D7E1FF;
    --primary-900: #EAF0FF;
    --ice-100: #173144;
    --ice-200: #26475D;
    --neutral-50: #111C2E;
    --neutral-100: #172337;
    --neutral-200: #2A3850;
    --neutral-500: #AAB6CC;
    --neutral-900: #F3F6FC;
    --semantic-success: #42C78B;
    --semantic-success-soft: rgba(66, 199, 139, .16);
    --semantic-success-text: #8DE0B8;
    --semantic-warning: #F2B84B;
    --semantic-warning-soft: rgba(242, 184, 75, .16);
    --semantic-warning-text: #F6D38D;
    --semantic-danger: #F17888;
    --semantic-danger-soft: rgba(241, 120, 136, .16);
    --semantic-danger-text: #FFB0BA;
    --semantic-info: #83A2FF;
    --semantic-info-soft: rgba(131, 162, 255, .16);
    --semantic-info-text: #B8CAFF;

    --app-canvas: #0B1220;
    --app-surface: #111C2E;
    --app-surface-2: #172337;
    --app-border: #2A3850;
    --app-border-strong: #3A4B67;
    --app-heading: #F3F6FC;
    --app-text: #E2E8F0;
    --app-muted: #AAB6CC;
    --app-focus: rgba(131, 162, 255, .32);
    --bs-primary: #5279FF;
    --bs-primary-rgb: 82, 121, 255;
    --bs-success: #42C78B;
    --bs-success-rgb: 66, 199, 139;
    --bs-warning: #F2B84B;
    --bs-warning-rgb: 242, 184, 75;
    --bs-danger: #F17888;
    --bs-danger-rgb: 241, 120, 136;
    --bs-info: #83A2FF;
    --bs-info-rgb: 131, 162, 255;
    --na-primary: #5279FF;
    --na-primary-rgb: 82, 121, 255;
    --na-heading: #F3F6FC;
    --na-body: #E2E8F0;
    --na-muted: #AAB6CC;
    --na-page: #0B1220;
    --na-surface: #111C2E;
    --na-soft: #172337;
    --na-border: #2A3850;

    --sb-bg: #101B35;
    --sb-bg-hover: #1A294A;
    --sb-border: #253451;
    --sb-text: #DCE5F5;
    --sb-text-muted: #AEBBD1;
    --sb-text-icon: #AEBBD1;
    --sb-active-bg: #172554;
    --sb-active-color: #FFFFFF;
    --sb-active-indicator: var(--primary-400);
}

body.app,
body.app .left-sidebar,
body.app .modern-navbar {
    font-family: var(--dm-font);
}

body.app .left-sidebar,
body.app .left-sidebar .sidebar-logo,
body.app .left-sidebar .sidebar-user-footer {
    color: var(--sb-text);
    background: var(--sb-bg);
    border-color: var(--sb-border);
}

body.app .left-sidebar .sidebar-brand-wordmark {
    color: #FFFFFF;
    font-size: 1.45rem;
    font-weight: 750;
    letter-spacing: -.045em;
    line-height: 1;
}

body.app .btn-primary {
    --bs-btn-color: #FFFFFF;
    --bs-btn-bg: var(--dm-primary);
    --bs-btn-border-color: var(--dm-primary);
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-hover-bg: var(--dm-primary-hover);
    --bs-btn-hover-border-color: var(--dm-primary-hover);
    --bs-btn-active-color: #FFFFFF;
    --bs-btn-active-bg: var(--dm-primary-active);
    --bs-btn-active-border-color: var(--dm-primary-active);
}

body.app .btn-secondary {
    --bs-btn-color: var(--app-heading);
    --bs-btn-bg: var(--dm-primary-soft);
    --bs-btn-border-color: var(--dm-primary-soft);
    --bs-btn-hover-color: var(--app-heading);
    --bs-btn-hover-bg: var(--primary-100);
    --bs-btn-hover-border-color: var(--primary-100);
}

body.app .modern-navbar {
    height: 56px;
    box-shadow: none;
}

body.app .modern-navbar .btn-icon-only,
body.app .modern-navbar .btn-user-profile {
    min-width: 40px;
    min-height: 40px;
}

body.app .modern-navbar .btn-user-profile {
    gap: .6rem;
    color: var(--app-heading);
}

body.app .modern-navbar .user-profile-label {
    max-width: 150px;
    color: var(--app-heading);
    font-size: .82rem;
    font-weight: 600;
}

body.app .alert-primary {
    color: var(--semantic-info-text);
    background: var(--semantic-info-soft);
    border-color: var(--primary-200);
}

body.app .alert-success { color: var(--semantic-success-text); background: var(--semantic-success-soft); border-color: var(--semantic-success); }
body.app .alert-warning { color: var(--semantic-warning-text); background: var(--semantic-warning-soft); border-color: var(--semantic-warning); }
body.app .alert-danger { color: var(--semantic-danger-text); background: var(--semantic-danger-soft); border-color: var(--semantic-danger); }
body.app .alert-info { color: var(--semantic-info-text); background: var(--semantic-info-soft); border-color: var(--dm-primary); }

/* Table status indicators use one compact, icon-only badge across modules. */
.status-indicator {
    display: inline-flex;
    flex: 0 0 1.75rem;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border: 1px solid transparent;
    border-radius: 50%;
    font-size: .82rem;
    line-height: 1;
    vertical-align: middle;
}

.status-indicator--success {
    color: var(--semantic-success-text);
    background: var(--semantic-success-soft);
    border-color: var(--semantic-success);
}

.status-indicator--warning {
    color: var(--semantic-warning-text);
    background: var(--semantic-warning-soft);
    border-color: var(--semantic-warning);
}

.status-indicator--danger {
    color: var(--semantic-danger-text);
    background: var(--semantic-danger-soft);
    border-color: var(--semantic-danger);
}

.status-indicator--info {
    color: var(--semantic-info-text);
    background: var(--semantic-info-soft);
    border-color: var(--semantic-info);
}

.status-indicator--neutral {
    color: var(--app-muted);
    background: var(--app-surface-2);
    border-color: var(--app-border-strong);
}

@media (min-width: 768px) {
    body.app .modern-navbar .btn-user-profile .dropdown-icon { display: inline-block !important; }
}

/* Opt in only for figures users compare; do not apply this to prose or labels. */
.dm-tabular-nums {
    font-variant-numeric: tabular-nums;
}
/* User dashboard assignment cards */
.dashboard-assignment-panel {
    padding: 1rem;
    border: 1px solid var(--dt-border, var(--bs-border-color));
    border-radius: 12px;
    background: var(--dt-surface, var(--bs-tertiary-bg));
}

.dashboard-choice-card {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    width: 100%;
    height: 100%;
    padding: .75rem;
    border: 1px solid var(--dt-border, var(--bs-border-color));
    border-radius: 9px;
    background: var(--dt-bg, var(--bs-body-bg));
    cursor: pointer;
}

.dashboard-choice-card:focus-within {
    outline: 3px solid rgba(var(--bs-primary-rgb), .25);
    border-color: var(--dt-accent, var(--bs-primary));
}

.dashboard-choice-card span,
.dashboard-choice-card small { display: block; }
.dashboard-choice-card small { color: var(--dt-muted, var(--bs-secondary-color)); margin-top: .15rem; }

/* Collapsible sidebar groups share the established navy shell and blue focus accent. */
body.app .left-sidebar .sidebar-navigation {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

body.app .left-sidebar .sidebar-navigation .sidebar-menu {
    flex: 1 1 auto;
    min-height: 0;
}

body.app .left-sidebar .sidebar-menu .sidebar-group-toggle {
    width: 100%;
    min-height: 44px;
    text-align: left;
}

body.app .left-sidebar .mobile-toggle .btn-toggle {
    width: 44px;
    height: 44px;
}

body.app .left-sidebar .sidebar-user-actions .btn-user-menu {
    min-width: 44px;
    min-height: 44px;
}

body.app .left-sidebar .sidebar-menu .sidebar-group-items {
    margin: 2px 0 6px 14px;
    padding: 4px 0 6px 7px;
}

body.app .left-sidebar .sidebar-menu .sidebar-group-items .nav-item {
    margin: 0;
}

body.app .left-sidebar .sidebar-menu .submenu .sidebar-link {
    min-height: 44px;
    padding-top: 9px;
    padding-bottom: 9px;
}

body.app .left-sidebar .sidebar-menu .nav-item .sidebar-link.active {
    position: relative;
    background: var(--sb-active-bg) !important;
    color: var(--sb-active-color) !important;
}

body.app .left-sidebar .sidebar-menu .nav-item .sidebar-link.active::before {
    content: "";
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: 0;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--sb-active-indicator);
}

@media (prefers-reduced-motion: reduce) {
    body.app .left-sidebar .sidebar-menu .dropdown-arrow-wrapper svg {
        transition: none;
    }
}
