/* Shared Admin + Agent identity. Semantic success/warning/danger colors are retained. */
:root{--bs-primary:var(--brand-primary);--bs-link-color:var(--brand-primary);--bs-link-hover-color:var(--brand-primary);--brand-soft:color-mix(in srgb,var(--brand-primary) 11%,white);--brand-border:#e3e9e7;--brand-ink:#223b34;--brand-muted:#6b7e77}
@media screen{
html body.admin-ui,html body.agent-ui{--admin-canvas:var(--brand-background);--agent-canvas:var(--brand-background);--admin-radius:var(--brand-radius);--agent-radius:var(--brand-radius);background:var(--brand-background);font-size:var(--brand-font-size);color:var(--brand-ink)}
body .content-wrapper,body .layout-page{background:var(--brand-background)}
body .content-wrapper>.container-xxl,body .content-wrapper>.container-fluid{max-width:var(--brand-width);width:100%}
body .card{border:1px solid var(--brand-border);border-radius:var(--brand-radius);box-shadow:0 5px 24px #173d2d06}
body .card-header{background:transparent} body .table>:not(caption)>*>*{padding-top:var(--brand-density);padding-bottom:var(--brand-density)}
body .table thead th{background:var(--brand-subtle);color:var(--brand-muted);font-size:.72rem;letter-spacing:.045em;text-transform:uppercase}
body .layout-navbar.bg-navbar-theme{border:1px solid var(--brand-border);box-shadow:0 4px 18px #173d2d05;background:var(--brand-surface)!important}
body #layout-menu.bg-menu-theme{background:var(--brand-sidebar)!important;border:0;box-shadow:none}
body #layout-menu.bg-menu-theme .menu-inner .menu-item>.menu-link,body #layout-menu.bg-menu-theme .menu-header,body #layout-menu.bg-menu-theme .app-brand-text,body #layout-menu.bg-menu-theme .layout-menu-toggle{color:var(--brand-on-sidebar)!important}
body #layout-menu.bg-menu-theme .menu-header{opacity:.6;font-size:.65rem;letter-spacing:.09em}
body #layout-menu.bg-menu-theme .menu-inner .menu-item>.menu-link:hover,body #layout-menu.bg-menu-theme .menu-inner .menu-item.active>.menu-link.menu-toggle{background:color-mix(in srgb,var(--brand-on-sidebar) 10%,transparent)!important;box-shadow:none!important}
body #layout-menu.bg-menu-theme .menu-inner .menu-item.active>.menu-link:not(.menu-toggle){background:var(--brand-primary)!important;color:var(--brand-on-primary)!important;box-shadow:none!important}
/* The submenu marker is an icon glyph: paint its foreground, not its rectangular box. */
body #layout-menu.bg-menu-theme .menu-inner .menu-item.active>.menu-link::before{background:transparent!important;color:inherit!important}
body #layout-menu.menu .app-brand{height:88px;min-height:88px;padding:16px 12px;border-bottom:1px solid color-mix(in srgb,var(--brand-on-sidebar) 12%,transparent);gap:10px}
body #layout-menu.menu .portal-brand-link{display:flex!important;flex-direction:row!important;align-items:center!important;gap:10px;min-width:0;flex:1 1 0%;overflow:hidden}
/* Sidebar uses the dedicated short icon; full wordmarks belong on login pages. */
body .portal-brand-logo{box-sizing:border-box;width:var(--brand-logo-size);height:var(--brand-logo-size);object-fit:contain;flex:0 0 auto;padding:5px;background:#fff;border:1px solid #ffffff45;border-radius:8px;display:block}
body .portal-brand-mark{width:var(--brand-logo-size);height:var(--brand-logo-size);flex:0 0 var(--brand-logo-size);border-radius:8px}
body .portal-brand-mark{display:grid;place-items:center;background:var(--brand-primary);color:var(--brand-on-primary);font-weight:700}
body #layout-menu.menu .portal-brand-name{display:var(--brand-show-name);flex:1 1 0%;min-width:0;font-size:16px!important;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.3px;text-transform:none;margin:0!important;font-weight:650}
body #layout-menu.menu .app-brand .layout-menu-toggle{position:static!important;transform:none!important;flex:0 0 26px;width:26px;height:28px;margin:0!important;display:grid;place-items:center;border:0!important;background:transparent!important;box-shadow:none!important}
.layout-menu-collapsed:not(.layout-menu-hover):not(.layout-menu-expanded) body #layout-menu.menu .portal-brand-name{display:none}
.layout-menu-collapsed:not(.layout-menu-hover) body #layout-menu.menu .portal-brand-link{overflow:visible}
.layout-menu-collapsed:not(.layout-menu-hover) body #layout-menu.menu .app-brand{padding-inline:20px}
.layout-menu-collapsed:not(.layout-menu-hover) body #layout-menu.menu .app-brand .layout-menu-toggle{display:none}
body .content-footer{display:var(--brand-show-footer)}
body a:not(.btn):not(.menu-link):not(.nav-link):not(.dropdown-item):not(.app-brand-link):not(.page-link){color:var(--brand-primary)}
body .btn-primary,body .btn-primary:hover,body .btn-primary:focus,body .btn-primary:active,body .btn-primary:disabled,body .show>.btn-primary.dropdown-toggle{color:var(--brand-on-primary)!important;background:var(--brand-primary)!important;border-color:var(--brand-primary)!important;box-shadow:none!important}
body .btn-primary:hover{filter:brightness(.94)}
body .btn-outline-primary{color:var(--brand-primary)!important;border-color:var(--brand-primary)!important;background:transparent!important}
body .btn-outline-primary:hover,body .btn-outline-primary.active{background:var(--brand-primary)!important;color:var(--brand-on-primary)!important}
body .text-primary,body .link-primary{color:var(--brand-primary)!important}
body .bg-primary,body .progress-bar,body .form-check-input:checked,body .form-switch .form-check-input:checked,body .page-item.active .page-link,body .pagination .page-link.active,body .nav-pills .nav-link.active,body .list-group-item.active{background-color:var(--brand-primary)!important;border-color:var(--brand-primary)!important;color:var(--brand-on-primary)!important;box-shadow:none!important}
body .bg-label-primary,body .badge.bg-label-primary,body .btn-label-primary{background:var(--brand-soft)!important;color:var(--brand-primary)!important}
body .nav-tabs .nav-link.active{color:var(--brand-primary)!important;border-bottom-color:var(--brand-primary)!important}
body .form-control:focus,body .form-select:focus,body .select2-container--default.select2-container--focus .select2-selection,body .select2-container--default.select2-container--open .select2-selection{border-color:var(--brand-primary)!important;box-shadow:0 0 0 3px var(--brand-soft)!important}
body .select2-container--default .select2-results__option--highlighted[aria-selected],body .select2-container--default .select2-results__option--highlighted[aria-selected=true],body .select2-container--default .select2-results__option--selected,body .select2-container--default .select2-results__option[aria-selected=true],body .select2-container--default .select2-selection--multiple .select2-selection__choice,body .bootstrap-select .dropdown-item.active,body .dropdown-item.active,body .dropdown-item:active{background:var(--brand-primary)!important;color:var(--brand-on-primary)!important}
body .select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:var(--brand-on-primary)!important}
body .flatpickr-day.selected,body .flatpickr-day.startRange,body .flatpickr-day.endRange,body .noUi-connect{background:var(--brand-primary)!important;border-color:var(--brand-primary)!important;color:var(--brand-on-primary)!important}
body div.dataTables_processing>div:last-child>div{background:var(--brand-primary)!important}
body input[type=checkbox],body input[type=radio],body input[type=range],body select{accent-color:var(--brand-primary)}
body select option:checked{background:var(--brand-primary);color:var(--brand-on-primary)}
body .template-customizer-open-btn,body .style-switcher,body .dropdown-style-switcher{display:none!important}
body #layout-menu .menu-inner-shadow{background:linear-gradient(var(--brand-sidebar),transparent)!important;top:88px}
body :focus-visible{outline:2px solid var(--brand-primary);outline-offset:3px}
}
.settings-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:8px 0 26px}.settings-heading h2{font-size:28px;letter-spacing:-1px;margin:8px 0;color:var(--brand-ink)}.settings-heading p{color:var(--brand-muted);margin:0}.settings-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--brand-muted);font-weight:600}
body:has(#branding-form) #techify-assistant-launch{bottom:104px!important;top:auto!important;width:52px!important}
body:has(#branding-form) #techify-assistant-launch img{width:48px!important;height:56px!important}
body:has(#branding-form) #techify-assistant-launch span{display:none!important}
.settings-navigation{display:flex;gap:6px;flex-wrap:wrap;padding:8px;background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:12px;margin-bottom:24px}.settings-navigation a{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;color:var(--brand-muted)!important;font-size:13px}.settings-navigation a.active{background:var(--brand-soft);color:var(--brand-primary)!important;font-weight:600}
.branding-toolbar{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:20px;padding:24px;margin-bottom:24px}.branding-toolbar label{font-size:12px;min-width:210px}.branding-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:24px}.brand-portal-tabs{display:flex;gap:8px;margin-bottom:18px}.branding-section{margin-bottom:18px}.branding-section h5{font-size:16px;margin-bottom:22px}.branding-section .form-label{font-size:12px}.branding-section fieldset{min-width:0}.branding-preview{position:sticky;top:100px;align-self:start;min-width:0}.branding-preview .card-header{padding:20px}.brand-preview-stage{padding:12px;background:var(--brand-subtle);border-radius:0 0 var(--brand-radius) var(--brand-radius);overflow:hidden;display:flex;justify-content:center}#brand-preview{width:100%;height:570px;border:0;background:var(--brand-surface);border-radius:8px;transition:width .2s}#brand-preview[data-size=mobile]{width:320px;max-width:100%}.branding-save{position:sticky;bottom:12px;z-index:20;border:1px solid var(--brand-border);background:var(--brand-surface);backdrop-filter:blur(12px);padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-radius:12px;box-shadow:0 8px 30px #15332812;margin-top:24px}.branding-save>span{font-size:13px;color:var(--brand-muted)}[hidden]{display:none!important}
/* Login layouts share the same accessible form and server authentication. */
.portal-login{min-height:100vh;padding:32px;display:grid;place-items:center;background:var(--brand-background);color:var(--brand-ink)}.portal-login-shell{width:min(1160px,100%);min-height:660px;display:grid;grid-template-columns:1fr 1fr;background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:24px;overflow:hidden;box-shadow:0 20px 80px #183b2910}.portal-login-story{background:var(--brand-sidebar);color:var(--brand-on-sidebar);padding:52px;display:flex;flex-direction:column;justify-content:space-between;position:relative;isolation:isolate;overflow:hidden}.portal-login-story:after{content:'';position:absolute;width:420px;height:420px;border:1px solid currentColor;border-radius:50%;right:-180px;bottom:-120px;opacity:.12;z-index:-1}.portal-login-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.13;z-index:-1}.portal-login-identity{display:flex;gap:12px;align-items:center;font-size:20px;font-weight:650}.portal-login-identity img{width:52px;height:52px;object-fit:contain}.portal-login-story h1{color:inherit;font-size:clamp(30px,3.3vw,48px);font-weight:600;letter-spacing:-1.8px;line-height:1.13;max-width:440px;margin:50px 0 24px}.portal-login-story p{color:inherit;opacity:.8;line-height:1.8;max-width:360px}.portal-login-kicker{font-size:10px;letter-spacing:.18em;text-transform:uppercase}.portal-login-form{padding:56px;display:flex;flex-direction:column;justify-content:center;min-width:0}.portal-login-form h2{font-size:30px;letter-spacing:-.9px;margin:18px 0 12px}.portal-login-form .form-control{min-height:46px}.portal-login-form .btn-primary{min-height:46px}.portal-login-form .form-label{font-size:12px;color:var(--brand-ink)}.portal-login-description{color:var(--brand-muted);margin-bottom:28px;line-height:1.7}.portal-login-help{font-size:12px;color:var(--brand-muted);margin:28px 0 0;text-align:center}.portal-login-small-brand{display:none}.portal-login[data-login-layout=centered] .portal-login-shell{max-width:480px;min-height:auto}.portal-login[data-login-layout=centered] .portal-login-story{display:none}.portal-login[data-login-layout=centered] .portal-login-shell{grid-template-columns:1fr}.portal-login[data-login-layout=centered] .portal-login-small-brand{display:flex;margin-bottom:20px}.portal-login[data-login-layout=editorial] .portal-login-shell{grid-template-columns:1.2fr 1fr;background:transparent;box-shadow:none;border:0;gap:64px;overflow:visible}.portal-login[data-login-layout=editorial] .portal-login-story{background:transparent;color:var(--brand-ink);padding:24px}.portal-login[data-login-layout=editorial] .portal-login-form{background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:24px}.portal-login[data-login-layout=editorial] .portal-login-cover{border-radius:24px;opacity:.08}
@media(max-width:1100px){.branding-toolbar{flex-wrap:wrap}.portal-login-form,.portal-login-story{padding:32px}.portal-login[data-login-layout=editorial] .portal-login-shell{gap:24px}}
@media(max-width:700px){.settings-heading{align-items:start}.settings-heading>.badge{display:none}.settings-heading h2{font-size:24px}.branding-save{flex-wrap:wrap}.portal-login{padding:20px}.portal-login-shell,.portal-login[data-login-layout=editorial] .portal-login-shell{grid-template-columns:1fr;min-height:auto;gap:0}.portal-login-story{display:none}.portal-login-small-brand{display:flex;margin-bottom:18px}.portal-login-form{padding:30px 24px}.portal-login-form h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){#brand-preview{transition:none}}

@media(max-width:780px){.branding-grid{grid-template-columns:1fr}.branding-preview{position:static}}
.settings-navigation{background:transparent;border:0;padding:0;gap:8px}.settings-navigation a{background:var(--brand-surface);border:1px solid var(--brand-border);padding:12px 16px}.settings-navigation a.active{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--brand-on-primary)!important}.settings-navigation a:hover{border-color:var(--brand-primary)}
.brand-section-number{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--brand-soft);color:var(--brand-primary);font-size:12px;margin-right:10px}.brand-color-pair{display:flex;gap:8px}.brand-color-pair input[type=color]{width:48px!important;min-width:48px;height:40px;padding:3px}.brand-color-pair input[type=text]{min-width:0;font-family:monospace}.brand-preview-tabs{display:flex;gap:8px;margin-bottom:12px}.brand-preview-tabs .btn{flex:1}.brand-asset-card{padding:16px;border:1px solid var(--brand-border);border-radius:12px}.brand-asset-thumbnail{height:70px;background:var(--brand-background);border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.brand-asset-thumbnail img{max-width:100%;max-height:60px;object-fit:contain}.brand-asset-thumbnail span{font-size:12px;color:var(--brand-muted)}
.portal-login[data-login-layout=executive]{background:var(--brand-sidebar);padding:48px}.portal-login[data-login-layout=executive] .portal-login-shell{grid-template-columns:1fr 1.1fr;border:0;background:transparent;box-shadow:none;gap:60px;overflow:visible}.portal-login[data-login-layout=executive] .portal-login-story{order:2;padding:36px 12px;background:transparent}.portal-login[data-login-layout=executive] .portal-login-story>.portal-login-identity{display:none}.portal-login[data-login-layout=executive] .portal-login-form{order:1;background:var(--brand-surface);border-radius:18px;border-top:6px solid var(--brand-primary)}.portal-login[data-login-layout=executive] .portal-login-small-brand{display:flex;margin-bottom:30px}.portal-login[data-login-layout=studio] .portal-login-shell{grid-template-columns:1fr;max-width:600px;min-height:0}.portal-login[data-login-layout=studio] .portal-login-story{display:flex;min-height:200px;padding:30px 42px;background:var(--brand-primary);color:var(--brand-on-primary)}.portal-login[data-login-layout=studio] .portal-login-story h1{font-size:28px;margin:20px 0 0;max-width:none;letter-spacing:-.6px}.portal-login[data-login-layout=studio] .portal-login-story p,.portal-login[data-login-layout=studio] .portal-login-story .portal-login-kicker{display:none}.portal-login[data-login-layout=studio] .portal-login-form{padding:32px 42px}.portal-login[data-login-layout=studio] .portal-login-small-brand{display:none}
@media(max-width:700px){.portal-login[data-login-layout=executive]{padding:20px}.portal-login[data-login-layout=executive] .portal-login-shell{grid-template-columns:1fr;gap:0}.portal-login[data-login-layout=executive] .portal-login-story{display:none}.portal-login[data-login-layout=studio] .portal-login-story,.portal-login[data-login-layout=studio] .portal-login-form{padding:24px}.portal-login[data-login-layout=studio] .portal-login-story{min-height:160px}.settings-navigation a{padding:10px 12px;font-size:12px}}
.portal-header-text{font-size:13px;color:var(--brand-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%;padding-right:16px}.list-filter-card .form-label{font-size:12px}.list-filter-card .card-body{padding:22px}.hrms-content .directory-intro{border-left-color:var(--brand-primary)!important}.hrms-content .person-avatar{background:var(--brand-soft)!important;color:var(--brand-primary)!important}.hrms-content .emp-avatar{color:var(--brand-primary)!important;background:var(--brand-soft)!important}@media(max-width:575px){.portal-header-text{max-width:45%;font-size:11px}.list-filter-card .card-body{padding:16px}}
.login-design-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.login-design-choice{border:1px solid var(--brand-border);background:var(--brand-surface);border-radius:10px;padding:8px;color:var(--brand-ink);font-size:10px;text-align:left;line-height:1.5}.login-design-choice[aria-pressed=true]{border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-soft)}.login-design-mini{height:58px;display:grid;grid-template-columns:1fr 1fr;background:var(--brand-background);padding:5px;border-radius:6px;margin-bottom:6px;gap:3px}.login-design-mini i{background:var(--brand-sidebar);border-radius:3px}.login-design-mini b{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:6px;background:var(--brand-surface);border-radius:3px}.login-design-mini em{display:block;height:3px;background:var(--brand-border)}.login-design-mini em:last-child{background:var(--brand-primary);height:5px}.login-design-mini[data-mini-layout=centered]{display:flex;justify-content:center}.login-design-mini[data-mini-layout=centered] i{display:none}.login-design-mini[data-mini-layout=centered] b{width:65%}.login-design-mini[data-mini-layout=editorial]{gap:9px}.login-design-mini[data-mini-layout=editorial] i{background:var(--brand-soft);margin:10px 0}.login-design-mini[data-mini-layout=executive]{background:var(--brand-sidebar)}.login-design-mini[data-mini-layout=executive] i{order:2;background:transparent}.login-design-mini[data-mini-layout=studio]{grid-template-columns:1fr;grid-template-rows:1fr 1.3fr}.login-design-mini[data-mini-layout=studio] i{background:var(--brand-primary)}.login-design-mini[data-mini-layout=studio] b{padding:3px 18px;gap:2px}@media(max-width:420px){.login-design-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
body:has(#branding-form) #techify-assistant-launch{left:auto!important;right:16px!important;transform:none!important}.branding-toolbar{padding:16px 22px}.branding-toolbar .brand-portal-tabs{margin-bottom:0}.branding-toolbar .brand-portal-tabs + p{display:none}
.branding-preview.is-expanded{position:fixed;inset:20px;max-width:1150px;margin:auto;z-index:1080;overflow:auto;background:var(--brand-surface);border-radius:16px;box-shadow:0 0 0 100vmax #102e29a6;padding:8px}.branding-preview.is-expanded .brand-preview-stage{min-height:570px}.branding-preview.is-expanded>p{padding:0 16px}@media(max-width:575px){.branding-preview.is-expanded{inset:8px}}
.branding-preview.is-expanded{height:calc(100dvh - 40px);max-height:calc(100dvh - 40px);margin:0 auto;box-sizing:border-box}.branding-preview.is-expanded .card-header{position:sticky;top:0;z-index:2;background:var(--brand-surface)}.branding-preview.is-expanded .brand-preview-stage{min-height:0}@media(max-width:575px){.branding-preview.is-expanded{height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}}

/* One complete palette per portal; never combine a light canvas with dark surfaces. */
:root{--brand-surface:#fff;--brand-subtle:#f5f8f7}
:root.dark-style{--brand-background:#151b27!important;--brand-surface:#232c3d;--brand-subtle:#293346;--brand-border:#374257;--brand-ink:#e0e7f2;--brand-muted:#abb8cc;--brand-soft:color-mix(in srgb,var(--brand-primary) 18%,#232c3d)}
html body.admin-ui,html body.agent-ui{--admin-surface:var(--brand-surface);--agent-surface:var(--brand-surface);--admin-soft:var(--brand-subtle);--agent-soft:var(--brand-subtle);--admin-border:var(--brand-border);--agent-border:var(--brand-border);--admin-ink:var(--brand-ink);--agent-ink:var(--brand-ink);--admin-muted:var(--brand-muted);--agent-muted:var(--brand-muted)}
body .card{background-color:var(--brand-surface);color:var(--brand-ink)}
html.dark-style body .portal-login-form,html.dark-style body .portal-login-shell{color:var(--brand-ink)}
html.dark-style body .form-control,html.dark-style body .form-select,html.dark-style body .input-group-text,html.dark-style body .select2-selection,html.dark-style body .select2-dropdown{background-color:var(--brand-surface);color:var(--brand-ink);border-color:var(--brand-border)}
html.dark-style body .bg-white,html.dark-style body .bg-light{background-color:var(--brand-surface)!important}
/* Keep expanded, focused and hovered groups on the branded sidebar palette. */
html body #layout-menu.bg-menu-theme .menu-inner .menu-item.open>.menu-link.menu-toggle,
html body #layout-menu.bg-menu-theme .menu-inner .menu-item>.menu-link:focus,
html body #layout-menu.bg-menu-theme .menu-inner .menu-item>.menu-link:hover{
 background:color-mix(in srgb,var(--brand-on-sidebar) 10%,var(--brand-sidebar))!important;
 color:var(--brand-on-sidebar)!important;box-shadow:none!important;
}
html body #layout-menu.bg-menu-theme .menu-inner .menu-item.active>.menu-link:not(.menu-toggle){background:var(--brand-primary)!important;color:var(--brand-on-primary)!important}
/* Expanded groups and keyboard focus must use the branded sidebar palette too. */
body #layout-menu.bg-menu-theme .menu-inner .menu-item.open > .menu-link.menu-toggle,
body #layout-menu.bg-menu-theme .menu-inner .menu-item > .menu-link.menu-toggle:focus,
body #layout-menu.bg-menu-theme .menu-inner .menu-item > .menu-link:focus-visible {
    background: color-mix(in srgb, var(--brand-on-sidebar) 10%, var(--brand-sidebar)) !important;
    color: var(--brand-on-sidebar) !important;
    box-shadow: none !important;
}
body #layout-menu.bg-menu-theme .menu-inner .menu-item.active > .menu-link:not(.menu-toggle):is(:hover,:focus,:focus-visible) {
    background: var(--brand-primary) !important;
    color: var(--brand-on-primary) !important;
}
body #layout-menu.bg-menu-theme .menu-inner .menu-link :is(.menu-icon,div),
body #layout-menu.bg-menu-theme .menu-inner .menu-link::before,
body #layout-menu.bg-menu-theme .menu-inner .menu-link::after { color: inherit !important; }

/* Keep the brand inside the narrow rail; expanded/mobile menus retain the full lockup. */
html.layout-menu-collapsed:not(.layout-menu-hover):not(.layout-menu-expanded) body #layout-menu.menu .portal-brand-logo,
html.layout-menu-collapsed:not(.layout-menu-hover):not(.layout-menu-expanded) body #layout-menu.menu .portal-brand-mark{width:32px;height:32px;flex:0 0 32px;padding:3px}

/* Hidden upload/fallback states must override explicit identity display rules. */
body .portal-brand-logo[hidden],body .portal-brand-mark[hidden]{display:none!important}

/* Vuexy switches use a sibling slider, separate from Bootstrap form checks.
   Preserve explicit success/warning/danger switches and their status meaning. */
body .switch:not(.switch-success):not(.switch-danger):not(.switch-warning):not(.switch-info):not(.switch-secondary):not(.switch-dark) .switch-input:checked ~ .switch-toggle-slider {
    background: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: var(--brand-on-primary) !important;
}
body .switch:not(.switch-success):not(.switch-danger):not(.switch-warning):not(.switch-info):not(.switch-secondary):not(.switch-dark) .switch-input:focus ~ .switch-toggle-slider {
    border-color: var(--brand-primary) !important;
    box-shadow: 0 0 0 3px var(--brand-soft) !important;
}
body .switch:not(.switch-success):not(.switch-danger):not(.switch-warning):not(.switch-info):not(.switch-secondary):not(.switch-dark) .switch-input:checked ~ .switch-toggle-slider::after { background: var(--brand-on-primary); }

/* Shared primary states used by forms, tabs, timelines and modal controls. */
body .input-group:focus-within .form-control,
body .input-group:focus-within .input-group-text,
body .form-check-input:focus,
body .custom-option.checked,
body .border-primary { border-color: var(--brand-primary) !important; }
body .form-check-input:focus { box-shadow: 0 0 0 3px var(--brand-soft) !important; }
body .form-check-input[type=checkbox]:indeterminate {
    background-color: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
}
body .nav-tabs .nav-link.active { box-shadow: 0 -2px 0 var(--brand-primary) inset !important; }
body .nav-align-bottom .nav-tabs .nav-link.active { box-shadow: 0 2px 0 var(--brand-primary) inset !important; }
body .nav-align-left .nav-tabs .nav-link.active { box-shadow: -2px 0 0 var(--brand-primary) inset !important; }
body .nav-align-right .nav-tabs .nav-link.active { box-shadow: 2px 0 0 var(--brand-primary) inset !important; }
body .btn-label-primary:is(:hover,:focus,:active,.active),
body .btn-check:checked + .btn-outline-primary,
body .btn-outline-primary:is(:active,:focus,.show) {
    background: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: var(--brand-on-primary) !important;
}
body .timeline .timeline-item-primary .timeline-event { background-color: var(--brand-soft); }
body .timeline .timeline-item-primary .timeline-event::before {
    border-left-color: var(--brand-soft) !important;
    border-right-color: var(--brand-soft) !important;
}
body .timeline .timeline-point-primary {
    background-color: var(--brand-primary) !important;
    box-shadow: 0 0 0 .1875rem var(--brand-soft);
}
body .timeline .timeline-indicator-primary i { color: var(--brand-primary) !important; }
body .bs-stepper .step.active .bs-stepper-circle {
    background-color: var(--brand-primary);
    color: var(--brand-on-primary);
}
body .bs-stepper .step.crossed .step-trigger .bs-stepper-circle {
    background-color: var(--brand-soft) !important;
    color: var(--brand-primary) !important;
}
body .bs-stepper .step:is(.active,.crossed) .bs-stepper-icon svg { fill: var(--brand-primary) !important; }
body .bs-stepper .step:is(.active,.crossed) :is(.bs-stepper-icon i,.bs-stepper-label),
body .bs-stepper.wizard-icons .step.crossed + .line i { color: var(--brand-primary) !important; }
body .app-chat .sidebar-body .chat-contact-list li.active,
body .app-chat .app-chat-history .chat-history .chat-message.chat-message-right .chat-message-text {
    background: var(--brand-primary) !important;
    color: var(--brand-on-primary) !important;
}

/* Calendar accents follow branding, including range endpoints on hover/focus. */
html body .flatpickr-calendar{--calendar-range:color-mix(in srgb,var(--brand-primary) 20%,var(--brand-surface))}
html body .flatpickr-calendar .flatpickr-day.today{border-color:var(--brand-primary)!important}
html body .flatpickr-calendar .flatpickr-day.inRange:not(.startRange):not(.endRange):not(.selected),
html body .flatpickr-calendar .flatpickr-day:not(.selected):not(.startRange):not(.endRange):not(.flatpickr-disabled):not(.disabled):is(:hover,:focus){
 background:var(--calendar-range)!important;border-color:var(--calendar-range)!important;color:color-mix(in srgb,var(--brand-primary) 70%,var(--brand-ink))!important;box-shadow:none!important;
}
html body .flatpickr-calendar .flatpickr-day:is(.selected,.startRange,.endRange),
html body .flatpickr-calendar .flatpickr-day:is(.selected,.startRange,.endRange):is(:hover,:focus){
 background:var(--brand-primary)!important;border-color:var(--brand-primary)!important;color:var(--brand-on-primary)!important;box-shadow:none!important;
}
html body .flatpickr-calendar .flatpickr-prev-month:hover svg,
html body .flatpickr-calendar .flatpickr-next-month:hover svg{fill:var(--brand-primary)!important}
html body .daterangepicker td.in-range:not(.start-date):not(.end-date):not(.off),
html body .datepicker table tr td.range:not(.active):not(.range-start):not(.range-end){
 background:color-mix(in srgb,var(--brand-primary) 20%,var(--brand-surface))!important;color:var(--brand-ink)!important;
}
html body .daterangepicker td:is(.active,.start-date,.end-date):not(.off),
html body .daterangepicker .ranges li.active,
html body .datepicker table tr td:is(.active,.range-start,.range-end),
html body .datepicker table tr td span.active{
 background:var(--brand-primary)!important;border-color:var(--brand-primary)!important;color:var(--brand-on-primary)!important;
}
