/* Shared UI v1: fading orange seams, neutral CRM-style controls, consistent icons. */
.cx-shell-header,.cx-shell-footer.cx-footer { --cx-accent-line:linear-gradient(90deg,#e8792b,rgba(232,121,43,.15) 55%,rgba(232,121,43,0)); }
.cx-shell-header { background:#1a1a2e !important;border-bottom:1px solid transparent;padding:.5rem 0;box-shadow:none;z-index:1020;font-family:'Segoe UI',system-ui,-apple-system,sans-serif; }
/* Module rules such as `.app button { font: inherit }` must not shrink the menu toggle of the shared header. */
.cx-shell-header .navbar-toggler.cx-shell-toggle { font-size:1.25rem;line-height:1; }
.cx-shell-header::after { content:'';position:absolute;bottom:-1px;left:0;right:0;height:3px;pointer-events:none;background:var(--cx-accent-line); }
.cx-shell-header .cx-shell-inner { padding:0 24px;gap:16px; }
.cx-shell-header .cx-brand { margin:0;display:inline-flex!important;align-items:center;gap:12px;text-decoration:none;white-space:nowrap; }
.cx-shell-header .cx-brand-logo { height:26px!important;width:auto!important;margin:0!important; }
.cx-shell-header .cx-brand-sep { width:1px;height:20px;background:rgba(255,255,255,.22); }
.cx-shell-header .cx-brand-text,.cx-shell-footer .cx-brand-text { color:#fff!important;font:700 1.08rem/1 'Segoe UI',system-ui,sans-serif;letter-spacing:.01em; }
.cx-shell-header .cx-brand-accent,.cx-shell-footer .cx-brand-accent { color:#e8792b!important;font-weight:600; }
.cx-shell-header .navbar-collapse { gap:12px;min-width:0;align-items:center; }
.cx-shell-navigation { margin-inline:auto; }
.cx-shell-navigation .navbar-nav { gap:3px;margin:0!important; }
.cx-shell-actions { margin-left:auto;display:flex;align-items:center;gap:12px;flex-shrink:0; }
.cx-shell-header [data-cx-actions] { display:flex;align-items:center;gap:8px;margin:0!important;list-style:none;padding:0; }
.cx-shell-header .nav-link,.cx-shell-header .pm-nav-btn,.cx-shell-header .cx-shell-navigation .nav-link { display:inline-flex;align-items:center;gap:6px;font-size:.84rem;font-weight:500;padding:6px 11px;border:1px solid transparent;border-radius:8px;color:#c9c9ce!important;text-decoration:none;white-space:nowrap; }
.cx-shell-header .nav-link:hover,.cx-shell-header .pm-nav-btn:hover,.cx-shell-header .nav-link.show,.cx-shell-header .pm-nav-btn.show { background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.1);color:#fff!important; }
.cx-shell-header .nav-link.active { color:#fff!important;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.1); }
.cx-shell-header .nav-link.active > i { color:inherit; }
.cx-shell-header .cx-shell-navigation .nav-link.active { font-weight:600; }
.cx-shell-header #roleBadge { font-size:.65rem;font-weight:600;opacity:1; }
.cx-shell-header .dropdown-menu { color:#212529;background:#fff;border-color:#d5d5d8;font-size:.85rem;max-width:min(400px,calc(100vw - 32px)); }
.cx-shell-header .cx-language { display:inline-flex;gap:2px;padding:3px;border:1px solid rgba(255,255,255,.17);border-radius:9px;flex-shrink:0; }
.cx-language button { border:0;background:transparent;color:#c9c9ce;font-family:inherit;font-weight:600;line-height:1.5;font-size:.7rem;padding:4px 7px;border-radius:6px;cursor:pointer; }
.cx-language button:hover { color:#fff;background:rgba(255,255,255,.08); }
.cx-shell-header .cx-language button.active { background:rgba(255,255,255,.12);color:#fff; }
.cx-language button:focus-visible { outline:2px solid #fff;outline-offset:2px; }
.cx-shell-header .cx-shell-toggle { margin-left:auto;border-color:rgba(255,255,255,.25); }
.cx-shell-footer.cx-footer { position:relative;margin-top:auto;background:#1a1a2e;color:#c9c9ce;font-family:'Segoe UI',system-ui,sans-serif; }
.cx-shell-footer.cx-footer::before { content:'';position:absolute;top:0;left:0;right:0;height:3px;pointer-events:none;background:var(--cx-accent-line); }
.cx-shell-footer .cx-footer-inner { display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 24px; }
.cx-shell-footer .cx-footer-brand { display:inline-flex;align-items:baseline;gap:10px; }
.cx-shell-footer .cx-brand-text { font-size:.92rem; }
.cx-shell-footer .cx-footer-dot { align-self:center;flex-shrink:0;width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.3); }
.cx-shell-footer .cx-footer-copy { position:static;font-size:.78rem;line-height:1.25;color:#b8b8bf; }
.cx-shell-footer .cx-footer-tag { display:inline-flex;align-items:center;gap:8px;font-size:.74rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#c9c9ce; }
.cx-shell-footer .cx-footer-pulse { flex-shrink:0;width:7px;height:7px;border-radius:50%;background:#e8792b;box-shadow:0 0 0 0 rgba(232,121,43,.55);animation:cxShellFooterPulse 3.2s ease-out infinite; }
@keyframes cxShellFooterPulse { 0% { box-shadow:0 0 0 0 rgba(232,121,43,.55); } 70% { box-shadow:0 0 0 7px rgba(232,121,43,0); } 100% { box-shadow:0 0 0 0 rgba(232,121,43,0); } }
@media(prefers-reduced-motion:reduce){.cx-shell-footer .cx-footer-pulse{animation:none!important;box-shadow:none!important;}}
@media(max-width:1399.98px){.cx-shell-header .cx-shell-inner{gap:10px}.cx-shell-header .nav-link,.cx-shell-header .pm-nav-btn,.cx-shell-header .cx-shell-navigation .nav-link{padding:6px 8px}.cx-shell-actions{gap:8px}}
@media(max-width:1199.98px){.cx-shell-header .cx-shell-inner{padding:0 16px}.cx-shell-header .navbar-collapse{flex-basis:100%;padding-top:12px}.cx-shell-navigation{margin:0}.cx-shell-navigation .navbar-nav{flex-wrap:wrap;flex-direction:row;margin-bottom:10px!important}.cx-shell-actions{margin:0;border-top:1px solid rgba(255,255,255,.1);padding:10px 0 2px;justify-content:space-between;flex-wrap:wrap}.cx-shell-header [data-cx-actions]{flex-wrap:wrap;flex-direction:row}.cx-shell-header .dropdown-menu{position:absolute}}
@media(max-width:575.98px){.cx-shell-footer .cx-footer-inner{flex-direction:column;gap:7px;padding:14px 12px}.cx-shell-footer .cx-footer-copy{font-size:.69rem}.cx-shell-header [data-cx-actions] > #roleBadge{display:none}.cx-shell-header .navbar-brand{gap:9px}.cx-shell-header .cx-brand-text{font-size:1rem}}


/* Keep the shared header independent of the legacy mobile navbar rules. */
.cx-shell-header .navbar-nav .nav-item { width: auto; text-align: start; }
/* Some module styles force every navbar collapse open (display:flex!important);
   the shared menu stays collapsed on tablets and phones until the toggle opens it. */
@media(max-width:1199.98px){ .cx-shell-header .navbar-collapse.collapse:not(.show) { display:none!important; } }
/* One control height in every module header (module button sizes do not leak in);
   touch screens keep 44px targets. */
.cx-shell-header :is(.nav-link,.pm-nav-btn) { min-height:34px;line-height:1.5; }
@media(pointer:coarse){ .cx-shell-header :is(.nav-link,.pm-nav-btn,.cx-shell-toggle) { min-height:44px; } }

/* Dense modules keep every section visible on laptop screens. The common
   account actions stay on the first row; section navigation gets its own row. */
@media(min-width:1200px) and (max-width:1799.98px){
 .cx-shell-header[data-cx-navigation-layout="wide"] .cx-shell-inner { display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px; }
 .cx-shell-header[data-cx-navigation-layout="wide"] .navbar-collapse { display:contents!important; }
 .cx-shell-header[data-cx-navigation-layout="wide"] .cx-shell-actions { grid-column:2;grid-row:1;justify-self:end;margin:0; }
 .cx-shell-header[data-cx-navigation-layout="wide"] .cx-shell-navigation { grid-column:1/-1;grid-row:2;min-width:0;margin:0; }
 .cx-shell-header[data-cx-navigation-layout="wide"] .cx-shell-navigation .navbar-nav { flex-wrap:wrap; }
}

/* Automatic fit: when sections and actions do not fit on one desktop row (many
   sections, longer German labels), shell.js sets data-cx-fit="wrap" and the
   sections use a second row, exactly like the wide layout. Never a horizontal overflow. */
@media(min-width:1200px){
 .cx-shell-header[data-cx-fit="wrap"] .cx-shell-inner { display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px; }
 .cx-shell-header[data-cx-fit="wrap"] .navbar-collapse { display:contents!important; }
 .cx-shell-header[data-cx-fit="wrap"] .cx-shell-actions { grid-column:2;grid-row:1;justify-self:end;margin:0; }
 .cx-shell-header[data-cx-fit="wrap"] .cx-shell-navigation { grid-column:1/-1;grid-row:2;min-width:0;margin:0; }
 .cx-shell-header[data-cx-fit="wrap"] .cx-shell-navigation .navbar-nav { flex-wrap:wrap; }
}

/* Single-row modules can tighten spacing on smaller desktop viewports. */
@media(min-width:1200px) and (max-width:1399.98px){
 .cx-shell-header[data-cx-navigation-layout="compact"] .cx-shell-inner { padding:0 16px;gap:8px; }
 .cx-shell-header[data-cx-navigation-layout="compact"] .navbar-collapse { gap:8px; }
 .cx-shell-header[data-cx-navigation-layout="compact"] .nav-link,
 .cx-shell-header[data-cx-navigation-layout="compact"] .pm-nav-btn,
 .cx-shell-header[data-cx-navigation-layout="compact"] .cx-shell-navigation .nav-link { padding:6px 4px; }
 .cx-shell-header[data-cx-navigation-layout="compact"] .cx-shell-navigation .navbar-nav { gap:3px!important; }
 .cx-shell-header[data-cx-navigation-layout="compact"] [data-cx-actions] { gap:4px!important; }
}

/* Clear role colours, without tinting or glass treatment. */
.cx-shell-header #roleBadge.bg-danger { background:#dc3545!important;color:#fff!important; }
.cx-shell-header #roleBadge.bg-warning { background:#ffc107!important;color:#212529!important; }
.cx-shell-header #roleBadge.bg-info { background:#0dcaf0!important;color:#212529!important; }
.cx-shell-header .nav-link:not(.active) > i,.cx-shell-header .pm-nav-btn > i { color:inherit; }
.cx-shell-header .dropdown-item:hover,.cx-shell-header .dropdown-item:focus,.cx-shell-header .dropdown-item.active { background:#f1f1f3;color:#333337; }
.cx-shell-header .dropdown-item:disabled,.cx-shell-header .dropdown-item.disabled { background:transparent;color:#6c757d; }
.cx-shell-header :is(.cx-brand,.nav-link,.pm-nav-btn,.cx-language button,.cx-shell-toggle):focus-visible { outline:2px solid #d9d9df;outline-offset:3px; }
.cx-shell-header .dropdown-item:focus-visible { outline:2px solid #66666d;outline-offset:-2px; }

/* Account and common actions: the DOM and keyboard order match the visual order. */
.cx-shell-header .cx-action-slot { display:flex;align-items:center; }
.cx-shell-header .cx-shell-icon { width:1.15em;flex-shrink:0;text-align:center;line-height:1; }
.cx-shell-header .cx-account-toggle > i { color:inherit; }
.cx-shell-header .cx-account-toggle::after { margin-left:3px;vertical-align:middle; }
.cx-shell-header .cx-account-menu { width:280px;padding:6px;border-radius:12px;right:0;left:auto; }
.cx-shell-header .cx-account-identity { display:flex;align-items:center;gap:12px;padding:12px 10px; }
.cx-shell-header .cx-account-avatar { display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border-radius:10px;background:#f1f1f3;color:#65656c;font-size:1rem;font-weight:700; }
.cx-shell-header .cx-account-details { min-width:0; }
.cx-shell-header .cx-account-name { display:block;font-size:.9rem;font-weight:600;color:#212529;line-height:1.5; }
.cx-shell-header .cx-account-email { display:block;padding:0;font-size:.75rem;line-height:1.5;color:#65656c!important;overflow-wrap:anywhere;white-space:normal; }
.cx-shell-header .cx-account-menu .dropdown-item { display:flex;align-items:center;gap:10px;padding:10px;border-radius:6px;white-space:normal;line-height:1.4; }
.cx-shell-header .cx-account-menu .dropdown-item > i { width:16px;margin:0!important;text-align:center;flex-shrink:0;color:#747477; }
.cx-shell-header .cx-account-menu .dropdown-divider { border-color:#e8e8eb;margin:4px 0; }
.cx-shell-header .cx-account-logout { color:#a33b2e; }
/* Module role: small badge in the account menu, under the e-mail address. */
.cx-shell-header .cx-account-role { display:flex;margin-top:6px; }
.cx-shell-header .cx-account-role :is(.badge,#roleBadge) { display:inline-flex;align-items:center;font-size:.62rem;font-weight:600;line-height:1.2;padding:3px 8px;border-radius:999px;letter-spacing:.02em; }
.cx-shell-header .cx-account-menu .cx-account-logout > i { color:#a33b2e!important; }
.cx-shell-header .cx-notification-toggle { height:34px;min-width:34px;justify-content:center;background:transparent; }
.cx-shell-header .cx-notification-count { position:absolute;top:-3px;right:-3px;min-width:16px;padding:1px 4px;border-radius:9px;background:#dc3545;color:white;font-size:.6rem;font-weight:700;line-height:1.3; }
.cx-shell-header .cx-notification-menu { width:350px;padding:0;border-radius:12px;overflow:hidden;right:0;left:auto; }
.cx-shell-header .cx-notification-heading { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid #e8e8eb; }
.cx-shell-header .cx-notification-refresh { display:inline-flex;align-items:center;justify-content:center;min-height:30px;min-width:30px;padding:6px;border:0;border-radius:6px;background:transparent;color:#65656c; }
.cx-shell-header .cx-notification-refresh:hover { background:#f1f1f3; }
.cx-shell-header .cx-notification-refresh:disabled { opacity:.5; }
.cx-shell-header .cx-notification-list { max-height:360px;overflow-y:auto; }
.cx-shell-header .cx-notification-message { padding:18px 14px;text-align:center;color:#65656c;font-size:.8rem; }
.cx-shell-header .cx-notification-item { display:block;padding:11px 14px;border-bottom:1px solid #e8e8eb;color:#414147;text-decoration:none;overflow-wrap:anywhere; }
.cx-shell-header .cx-notification-item:last-child { border-bottom:0; }
.cx-shell-header .cx-notification-item.unread { background:#f6f6f8; }
.cx-shell-header .cx-notification-item:hover { background:#f1f1f3; }
.cx-shell-header .cx-notification-source,.cx-shell-header .cx-notification-title,.cx-shell-header .cx-notification-text,.cx-shell-header .cx-notification-time { display:block; }
.cx-shell-header .cx-notification-source { color:#65656c;font-size:.7rem;font-weight:600; }
.cx-shell-header .cx-notification-title { color:#212529;font-size:.83rem;font-weight:600;margin:3px 0; }
.cx-shell-header .cx-notification-text { font-size:.8rem; }
.cx-shell-header .cx-notification-time { color:#65656c;font-size:.7rem;margin-top:5px; }
.cx-shell-header :is(.cx-notification-refresh,.cx-notification-item):focus-visible { outline:2px solid #66666d;outline-offset:-2px; }
@media(max-width:1199.98px){
 .cx-shell-actions { width:100%;position:relative; }
 .cx-shell-header [data-cx-actions] { width:100%;justify-content:flex-end; }
 .cx-shell-header [data-cx-action="notifications"],.cx-shell-header [data-cx-action="account"] { position:static; }
 .cx-shell-header [data-cx-action="notifications"]>.dropdown-menu,.cx-shell-header .cx-account-menu { right:0;left:auto;max-width:100%; }
}
@media(max-width:575.98px){
 .cx-shell-header [data-cx-actions] { gap:4px!important; }
 .cx-shell-header [data-cx-action="home"] .pm-nav-btn,.cx-shell-header .cx-account-toggle { gap:5px;padding:6px; }
}

/* Also neutralise effects inherited from module styles and nginx cx-shell.css.
   The footer's orange pulse is the only animated accent.
   Keep Popper transforms intact: they position dropdowns, not decoration. */
.cx-shell-header,.cx-shell-header::before,.cx-shell-header::after,
.cx-shell-header *,.cx-shell-header *::before,.cx-shell-header *::after,
.cx-shell-footer,.cx-shell-footer::before,.cx-shell-footer::after,
.cx-shell-footer :not(.cx-footer-pulse),.cx-shell-footer *::before,.cx-shell-footer *::after {
  animation:none!important;
  transition:none!important;
  box-shadow:none!important;
  text-shadow:none!important;
  backdrop-filter:none!important;
}
/* Opt-in (CostTrack): the header stays above an open dialog and its backdrop, so its sections and account menu stay
   usable; the module places its dialogs under var(--cx-shell-header-height). */
.cx-shell-header[data-cx-header-above-dialogs] { z-index:1060; }
