/* Nuagerie client application. Native Twenty-One components remain intact. */
@font-face {
  font-family: Inter;
  src: url("../fonts/inter/InterVariable-core.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range:
    U+20-7E, U+A0-AC, U+AE-FF, U+152-153, U+178, U+2000-200B, U+2010-2027,
    U+202F-2055, U+2057, U+205F, U+20AC, U+2190, U+2192;
}
@font-face {
  font-family: Inter;
  src: url("../fonts/inter/InterVariable-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range:
    U+0, U+100-148, U+14A-151, U+154-177, U+179-1C3, U+1C5-24F, U+300-304,
    U+306-30A, U+30C, U+30F, U+313, U+315, U+31B, U+323, U+326-328, U+32C,
    U+337-338, U+342-343, U+346-36F, U+1E00-1E9B, U+1E9D-1EFF, U+20A0-20AB,
    U+20AD-20AF, U+20B1-20B5, U+20B8-20BA, U+20BC-20C0, U+2100-2101, U+2103,
    U+2105-2106, U+2109, U+2113, U+2116-2117, U+211E-2122, U+2126, U+212A-212B,
    U+212E, U+2132, U+213B, U+214D, U+2191, U+2193-2199, U+21A9-21AA,
    U+21B0-21B1, U+21B3-21B5, U+21BA-21BB, U+21D0, U+21D2, U+21D4, U+21DE-21DF,
    U+21E4-21E5, U+21E7, U+21EA, U+2212, U+FEFF;
}
/* Match the website: 16px at 1440 CSS px, 32px at 3840. Print stays native. */
@media screen {
  :root {
    font-size: clamp(100%, calc(40% + 0.666667vw), 200%);
  }
}
:root {
  --nc-night: #04172d;
  --nc-night-raised: #0c2845;
  --nc-action: #006dcc;
  --nc-action-hover: #0356a6;
  --nc-ink: #0a1b34;
  --nc-muted: #536b85;
  --nc-border: #dce7f1;
  --nc-mist: #f5f9fc;
  --nc-white: #fff;
  --nc-cyan: #29d3ff;
  --nc-radius: 0.75rem;
  --nc-font:
    Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --nc-sidebar-width: 15.5rem;
  --nc-page-width: 80rem;
  --nc-gutter: clamp(20px, 3vw, 3rem);
}
.nc-app {
  margin: 0;
  background: #f4f7fa;
  color: var(--nc-ink);
  font-family: var(--nc-font);
  font-size: 0.9375rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  font-optical-sizing: auto;
}
.nc-app h1,
.nc-app h2,
.nc-app h3,
.nc-app h4,
.nc-app h5,
.nc-app h6,
.nc-app button,
.nc-app input,
.nc-app select,
.nc-app textarea {
  font-family: inherit;
}
.nc-app h1,
.nc-app h2,
.nc-app h3 {
  color: var(--nc-ink);
  letter-spacing: -0.035em;
}
.nc-app h1 {
  font-weight: 750;
}
.nc-app a {
  color: var(--nc-action);
}
.nc-app a:hover {
  color: var(--nc-action-hover);
}
.nc-app
  :where(
    a,
    button,
    input,
    select,
    textarea,
    summary,
    [tabindex]
  ):focus-visible {
  outline: 3px solid #0788f5;
  outline-offset: 3px;
}
.nc-app .text-muted {
  color: var(--nc-muted) !important;
}
.nc-skip-link {
  position: fixed;
  top: 0.5rem;
  left: 0.5rem;
  z-index: 1200;
  padding: 0.75rem 1.125rem;
  background: white;
  border-radius: 0.375rem;
  transform: translateY(-180%);
}
.nc-skip-link:focus {
  transform: translateY(0);
}
.nc-main-frame {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.nc-layout-portal .nc-main-frame {
  margin-left: var(--nc-sidebar-width);
}
.nc-app .nc-header {
  padding: 0;
  margin: 0;
  border: 0;
  background: #fff;
  border-bottom: 1px solid var(--nc-border);
}
.nc-header-inner {
  min-height: 5rem;
  padding: 1rem var(--nc-gutter);
  width: 100%;
  max-width: calc(var(--nc-page-width) + 2 * var(--nc-gutter));
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
}
.nc-home {
  display: inline-flex;
  align-items: center;
  color: var(--nc-ink);
  text-decoration: none !important;
  flex: 0 0 auto;
}
.nc-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  white-space: nowrap;
}
.nc-brand-cloud {
  width: 2.5625rem;
  height: 2.0625rem;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}
.nc-brand-name {
  font-family: var(--nc-font);
  font-size: 1.5625rem;
  font-weight: 720;
  letter-spacing: -0.06em;
  line-height: 1.1;
}
.nc-home .nc-brand-cloud {
  color: var(--nc-action);
}
.nc-utilities {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 0;
}
.nc-app .nc-utility-link {
  font-size: 0.8125rem;
  font-weight: 550;
  color: var(--nc-muted);
  white-space: nowrap;
}
.nc-app .nc-locale-button,
.nc-app .nc-cart-link,
.nc-app .nc-notifications {
  color: var(--nc-muted);
  padding: 0.625rem 0.375rem;
  border: 0;
  background: transparent;
  font-size: 0.75rem;
  white-space: nowrap;
  min-height: 2.625rem;
}
.nc-app .nc-locale-button:hover,
.nc-app .nc-cart-link:hover,
.nc-app .nc-notifications:hover {
  background: var(--nc-mist);
  color: var(--nc-ink);
}
.nc-app .nc-cart-link {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.nc-app .nc-cart-link .badge {
  color: var(--nc-ink);
  background: #e7eff6;
  border-radius: 0.375rem;
  font-size: 0.6875rem;
}
.nc-workspace-label {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--nc-muted);
}
.nc-account-controls {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  border-left: 1px solid var(--nc-border);
  padding-left: 1.25rem;
}
.nc-app .nc-account-name {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  color: var(--nc-ink);
  font-size: 0.75rem;
  font-weight: 650;
  max-width: 13.75rem;
  line-height: 1.4;
}
.nc-account-name > span:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.nc-mobile-home {
  display: none;
}
.nc-app .nc-sidebar-bottom .nc-mobile-account-switch {
  display: none;
}
.nc-account-avatar {
  display: grid;
  place-items: center;
  width: 2.125rem;
  height: 2.125rem;
  border-radius: 0.625rem;
  background: #eef4f9;
  color: var(--nc-action);
  flex-shrink: 0;
}
.nc-app .nc-account-switch {
  display: inline-grid;
  place-items: center;
  color: var(--nc-muted);
  width: 2.125rem;
  min-height: 2.5rem;
  flex-shrink: 0;
}
.nc-user-menu {
  font-size: 0.75rem;
}
.nc-user-menu > li > a {
  color: var(--nc-muted);
}
.nc-user-menu .dropdown-menu {
  min-width: 13.75rem;
  border: 1px solid var(--nc-border);
  border-radius: 0.625rem;
  padding: 0.5rem;
  box-shadow: 0 12px 32px #04172d18;
}
.nc-user-menu .dropdown-menu a {
  padding-block: 0.5rem !important;
  white-space: normal;
}
.nc-sidebar {
  width: var(--nc-sidebar-width);
  position: fixed;
  inset: 0 auto 0 0;
  display: flex;
  flex-direction: column;
  z-index: 1040;
  background: var(--nc-night);
  color: #c3d1df;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.nc-sidebar-brand {
  min-height: 7rem;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.75rem;
}
.nc-app .nc-sidebar-brand .nc-home {
  color: #fff;
}
.nc-sidebar-brand .nc-home .nc-brand-cloud {
  color: var(--nc-cyan);
}
.nc-sidebar-caption {
  margin: 0.375rem 1.75rem 1rem;
  color: #89a3bd;
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-weight: 650;
}
.nc-nav-list,
.nc-subnav {
  list-style: none;
  padding: 0;
  margin: 0;
}
.nc-nav-list {
  padding-inline: 0.875rem;
}
.nc-nav-item {
  margin-bottom: 0.3125rem;
}
.nc-app .nc-nav-item > a,
.nc-nav-item summary {
  display: flex;
  align-items: center;
  gap: 0.8125rem;
  min-height: 3rem;
  padding: 0.75rem 0.875rem;
  border-radius: 0.5rem;
  color: #bfccdb;
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  list-style: none;
}
.nc-nav-item summary::-webkit-details-marker {
  display: none;
}
.nc-nav-item > a > i,
.nc-nav-item summary > i:first-child {
  width: 1.25rem;
  text-align: center;
  font-size: 1rem;
  color: #8aa7c1;
}
.nc-app .nc-nav-item > a:hover,
.nc-nav-item summary:hover {
  color: white;
  background: #102c47;
}
.nc-app .nc-nav-item > a[aria-current],
.nc-nav-current > details > summary,
.nc-nav-item.active > a,
.nc-nav-item.active > details > summary {
  background: #123655;
  color: white;
  box-shadow: inset 3px 0 var(--nc-cyan);
}
.nc-nav-item > a[aria-current] > i,
.nc-nav-current summary > i:first-child {
  color: var(--nc-cyan);
}
.nc-nav-chevron {
  margin-left: auto;
  font-size: 0.625rem;
}
.nc-nav-item details[open] .nc-nav-chevron {
  transform: rotate(180deg);
}
.nc-subnav {
  margin: 0.3125rem 0 0.75rem 2.25rem;
  border-left: 1px solid #254059;
  padding-left: 0.75rem;
}
.nc-app .nc-subnav a {
  display: block;
  padding: 0.5rem;
  color: #a9bfd2;
  font-size: 0.75rem;
  line-height: 1.5;
  border-radius: 0.25rem;
}
.nc-app .nc-subnav a:hover,
.nc-app .nc-subnav a[aria-current] {
  color: white;
  background: #102c47;
}
.nc-nav-divider {
  border-top: 1px solid #254059;
  margin: 0.375rem 0.5rem;
}
.nc-nav-item .badge {
  background: #254059;
  color: white;
}
.nc-sidebar-bottom {
  border-top: 1px solid #1b334b;
  margin: auto 1.75rem 0;
  flex-shrink: 0;
  padding: 1.375rem 0;
}
.nc-app .nc-sidebar-bottom a {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: #a9bfd2;
  font-size: 0.75rem;
  min-height: 2.375rem;
}
.nc-sidebar-bottom a i {
  width: 1rem;
}
.nc-app .nc-sidebar-bottom a:hover {
  color: white;
}
.nc-menu-toggle,
.nc-menu-close {
  display: none;
  border: 0;
  background: transparent;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.5rem;
  font-size: 1.25rem;
}
.nc-nav-backdrop {
  display: none;
}
.nc-app #main-body {
  flex: 1;
  min-height: 0;
  padding: 2.375rem var(--nc-gutter) 3.5rem;
}
.nc-app #main-body > .container {
  width: 100%;
  max-width: var(--nc-page-width);
  padding: 0;
}
.nc-app .primary-content {
  min-width: 0;
}
.nc-app .nc-page-title {
  font-size: 1.875rem;
  margin: 0 0 1.5rem;
}
.nc-app .master-breadcrumb {
  background: transparent;
  border: 0;
  padding: 0;
}
.nc-app .master-breadcrumb .breadcrumb {
  background: transparent;
  padding: 0 0 1.25rem;
  margin: 0;
  font-size: 0.75rem;
}
.nc-app .card,
.nc-app .panel,
.nc-app .sidebar .list-group {
  border: 1px solid var(--nc-border);
  border-radius: var(--nc-radius);
  box-shadow: 0 3px 10px #04172d03;
  background: white;
}
.nc-app .card-header,
.nc-app .panel-heading {
  background: white;
  border-bottom: 1px solid var(--nc-border);
  padding: 1.125rem 1.375rem;
  border-radius: var(--nc-radius) var(--nc-radius) 0 0;
}
.nc-app .card-header h3,
.nc-app .card-header h5 {
  margin-bottom: 0;
  font-size: 1rem;
  font-weight: 650;
}
.nc-app .card-body {
  padding: 1.375rem;
}
.nc-app .card-footer,
.nc-app .panel-footer {
  border-top: 1px solid var(--nc-border);
  padding: 1rem 1.375rem;
  background: #fafcfe;
  border-radius: 0 0 var(--nc-radius) var(--nc-radius);
}
.nc-app .list-group-item {
  border-color: var(--nc-border);
}
.nc-app .sidebar .list-group-item.active {
  background: var(--nc-action);
  border-color: var(--nc-action);
  color: white;
}
.nc-app .btn {
  border-radius: 0.4375rem;
  font-weight: 600;
  font-size: 0.875rem;
  padding: 0.625rem 1rem;
}
.nc-app .btn-primary,
.nc-app .btn-primary-darker {
  color: white;
  background: var(--nc-action);
  border-color: var(--nc-action);
}
.nc-app .btn-primary:hover,
.nc-app .btn-primary-darker:hover,
.nc-app .btn-primary:focus {
  color: white;
  background: var(--nc-action-hover);
  border-color: var(--nc-action-hover);
}
.nc-app .btn-default {
  color: var(--nc-ink);
  background: white;
  border-color: #bdcedd;
}
.nc-app .btn-default:hover {
  background: var(--nc-mist);
}
.nc-app .form-control,
.nc-app .custom-select {
  border-color: #b9cbdc;
  border-radius: 0.375rem;
  color: var(--nc-ink);
  font-size: 0.9375rem;
  min-height: 2.75rem;
  background-color: white;
}
.nc-app .form-control:focus,
.nc-app .custom-select:focus {
  border-color: var(--nc-action);
  box-shadow: 0 0 0 3px #006dcc12;
}
.nc-app .form-group > label,
.nc-app .form-control-label {
  color: var(--nc-ink);
  font-weight: 600;
  font-size: 0.8125rem;
  margin-bottom: 0.5rem;
}
.nc-app .table {
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--nc-border);
  border-radius: 0.5rem;
}
.nc-app .table thead th,
.nc-app .table thead td {
  background: var(--nc-night-raised);
  color: white;
  border-color: #274764;
  font-size: 0.75rem;
  font-weight: 600;
}
.nc-app .table thead tr:first-child > :first-child {
  border-top-left-radius: 0.4375rem;
}
.nc-app .table thead tr:first-child > :last-child {
  border-top-right-radius: 0.4375rem;
}
.nc-app .table td,
.nc-app .table th {
  border-top-color: var(--nc-border);
  padding: 0.875rem 1rem;
}
.nc-app .table tbody tr:last-child > :first-child {
  border-bottom-left-radius: 0.4375rem;
}
.nc-app .table tbody tr:last-child > :last-child {
  border-bottom-right-radius: 0.4375rem;
}
.nc-app .nc-footer {
  background: transparent;
  border: 0;
  padding: 1.25rem var(--nc-gutter);
  color: var(--nc-muted);
  font-size: 0.6875rem;
}
.nc-footer-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.5rem;
  max-width: var(--nc-page-width);
  padding: 0;
}
.nc-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.125rem;
}
.nc-app .nc-footer a {
  color: var(--nc-muted);
  padding-block: 0.375rem;
}
.nc-app .nc-footer a:hover {
  color: var(--nc-action);
}
.nc-layout-auth {
  background: var(--nc-night);
}
.nc-layout-auth .nc-main-frame {
  background: radial-gradient(ellipse at 15% 55%, #10375980, transparent 65%);
}
.nc-app.nc-layout-auth .nc-header {
  background: transparent;
  border-color: #ffffff12;
}
.nc-layout-auth .nc-header-inner {
  max-width: 82.5rem;
  margin: auto;
  min-height: 6.25rem;
}
.nc-app.nc-layout-auth .nc-home {
  color: white;
}
.nc-layout-auth .nc-home .nc-brand-cloud {
  color: var(--nc-cyan);
}
.nc-app.nc-layout-auth .nc-utility-link,
.nc-app.nc-layout-auth .nc-locale-button {
  color: #becfde;
}
.nc-app.nc-layout-auth .nc-locale-button:hover {
  background: #173750;
}
.nc-auth-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: clamp(2.5rem, 6vw, 6.25rem);
  width: min(calc(100% - 5rem), 70rem);
  margin: auto;
  padding: 4.5rem 0 5.5rem;
  flex: 1;
}
.nc-auth-story {
  padding-block: 1.5rem;
}
.nc-eyebrow {
  color: var(--nc-cyan);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  margin-bottom: 1.5rem;
}
.nc-app .nc-auth-story h2 {
  color: #fff;
  font-size: clamp(2.25rem, 4vw, 3.375rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.055em;
  margin: 0 0 1.5rem;
  max-width: 32.5rem;
}
.nc-auth-description {
  color: #aabed0;
  font-size: 1rem;
  line-height: 1.8;
  max-width: 24.375rem;
  margin-bottom: 2rem;
}
.nc-auth-features {
  list-style: none;
  margin: 0;
  padding: 1.5rem 0 0;
  border-top: 1px solid #254059;
  max-width: 23.125rem;
}
.nc-auth-features li {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  color: #d5e0ea;
  font-size: 0.8125rem;
  padding: 0.5625rem 0;
}
.nc-auth-features i {
  color: var(--nc-cyan);
  width: 1.25rem;
  text-align: center;
}
.nc-app.nc-layout-auth #main-body {
  padding: 0;
  width: 100%;
  min-width: 0;
}
.nc-login-form {
  width: 100%;
  max-width: 30rem;
  margin: auto;
}
.nc-app .nc-login-card {
  border: 0;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 24px 80px #0004;
  margin: 0;
}
.nc-app .nc-login-heading {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.875rem 2.25rem 1.5rem;
  background: #fff;
  border-bottom: 0;
}
.nc-login-symbol {
  display: grid;
  place-items: center;
  width: 2.875rem;
  height: 2.875rem;
  border: 1px solid var(--nc-border);
  border-radius: 0.75rem;
  color: var(--nc-action);
  font-size: 1.125rem;
}
.nc-login-heading p {
  color: var(--nc-muted);
  font-size: 0.75rem;
  margin: 0 0 0.25rem;
}
.nc-app .nc-login-heading h1 {
  margin: 0;
  font-size: 1.625rem;
}
.nc-app .nc-login-card .card-body {
  padding: 0.25rem 2.25rem 2.125rem;
}
.nc-login-card .form-group {
  margin-bottom: 1.25rem;
}
.nc-app .nc-login-card .form-control {
  min-height: 3rem;
  font-size: 1rem;
}
.nc-app .nc-login-card .form-control:focus-visible {
  outline: none;
}
.nc-password .form-control {
  border-right: 0;
}
.nc-app .nc-password .btn {
  border-color: #b9cbdc;
  border-left: 0;
  color: var(--nc-muted);
  border-radius: 0 0.375rem 0.375rem 0;
}
.nc-login-options {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin: 0.25rem 0 1.25rem;
  font-size: 0.8125rem;
}
.nc-login-options > a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
}
.nc-remember {
  min-height: 2.75rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  color: var(--nc-muted);
}
.nc-remember input {
  width: 0.9375rem;
  height: 0.9375rem;
  accent-color: var(--nc-action);
}
.nc-app .nc-sign-in {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  min-height: 3rem;
  padding: 0.75rem 1.125rem;
}
.nc-app .nc-login-card .card-footer {
  padding: 1.1875rem 1.875rem;
  text-align: center;
  font-size: 0.75rem;
  color: var(--nc-muted);
  background: #f5f8fb;
}
.nc-login-card .card-footer a {
  font-weight: 650;
  margin-left: 0.3125rem;
}
.nc-app.nc-layout-auth .nc-footer {
  max-width: 82.5rem;
  margin: auto;
  width: 100%;
  color: #91a8bd;
}
.nc-app.nc-layout-auth .nc-footer a {
  color: #aabed0;
}
.nc-layout-auth .providerLinkingFeedback,
.nc-layout-auth .providerLinkingFeedback + .alert {
  max-width: 30rem;
  margin-inline: auto;
}
.nc-layout-auth .logincontainer {
  max-width: 30rem;
  margin: 0 auto;
}
.nc-layout-auth .logincontainer h1 {
  color: white;
}
.nc-layout-auth .logincontainer .card h1 {
  color: var(--nc-ink);
}
.nc-entry {
  max-width: 36.25rem;
  margin: 3.75rem auto;
}
.nc-entry .card-body {
  padding: 2.25rem;
}
.nc-app .modal-localisation {
  color: var(--nc-ink);
}
@media (max-width: 1099.98px) {
  .nc-layout-portal .nc-main-frame {
    margin-left: 0;
  }
  .nc-sidebar {
    position: relative;
    width: 100%;
  }
  .nc-sidebar-brand {
    min-height: 4.75rem;
    padding-block: 1.25rem;
  }
  .nc-sidebar-bottom {
    margin-top: 1.5rem;
  }
  .nc-enhanced .nc-sidebar {
    position: fixed;
    height: 100vh;
    height: 100dvh;
    width: min(18.75rem, 86vw);
    transform: translateX(-100%);
    transition: transform 0.2s ease;
  }
  .nc-enhanced .nc-sidebar-brand {
    position: sticky;
    top: 0;
    background: var(--nc-night);
    z-index: 1;
  }
  .nc-enhanced.nc-nav-open .nc-sidebar {
    transform: translateX(0);
    box-shadow: 12px 0 48px #0004;
  }
  .nc-enhanced .nc-menu-toggle,
  .nc-enhanced .nc-menu-close {
    display: inline-grid;
    place-items: center;
    flex-shrink: 0;
  }
  .nc-menu-close {
    color: #d5e0ea;
  }
  .nc-enhanced.nc-nav-open .nc-nav-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1035;
    border: 0;
    background: #04172d88;
  }
  .nc-nav-open {
    overflow: hidden;
  }
  .nc-utilities {
    gap: 0.625rem;
  }
  .nc-app .nc-notifications > .d-sm-none {
    display: inline !important;
  }
  .nc-app .nc-notifications > .d-none {
    display: none !important;
  }
  .nc-account-name > span:last-child {
    max-width: 8.75rem;
  }
  .nc-auth-layout {
    gap: 2.5rem;
  }
  .nc-app .nc-login-heading {
    padding-inline: 1.75rem;
  }
  .nc-app .nc-login-card .card-body {
    padding-inline: 1.75rem;
  }
}
@media (max-width: 767.98px) {
  .nc-header-inner {
    gap: 0.75rem;
    padding: 0.875rem var(--nc-gutter);
    min-height: 4.5rem;
    flex-wrap: wrap;
  }
  .nc-brand-name {
    font-size: 1.4375rem;
  }
  .nc-brand-cloud {
    width: 2.25rem;
    height: 1.8125rem;
  }
  .nc-utilities {
    gap: 0.625rem;
  }
  .nc-layout-portal .nc-utilities {
    margin-left: auto;
  }
  .nc-account-name > span:last-child,
  .nc-workspace-label > span {
    display: none;
  }
  .nc-account-controls {
    padding-left: 0.625rem;
    gap: 0;
  }
  .nc-user-menu > li > a {
    font-size: 0.8125rem;
    padding-right: 0;
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
  }
  .nc-app .nc-notifications > .d-sm-none {
    display: inline !important;
  }
  .nc-app .nc-notifications > .d-none {
    display: none !important;
  }
  .nc-account-avatar {
    display: none;
  }
  .nc-app .nc-notifications {
    font-size: 0.75rem;
  }
  .nc-app #main-body {
    padding: 1.75rem var(--nc-gutter) 2.25rem;
  }
  .nc-app .nc-footer {
    padding: 1.25rem var(--nc-gutter);
  }
  .nc-app .form-control,
  .nc-app .custom-select {
    font-size: 1rem;
  }
  .nc-footer-inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .nc-app .nc-page-title {
    font-size: 1.625rem;
  }
  .nc-auth-story {
    display: none;
  }
  .nc-auth-layout {
    display: block;
    width: min(calc(100% - 2.5rem), 30rem);
    padding: 1.75rem 0 2.25rem;
    flex: 0;
  }
  .nc-layout-auth .nc-header-inner {
    min-height: 5.25rem;
  }
  .nc-layout-auth .nc-main-frame {
    justify-content: space-between;
  }
  .nc-layout-auth .nc-utility-link {
    display: none;
  }
  .nc-app .nc-login-heading {
    padding: 1.625rem 1.5rem 1.375rem;
  }
  .nc-app .nc-login-card .card-body {
    padding: 0 1.5rem 1.75rem;
  }
  .nc-login-options {
    align-items: flex-start;
    gap: 0 0.75rem;
  }
  .nc-app .nc-login-card .card-footer {
    padding: 1.125rem 1.5rem;
  }
  .nc-app.nc-layout-auth .nc-footer {
    margin-top: 0;
    padding-bottom: 1.5rem;
  }
  .nc-layout-auth .nc-footer-inner {
    align-items: center;
    text-align: center;
  }
  .nc-layout-auth .nc-footer-links {
    justify-content: center;
  }
  .nc-layout-auth .nc-footer a {
    font-size: 0.6875rem;
  }
  .nc-layout-checkout .nc-header-inner {
    flex-wrap: wrap;
  }
  .nc-layout-checkout .nc-utilities {
    width: 100%;
    flex-wrap: wrap;
    gap: 0.5rem;
  }
  .nc-layout-checkout .nc-utility-link {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nc-app *,
  .nc-app *::before,
  .nc-app *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
@media print {
  .nc-header,
  .nc-sidebar,
  .nc-footer,
  .nc-skip-link,
  .master-breadcrumb {
    display: none !important;
  }
  .nc-app,
  .nc-app .nc-main-frame {
    background: white;
    margin-left: 0;
  }
}
/* Keep utility sizing independent of native Bootstrap button rules. */
.nc-app .nc-header .nc-locale-button,
.nc-app .nc-header .nc-cart-link,
.nc-app .nc-header .nc-notifications {
  padding: 0.625rem 0.375rem;
  font-size: 0.75rem;
  flex-shrink: 0;
  overflow: visible;
}
.nc-app .nc-header .nc-home {
  color: var(--nc-ink);
}
.nc-app.nc-layout-auth .nc-header .nc-home {
  color: white;
}
.nc-locale-short {
  display: none;
}
.nc-dashboard-context {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 1.75rem;
}
.nc-dashboard-context > .sidebar {
  min-width: 0;
}
@media (max-width: 767.98px) {
  .nc-layout-portal .nc-header-inner {
    flex-wrap: nowrap;
    padding-inline: var(--nc-gutter);
    gap: 0.5rem;
  }
  .nc-layout-portal .nc-utilities {
    gap: 0.375rem;
  }
  .nc-layout-portal .nc-account-controls {
    gap: 2px;
    padding-left: 0.5rem;
  }
  .nc-layout-portal .nc-account-name {
    display: none;
  }
  .nc-layout-portal .nc-account-switch {
    width: 1.75rem;
  }
  .nc-layout-portal .nc-header .nc-locale-full {
    display: none;
  }
  .nc-layout-portal .nc-header .nc-locale-short {
    display: inline;
  }
  .nc-layout-portal .nc-header .nc-cart-link,
  .nc-layout-portal .nc-header .nc-locale-button,
  .nc-layout-portal .nc-header .nc-notifications {
    padding-inline: 0.25rem;
  }
  .nc-dashboard-context {
    grid-template-columns: 1fr;
    gap: 0;
  }
}

/* Give account utilities their own row on phones, with the brand above. */
@media (max-width: 575.98px) {
  .nc-layout-portal .nc-header-inner {
    flex-wrap: wrap;
    gap: 0.5rem;
    padding-block: 0.625rem;
  }
  .nc-layout-portal .nc-workspace-label {
    width: 100%;
    gap: 0.5rem;
  }
  .nc-layout-portal .nc-mobile-home {
    display: inline-flex;
  }
  .nc-layout-portal .nc-utilities {
    width: 100%;
    justify-content: space-between;
    gap: 0.25rem;
    padding-top: 0.375rem;
    border-top: 1px solid var(--nc-border);
    flex-wrap: wrap;
  }
  .nc-layout-portal .nc-account-controls {
    padding-left: 0;
    border: 0;
  }
  .nc-layout-portal .nc-header .nc-account-switch {
    display: none;
  }
  .nc-app .nc-sidebar-bottom .nc-mobile-account-switch {
    display: flex;
  }
  .nc-layout-portal .nc-header .nc-locale-button,
  .nc-layout-portal .nc-header .nc-notifications,
  .nc-layout-portal .nc-header .nc-cart-link {
    min-width: 2.75rem;
    min-height: 2.75rem;
    font-size: 0.8125rem;
  }
}

.nc-app .nc-header .nc-language-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0.5rem;
  border: 1px solid var(--nc-border);
  font-size: 0.8125rem;
  font-weight: 650;
  text-decoration: none;
}
.nc-app.nc-layout-auth .nc-header .nc-language-toggle {
  border-color: #36516a;
}

/* Shared native components also serve pages with no child template override. */
.nc-app .card-title,
.nc-app .sidebar .list-group-item,
.nc-app .nav-tabs,
.nc-app .nav-pills,
.nc-app .alert {
  font-size: 0.9375rem;
}
.nc-app .nav-tabs {
  border-color: var(--nc-border);
  gap: 0.25rem;
}
.nc-app .nav-tabs .nav-link {
  border-radius: 0.5rem 0.5rem 0 0;
  padding: 0.75rem 1rem;
}
.nc-app .nav-tabs .nav-link.active {
  color: var(--nc-ink);
  border-color: var(--nc-border) var(--nc-border) white;
}
.nc-app .input-group-text {
  border-color: #b9cbdc;
  background: var(--nc-mist);
  color: var(--nc-muted);
}
.nc-app .status {
  font-size: 0.75rem;
}
.nc-app .mw-540 {
  max-width: 33.75rem;
}
.nc-app .table-container .ticket-number {
  font-size: 0.75rem;
}
.nc-app .table-container .ticket-subject {
  font-size: 0.875rem;
}
.nc-app .table-container tbody a {
  overflow-wrap: anywhere;
}
.nc-layout-auth #main-body > .container > .row {
  margin-inline: 0;
}
.nc-layout-auth .primary-content > .row {
  margin-inline: 0;
}
.nc-layout-auth .primary-content > .row > .card {
  width: 100%;
  min-width: 0;
}
.nc-app .font-size-10 {
  font-size: 0.625rem;
}
.nc-app .font-size-11 {
  font-size: 0.6875rem;
}
.nc-app .font-size-12 {
  font-size: 0.75rem;
}
.nc-app .font-size-13 {
  font-size: 0.8125rem;
}
.nc-app .font-size-14 {
  font-size: 0.875rem;
}
.nc-app .font-size-15 {
  font-size: 0.9375rem;
}
.nc-app .font-size-16 {
  font-size: 1rem;
}
.nc-app .font-size-18 {
  font-size: 1.125rem;
}
.nc-app .font-size-20 {
  font-size: 1.25rem;
}
.nc-app .font-size-22 {
  font-size: 1.375rem;
}
.nc-app .font-size-24 {
  font-size: 1.5rem;
}
.nc-app .font-size-26 {
  font-size: 1.625rem;
}
.nc-app .font-size-28 {
  font-size: 1.75rem;
}
.nc-app .font-size-30 {
  font-size: 1.875rem;
}
.nc-app .font-size-32 {
  font-size: 2rem;
}
.nc-app .font-size-36 {
  font-size: 2.25rem;
}
/* Override the parent's fixed-size account link, including on wide screens. */
.nc-app .nc-user-menu > li > a {
  font-size: 0.8125rem;
}
.nc-app a.btn-success,
.nc-app a.btn-danger,
.nc-app a.btn-info {
  color: #fff;
}

.nc-app a.btn-warning {
  color: var(--nc-ink);
}

/* Website identity, with account utilities instead of marketing navigation. */
.nc-app .nc-header,
.nc-app.nc-layout-auth .nc-header {
  position: sticky;
  top: 0;
  z-index: 1030;
  color: #f7fbff;
  background: linear-gradient(115deg, #0b263f, #04172d 65%);
  border-bottom: 1px solid #7fc0ef33;
  box-shadow:
    inset 0 1px #ffffff12,
    0 5px 16px #000c1c1f;
}
.nc-app .nc-header .nc-home {
  color: #fff;
}
.nc-header .nc-home .nc-brand-cloud {
  color: var(--nc-cyan);
}
.nc-header .nc-workspace-label {
  color: #d5e3ef;
  font-size: 0.9375rem;
}
.nc-app .nc-header .nc-utility-link {
  color: #d5e3ef;
  font-size: 0.875rem;
}
.nc-app .nc-header .nc-utility-link:hover {
  color: var(--nc-cyan);
}
.nc-app .nc-header .nc-locale-button,
.nc-app .nc-header .nc-cart-link,
.nc-app .nc-header .nc-notifications {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0.625rem;
  border: 1px solid #7899b4;
  border-radius: 0.625rem;
  color: #e0edf8;
  background: transparent;
  font-size: 0.875rem;
}
.nc-app .nc-header .nc-locale-button:hover,
.nc-app .nc-header .nc-cart-link:hover,
.nc-app .nc-header .nc-notifications:hover {
  color: #fff;
  background: #ffffff12;
  border-color: #a4c3dc;
}
.nc-app .nc-header .nc-account-controls {
  gap: 0.5rem;
  padding: 0.125rem 0.625rem;
  border: 1px solid #7899b4;
  border-radius: 0.625rem;
  min-height: 2.75rem;
}
.nc-app .nc-header .nc-account-name,
.nc-app .nc-header .nc-account-switch,
.nc-app .nc-header .nc-user-menu > li > a {
  color: #e0edf8;
}
.nc-app .nc-header .nc-account-name {
  font-size: 0.8125rem;
}
.nc-header .nc-account-avatar {
  color: #a9dcff;
  background: #ffffff0d;
}
.nc-app .nc-header .nc-account-switch:hover,
.nc-app .nc-header .nc-user-menu > li > a:hover {
  color: var(--nc-cyan);
}
.nc-app .nc-header .nc-cart-link .badge,
.nc-header .nc-notification-count {
  background: #1c496b;
  color: #e6f5ff;
  font-size: 0.6875rem;
  font-weight: 650;
  line-height: 1.4;
  border-radius: 0.25rem;
  padding: 0.0625rem 0.3125rem;
}
.nc-header .nc-menu-toggle {
  color: #e0edf8;
  border: 1px solid #7899b4;
}
.nc-app .nc-header :focus-visible {
  outline-color: var(--nc-cyan);
}
.nc-app .nc-user-menu .dropdown-menu {
  color: var(--nc-ink);
  background: #fff;
}
.nc-app .nc-user-menu .dropdown-menu a {
  color: var(--nc-ink);
  font-size: 0.875rem;
}
.nc-app .nc-user-menu .dropdown-menu a:hover {
  background: var(--nc-mist);
  color: var(--nc-action);
}
@media (max-width: 1099.98px) {
  .nc-layout-portal .nc-mobile-home {
    display: inline-flex;
  }
  .nc-layout-portal .nc-workspace-label > span {
    display: none;
  }
  .nc-layout-portal .nc-header-inner {
    flex-wrap: wrap;
  }
}
@media (max-width: 575.98px) {
  .nc-app .nc-header {
    position: relative;
  }
  .nc-layout-portal .nc-utilities {
    border-top-color: #7fc0ef33;
  }
  .nc-header .nc-brand-name {
    font-size: clamp(23px, 1.4375rem, 32px);
  }
  .nc-header .nc-brand-cloud {
    width: clamp(36px, 2.25rem, 44px);
    height: auto;
  }
  .nc-header .nc-brand {
    gap: 10px;
  }
  .nc-header .nc-menu-toggle {
    width: 44px;
    height: 44px;
  }
  .nc-app .nc-header .nc-locale-button,
  .nc-app .nc-header .nc-cart-link,
  .nc-app .nc-header .nc-notifications {
    min-width: 44px;
    min-height: 44px;
    padding: 8px;
  }
}
/* Preserve room for the brand and native account menu on tablets. */
@media (min-width: 768px) and (max-width: 1099.98px) {
  .nc-header .nc-account-name > span:last-child {
    display: none;
  }
}
.nc-user-menu .dropdown-menu {
  min-width: min(13.75rem, calc(100vw - 40px));
  max-width: calc(100vw - 40px);
}
.nc-app .popover {
  max-width: min(24rem, calc(100vw - 2rem));
  font-family: var(--nc-font);
  font-size: 0.875rem;
}
.nc-app .popover .client-alerts {
  font-size: 0.875rem;
  max-height: 60vh;
  overflow-y: auto;
}
@media (max-width: 575.98px) {
  .nc-sidebar-brand {
    padding: 20px;
    gap: 8px;
  }
  .nc-sidebar-brand .nc-brand-name {
    font-size: clamp(23px, 1.5625rem, 28px);
  }
  .nc-sidebar-brand .nc-brand-cloud {
    width: 36px;
    height: auto;
  }
  .nc-sidebar-brand .nc-brand {
    gap: 10px;
  }
  .nc-sidebar-brand .nc-menu-close {
    width: 44px;
    height: 44px;
  }
}

/* Translucent navy glass; the opaque header above is the capability fallback. */
@supports (
  (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))
) {
  .nc-app .nc-header,
  .nc-app.nc-layout-auth .nc-header {
    background: linear-gradient(115deg, #0b263fe6, #04172dd9 65%);
    -webkit-backdrop-filter: blur(18px) saturate(130%);
    backdrop-filter: blur(18px) saturate(130%);
  }
}
@media (prefers-reduced-transparency: reduce) {
  .nc-app .nc-header,
  .nc-app.nc-layout-auth .nc-header {
    background: #04172d;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}

/* Native support and service-management views, without replacing their forms. */
.nc-app[data-template^="supportticketsubmit"] .extra-padding {
  padding: clamp(1.25rem, 3vw, 2.5rem);
}
.nc-app[data-template="supportticketsubmit-stepone"] .h5 a {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1.1rem 1.25rem;
  border: 1px solid #dce7f1;
  border-radius: 0.75rem;
  background: #f5f9fc;
  color: #0c2845;
  text-decoration: none;
}
.nc-app[data-template="supportticketsubmit-stepone"] .h5 a:hover {
  border-color: #0075ce;
  background: #edf5fc;
}
.nc-app[data-template="supportticketsubmit-stepone"] .h5 + p {
  margin: 0.75rem 1.25rem 1.75rem;
}
.nc-app .view-ticket .ticket-reply {
  border: 1px solid #dce7f1;
  border-radius: 0.75rem;
  overflow: hidden;
  margin: 0;
  font-size: 1rem;
}
.nc-app .view-ticket .ticket-reply .posted-by {
  background: #f5f9fc;
  border-bottom: 1px solid #dce7f1;
  padding: 0.85rem 1rem;
  color: #0c2845;
  font-size: 0.875rem;
}
.nc-app .view-ticket .ticket-reply.staff .posted-by {
  background: #0c2845;
  color: #fff;
}
.nc-app .view-ticket .ticket-reply .message {
  line-height: 1.7;
  overflow-wrap: anywhere;
}
.nc-app .view-ticket .ticket-reply .message img {
  max-width: 100%;
  height: auto;
}
.nc-app .view-ticket .ticket-reply pre {
  max-width: 100%;
  overflow-x: auto;
}
.nc-app #ticketReplyContainer {
  scroll-margin-top: 6rem;
}
.nc-app .md-editor {
  border: 1px solid #cfdeea;
  border-radius: 0.75rem;
  overflow: hidden;
}
.nc-app .md-editor > .md-header {
  background: #f5f9fc;
  padding: 0.65rem;
}
.nc-app .md-editor > textarea {
  background: #fff;
  padding: 1rem;
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.6;
}
.nc-app #domainForm > .btn-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.nc-app #domainForm > .btn-group > .btn,
.nc-app #domainForm > .btn-group > .btn-group > .btn {
  border-radius: 0.6rem;
  margin: 0;
  min-height: 2.75rem;
}
.nc-app[data-template="clientareadomaindns"] form {
  overflow-x: auto;
  padding-bottom: 0.5rem;
}
.nc-app[data-template="clientareadomaindns"] form .table {
  min-width: 44rem;
}
.nc-app[data-template="clientareadomaindns"] .table thead th {
  background: #0c2845;
  color: #fff;
  border-color: #28435e;
  padding: 0.85rem;
}
.nc-app[data-template="clientareadomaindns"] .table td {
  padding: 0.75rem;
  vertical-align: middle;
  border-color: #dce7f1;
}
.nc-app[data-template="clientareadomaindetails"] #tabOverview h5 {
  color: #52667a;
  font-size: 0.8125rem;
  margin-bottom: 0.5rem;
}
.nc-app[data-template="clientareaproductdetails"] .product-status {
  background: #0c2845;
  color: #fff;
  border-radius: 0.85rem;
  padding: 1.75rem;
}
.nc-app[data-template="clientareaproductdetails"] .product-status h3,
.nc-app[data-template="clientareaproductdetails"] .product-status h4 {
  color: #fff;
}
.nc-app[data-template="clientareaproductdetails"] .product-status h4 {
  font-size: 1rem;
  opacity: 0.8;
}
.nc-app[data-template="clientareaproductdetails"]
  .product-details-tab-container {
  padding: 1.25rem;
}
@media (max-width: 575.98px) {
  .nc-app .view-ticket .ticket-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    float: none !important;
  }
  .nc-app .view-ticket .posted-on {
    display: inline-block;
  }
  .nc-app #domainForm > .btn-group > .btn {
    flex: 1 1 45%;
    white-space: normal;
  }
}
.nc-app[data-template="clientareaproductdetails"]
  .product-status
  .product-icon {
  background: transparent;
}
.nc-app[data-template="clientareaproductdetails"] .product-status .fa-stack {
  font-size: 1.75rem;
  color: #29d4f2;
}
.nc-app[data-template="clientareaproductdetails"]
  .product-details
  > .row
  > .col-md-6:last-child {
  text-align: left !important;
  padding-top: 0.75rem;
}
.nc-app[data-template="clientareaproductdetails"] .product-details h4 {
  font-size: 0.875rem;
  font-weight: 600;
  margin: 1rem 0 0.4rem;
}
.nc-app[data-template="clientareaproductdetails"]
  .product-actions-wrapper
  .btn-success {
  background: #006fc9;
  border-color: #006fc9;
}
.nc-app[data-template="clientareaproductdetails"]
  .product-actions-wrapper
  .btn-danger {
  color: #a32638;
  background: #fff;
  border-color: #e9bac2;
}

/* Native management forms: readable groups and consistent action spacing. */
.nc-app:is(
    [data-template^="user-"],
    [data-template="clientareacancelrequest"],
    [data-template="clientareadomaincontactinfo"],
    [data-template="upgrade"]
  )
  .card-body {
  padding: clamp(1.25rem, 2.5vw, 2rem);
}
.nc-app:is(
    [data-template^="user-"],
    [data-template="clientareadomaincontactinfo"]
  )
  .card-title {
  font-size: 1.25rem;
  margin-bottom: 1.5rem;
}
.nc-app[data-template="clientareadomaincontactinfo"] .tab-content {
  border: 1px solid #dce7f1;
  border-top: 0;
  border-radius: 0 0 0.75rem 0.75rem;
  margin-bottom: 1.5rem;
}
.nc-app[data-template="clientareadomaindetails"] #tabOverview ul {
  list-style: none;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}
.nc-app[data-template="clientareadomaindetails"] #tabOverview li a {
  display: block;
  padding: 0.85rem 1rem;
  border: 1px solid #dce7f1;
  border-radius: 0.65rem;
  background: #f5f9fc;
  text-decoration: none;
}
.nc-app[data-template="clientareacancelrequest"] textarea {
  min-height: 10rem;
}
.nc-app[data-template="user-security"] .twofa-config-link {
  padding: 0.75rem 1rem;
  border-radius: 0.6rem;
}
.nc-app[data-template="user-security"] p.twofa-config-link {
  background: #f5f9fc;
  border: 1px solid #dce7f1;
}
.nc-app[data-template="upgrade"] .card .card {
  border-radius: 0.75rem;
  box-shadow: none;
}
.nc-app[data-template="upgrade"] .card .card .card-header {
  background: #0c2845;
  color: #fff;
}
@media (max-width: 575.98px) {
  .nc-app[data-template="clientareadomaincontactinfo"] .tab-content {
    padding: 1rem !important;
  }
  .nc-app[data-template="user-password"] .generate-password {
    margin-top: 0.75rem;
  }
  .nc-app[data-template="clientareacancelrequest"]
    .form-group
    > .d-inline-block {
    display: block !important;
  }
}
.nc-app[data-template="upgrade"] .table td {
  padding: 1.25rem;
  vertical-align: middle;
}
@media (max-width: 575.98px) {
  .nc-app[data-template="upgrade"] .table,
  .nc-app[data-template="upgrade"] .table tbody,
  .nc-app[data-template="upgrade"] .table tr,
  .nc-app[data-template="upgrade"] .table td {
    display: block;
    width: 100%;
  }
  .nc-app[data-template="upgrade"] .table td {
    border: 0;
  }
}

/* Native alerts and titled notification panels share a soft semantic palette. */
:is(.nc-app, .nc-document-page)
  :is(.alert, .card:has(> .card-title[class*="bg-"])) {
  --nc-notice-bg: #edf5fc;
  --nc-notice-ink: #17476b;
  --nc-notice-border: #c8deef;
  color: var(--nc-notice-ink);
  background: var(--nc-notice-bg);
  border: 1px solid var(--nc-notice-border);
  border-color: var(--nc-notice-border) !important;
  border-radius: var(--nc-notice-radius, 0.75rem);
  box-shadow: none;
}
:is(.nc-app, .nc-document-page)
  :is(.alert-success, .card:has(> .card-title.bg-success)) {
  --nc-notice-bg: #eef7f2;
  --nc-notice-ink: #225b42;
  --nc-notice-border: #c9e2d3;
}
:is(.nc-app, .nc-document-page)
  :is(.alert-warning, .card:has(> .card-title.bg-warning)) {
  --nc-notice-bg: #fff7e8;
  --nc-notice-ink: #79551c;
  --nc-notice-border: #ecd9b4;
}
:is(.nc-app, .nc-document-page)
  :is(.alert-danger, .alert-error, .card:has(> .card-title.bg-danger)) {
  --nc-notice-bg: #fff0f1;
  --nc-notice-ink: #9a2537;
  --nc-notice-border: #edcbd0;
}
:is(.nc-app, .nc-document-page)
  :is(
    .alert-secondary,
    .alert-dark,
    .alert-light,
    .card:has(> .card-title.bg-secondary)
  ) {
  --nc-notice-bg: #f3f6f9;
  --nc-notice-ink: #425a70;
  --nc-notice-border: #d4dfe8;
}
:is(.nc-app, .nc-document-page) .alert {
  padding: 1rem 1.25rem;
}
:is(.nc-app, .nc-document-page) .alert-dismissible {
  padding-right: 3.5rem;
}
:is(.nc-app, .nc-document-page) .alert .close {
  color: inherit;
  opacity: 0.8;
}
:is(.nc-app, .nc-document-page)
  .card:has(> .card-title[class*="bg-"])
  > .card-title {
  color: var(--nc-notice-ink) !important;
  background: transparent !important;
  padding: 0.875rem 1.25rem 0.375rem !important;
  margin: 0;
  border-radius: inherit;
}
:is(.nc-app, .nc-document-page)
  .card:has(> .card-title[class*="bg-"])
  > .card-text {
  padding: 0 1.25rem 1rem;
  margin: 0 !important;
}
:is(.nc-app, .nc-document-page)
  :is(.alert, .card:has(> .card-title[class*="bg-"]))
  a:not(.btn) {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
:is(.nc-app, .nc-document-page) .alert > :last-child {
  margin-bottom: 0;
}

/* Native sign-in security steps follow the login card composition. */
.nc-app:is(
    [data-template="two-factor-challenge"],
    [data-template="two-factor-new-backup-code"],
    [data-template="user-verify-email"]
  )
  #main-body
  .card.mw-540 {
  width: 100%;
  max-width: 32rem;
  margin: 0 auto !important;
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 1.5rem 4rem #04172d18;
}
.nc-app:is(
    [data-template="two-factor-challenge"],
    [data-template="two-factor-new-backup-code"],
    [data-template="user-verify-email"]
  )
  #main-body
  .card-body {
  padding: clamp(1.25rem, 3vw, 2.5rem) !important;
}
.nc-app:is(
    [data-template="two-factor-challenge"],
    [data-template="two-factor-new-backup-code"]
  )
  .card-title {
  font-size: 1.5rem;
  line-height: 1.3;
  margin-bottom: 1.5rem;
}
.nc-app[data-template="two-factor-challenge"] #frmTwoFactorChallengeFooter {
  padding: 1.25rem clamp(1.25rem, 3vw, 2.5rem) !important;
  background: var(--nc-mist);
  border-radius: 0 0 1rem 1rem;
  line-height: 1.7;
}
.nc-app[data-template="two-factor-challenge"] #frmTwoFactorChallengeFooter a {
  display: inline-block;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.nc-app[data-template="two-factor-challenge"] #frmTwoFactorBackup input {
  font-family: ui-monospace, monospace;
  letter-spacing: 0.04em;
}
.nc-app[data-template="two-factor-new-backup-code"] .alert.h4 {
  font-family: ui-monospace, monospace;
  font-size: 1.125rem;
  line-height: 1.6;
  overflow-wrap: anywhere;
  user-select: all;
  margin-block: 1.5rem;
}
.nc-app[data-template="user-verify-email"] .card h2 {
  font-size: 1.5rem;
  line-height: 1.45;
  margin-bottom: 1.5rem;
}
.nc-app[data-template="user-verify-email"] .card h2 > i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  margin-bottom: 1rem;
  border-radius: 50%;
  font-size: 1.75rem;
}
.nc-app[data-template="user-verify-email"] .card .text-success {
  color: #225b42 !important;
  background: #eef7f2;
}
.nc-app[data-template="user-verify-email"] .card .text-warning {
  color: #79551c !important;
  background: #fff7e8;
}
.nc-app[data-template="user-verify-email"] .card .text-danger {
  color: #9a2537 !important;
  background: #fff0f1;
}
.nc-app:is(
    [data-template="two-factor-challenge"],
    [data-template="two-factor-new-backup-code"],
    [data-template="user-verify-email"]
  )
  .btn {
  white-space: normal;
  overflow-wrap: anywhere;
}

/* Native navbar nests dropdown-item on the row and link: paint only the link. */
.nc-app .nc-user-menu .dropdown-menu > li.dropdown-item,
.nc-app
  .nc-user-menu
  .dropdown-menu
  > li.dropdown-item:is(:hover, :focus, :active, .active) {
  padding: 0;
  background: transparent;
  color: inherit;
  border: 0;
}
.nc-app .nc-user-menu .dropdown-menu a.dropdown-item {
  display: flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.625rem 0.75rem !important;
  border-radius: 0.375rem;
  background: transparent;
  color: var(--nc-ink);
  text-decoration: none;
}
.nc-app .nc-user-menu .dropdown-menu a.dropdown-item:is(:hover, :focus) {
  background: #edf5fc;
  color: #17476b;
}
.nc-app .nc-user-menu .dropdown-menu a.dropdown-item:is(:active, .active) {
  background: #dcebf7;
  color: #0c2845;
}
.nc-app .nc-header .nc-user-menu .dropdown-menu a.dropdown-item:focus-visible {
  outline: 2px solid var(--nc-action);
  outline-offset: -2px;
}
.nc-app .nc-header .nc-user-menu > li.show > a {
  background: #ffffff0d;
  color: #e8f2fc;
  border-radius: 0.375rem;
}

/* Account selection remains native; each available workspace gets one clear row. */
.nc-app:is(
    [data-template="user-switch-account"],
    [data-template="user-switch-account-forced"]
  )
  #main-body
  .card.mw-540 {
  width: 100%;
  max-width: 42rem;
  margin-inline: auto;
}
.nc-app:is(
    [data-template="user-switch-account"],
    [data-template="user-switch-account-forced"]
  )
  #main-body
  .card-body {
  padding: clamp(1.25rem, 3vw, 2rem);
}
.nc-app[data-template="user-switch-account"] .select-account {
  display: grid;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
.nc-app[data-template="user-switch-account"]
  .select-account
  .nc-account-choice {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  margin: 0;
  padding: 1.125rem 1.25rem;
  border: 1px solid var(--nc-border);
  border-radius: 0.625rem;
  background: #fff;
  color: var(--nc-ink);
  text-decoration: none;
  line-height: 1.5;
}
.nc-account-choice-name {
  flex: 1 1 12rem;
  min-width: 0;
  overflow-wrap: anywhere;
  font-weight: 600;
}
.nc-app[data-template="user-switch-account"]
  .select-account
  a.nc-account-choice:is(:hover, :focus-visible) {
  border-color: var(--nc-action);
  background: #edf5fc;
}
.nc-app[data-template="user-switch-account"]
  .select-account
  .nc-account-choice.disabled {
  background: #f5f7f9;
  color: var(--nc-muted);
  opacity: 1;
}
.nc-app[data-template="user-switch-account"] .select-account .label {
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  background: #edf5fc;
  color: #17476b;
  font-size: 0.75rem;
  line-height: 1.4;
}
.nc-app[data-template="user-switch-account"] .select-account .disabled .label {
  background: #e7edf2;
  color: #425a70;
}
.nc-app[data-template="user-switch-account-forced"] .card-body > .d-flex {
  justify-content: flex-start !important;
  background: var(--nc-mist);
  border: 1px solid var(--nc-border);
  border-radius: 0.625rem;
  padding: 1.25rem !important;
  margin-block: 1.5rem;
  overflow-wrap: anywhere;
}
.nc-app[data-template="user-switch-account-forced"] .card-body > .d-flex p {
  margin: 0;
}
.nc-app[data-template="user-switch-account-forced"] form > .d-flex {
  justify-content: flex-start !important;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.nc-app[data-template="user-switch-account-forced"] form .btn {
  margin: 0 !important;
  white-space: normal;
}

/* Registration is a readable form, with persistent labels and native controls. */
.nc-app[data-template="clientregister"] #main-body > .container {
  max-width: 58rem;
}
.nc-registration-title {
  margin: 0 0 2rem;
  font-size: 2rem;
  font-weight: 650;
}
.nc-app[data-template="clientregister"] #registration .card {
  border-radius: 0.875rem;
}
.nc-app[data-template="clientregister"] #registration .card-body {
  padding: 0 1.5rem 1rem !important;
}
.nc-app[data-template="clientregister"] #registration .card-title {
  margin: 0 -1.5rem 1.5rem;
  padding: 1.125rem 1.5rem;
  border-radius: 0.8125rem 0.8125rem 0 0;
  background: #0c2845;
  color: white;
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.4;
}
.nc-app[data-template="clientregister"] #registration .form-group {
  margin-bottom: 1.25rem;
}
.nc-app[data-template="clientregister"] #registration .form-group > label {
  display: block;
  margin-bottom: 0.5rem;
  color: #334f6a;
  font-weight: 600;
  font-size: 0.75rem;
  line-height: 1.25;
}
.nc-app[data-template="clientregister"] #registration .field {
  display: block;
  width: 100%;
  min-height: 2.75rem;
  padding: 0.625rem 0.75rem;
  border: 1px solid #b7c8d8;
  border-radius: 0.375rem;
  background: white;
  color: var(--nc-ink);
  font-size: 1rem;
}
.nc-app[data-template="clientregister"] #registration .field:focus {
  border-color: var(--nc-action);
}
.nc-app[data-template="clientregister"] #registration .field-help-text {
  display: block;
  margin-top: 0.375rem;
  color: var(--nc-muted);
  font-size: 0.8125rem;
}
.nc-app[data-template="clientregister"] #registration .password-strength-meter {
  padding-top: 0.5rem;
}
.nc-app[data-template="clientregister"] #registration .btn {
  white-space: normal;
}
.nc-app[data-template="clientregister"] #registration .form-check {
  display: inline-block;
  text-align: left;
  padding-left: 1.75rem;
}
.nc-app[data-template="clientregister"] #registration .iti {
  width: 100%;
}
@media (max-width: 767.98px) {
  .nc-app[data-template="clientregister"] #registration .col-sm-3,
  .nc-app[data-template="clientregister"] #registration .col-sm-4,
  .nc-app[data-template="clientregister"] #registration .col-sm-5 {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* Keep the native password generator, with the same calm form treatment as the account pages. */
#modalGeneratePassword .modal-dialog {
  max-width: 34rem;
  margin-inline: auto;
  padding: 0.75rem;
}
#modalGeneratePassword .modal-content {
  overflow: hidden;
  border: 1px solid var(--nc-border, #d4dfe9);
  border-radius: 1rem;
  box-shadow: 0 1.5rem 5rem #0c203533;
}
#modalGeneratePassword .modal-header {
  align-items: center;
  padding: 1.5rem;
  background: #f3f7fa;
  color: #10283f;
  border-bottom: 1px solid #d4dfe9;
}
#modalGeneratePassword .modal-title {
  font-size: 1.25rem;
  font-weight: 650;
  line-height: 1.4;
}
#modalGeneratePassword .close {
  color: #10283f;
  opacity: 0.8;
  text-shadow: none;
}
#modalGeneratePassword .modal-body {
  padding: 1.5rem;
}
#modalGeneratePassword .col-form-label {
  display: block;
  padding: 0;
  margin-bottom: 0.5rem;
  font-weight: 600;
}
#modalGeneratePassword .form-group {
  margin-bottom: 1.25rem;
}
#modalGeneratePassword .form-control {
  min-height: 2.875rem;
  border-radius: 0.5rem;
}
#modalGeneratePassword #inputGeneratePasswordLength {
  width: 7rem;
}
#modalGeneratePassword #inputGeneratePasswordOutput {
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 1rem;
  background: #f3f7fa;
}
#modalGeneratePassword .nc-generator-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}
#modalGeneratePassword .nc-generator-actions .btn {
  min-height: 2.75rem;
  padding: 0.625rem 0.875rem;
}
#modalGeneratePassword .modal-footer {
  gap: 0.625rem;
  padding: 1.25rem 1.5rem;
  border-top: 1px solid #d4dfe9;
  background: #f3f7fa;
}
#modalGeneratePassword .modal-footer .btn {
  margin: 0;
  white-space: normal;
}
@media (max-width: 479px) {
  #modalGeneratePassword .modal-header,
  #modalGeneratePassword .modal-body,
  #modalGeneratePassword .modal-footer {
    padding: 1.125rem;
  }
  #modalGeneratePassword .modal-footer .btn-primary {
    flex: 1 1 100%;
    order: -1;
  }
}

[data-template="clientregister"] input.nc-marketing-toggle {
  appearance: none;
  display: block;
  position: relative;
  width: 3.25rem;
  height: 1.875rem;
  border: 1px solid #8195a8;
  border-radius: 2rem;
  background: #d9e2eb;
  cursor: pointer;
}
[data-template="clientregister"] input.nc-marketing-toggle::before {
  content: "";
  position: absolute;
  width: 1.375rem;
  height: 1.375rem;
  top: 0.1875rem;
  left: 0.1875rem;
  border-radius: 50%;
  background: white;
  box-shadow: 0 1px 3px #10283f33;
}
[data-template="clientregister"] input.nc-marketing-toggle:checked {
  background: #006dcc;
  border-color: #006dcc;
}
[data-template="clientregister"] input.nc-marketing-toggle:checked::before {
  transform: translateX(1.375rem);
}
[data-template="clientregister"] input.nc-marketing-toggle:focus-visible {
  outline: 3px solid #006dcc;
  outline-offset: 3px;
}
.nc-app[data-template="clientregister"] #registration .nc-registration-terms {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.75rem;
  max-width: 100%;
  padding: 0;
  font-size: 1rem;
  line-height: 1.6;
  text-align: left;
}
[data-template="clientregister"]
  #registration
  .nc-registration-terms
  .form-check-input {
  position: static;
  flex: 0 0 auto;
  width: 1.125rem;
  height: 1.125rem;
  margin: 0.25rem 0 0;
  accent-color: #006dcc;
}

/* Registration and checkout share their section and field treatment. */
.nc-app[data-template="clientregister"] #registration .card {
  border-color: #dce7f1;
  box-shadow: 0 3px 14px #04172d03;
}
.nc-app[data-template="clientregister"] #registration .field {
  min-height: 2.875rem;
  border-color: #b8c8d8;
  border-radius: 0.5rem;
  font-size: 0.875rem;
}
.nc-app[data-template="clientregister"] #registration .field:focus {
  outline: 3px solid #c6e4ff;
  outline-offset: 1px;
  box-shadow: none;
}
.nc-app[data-template="clientregister"] #registration .field::placeholder {
  color: #536b85;
  opacity: 1;
}
.nc-app[data-template="clientregister"] #registration .form-group {
  margin-bottom: 1rem;
}
@media (max-width: 575.98px) {
  .nc-app[data-template="clientregister"] #registration .field {
    font-size: 1rem;
  }
}

/* Native payment forms retain gateway-managed fields and handlers. */
.nc-app[data-template^="account-paymentmethods"] .primary-content .card {
  border: 1px solid #dce7f1;
  border-radius: 0.875rem;
  overflow: hidden;
}
.nc-app[data-template^="account-paymentmethods"] .primary-content .card-body {
  padding: 1.5rem;
}
.nc-app[data-template^="account-paymentmethods"] .primary-content .card-title {
  margin: -1.5rem -1.5rem 1.5rem;
  padding: 1.125rem 1.5rem;
  background: #0c2845;
  color: white;
  font-size: 1.125rem;
  line-height: 1.4;
}
.nc-app[data-template^="account-paymentmethods"]
  .primary-content
  .card-body
  > p {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.nc-app[data-template^="account-paymentmethods"] .form-control {
  min-height: 2.875rem;
  border-radius: 0.5rem;
}
.nc-app[data-template^="account-paymentmethods"] .control-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: #334f6a;
}
.nc-app[data-template^="account-paymentmethods"] .btn {
  white-space: normal;
}
.nc-app[data-template^="account-paymentmethods"] .modal-content {
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid #dce7f1;
}
.nc-app[data-template^="account-paymentmethods"] .modal-header,
.nc-app[data-template^="account-paymentmethods"] .modal-footer {
  background: #f3f7fa;
  padding: 1.25rem 1.5rem;
}
.nc-app[data-template^="account-paymentmethods"] .modal-title {
  font-size: 1.125rem;
}
.nc-payment-table {
  overflow-x: auto;
  border: 1px solid #dce7f1;
  border-radius: 0.75rem;
}
#payMethodList {
  margin: 0;
  min-width: 42rem;
}
#payMethodList th {
  background: #0c2845;
  color: white;
  border: 0;
  padding: 1rem;
  font-weight: 600;
}
#payMethodList td {
  padding: 1rem;
  vertical-align: middle;
}
#payMethodList td:last-child {
  min-width: 19rem;
}
#payMethodList .btn {
  margin: 0.2rem;
}
#payMethodList .nc-payment-default {
  display: inline-block;
  margin-top: 0.375rem;
  border-radius: 2rem;
  padding: 0.2rem 0.625rem;
  background: #e4f1eb;
  color: #245b45;
  font-size: 0.75rem;
  font-weight: 600;
}
.nc-app[data-template="account-paymentmethods-manage"] .primary-content .card {
  max-width: 64rem;
}
.nc-app[data-template="account-paymentmethods-manage"] .form-group.row {
  margin-bottom: 1.5rem;
}
.nc-app[data-template="account-paymentmethods-manage"] .form-check {
  line-height: 1.7;
}
@media (max-width: 767.98px) {
  .nc-app[data-template^="account-paymentmethods"] .primary-content .card-body {
    padding: 1rem;
  }
  .nc-app[data-template^="account-paymentmethods"]
    .primary-content
    .card-title {
    margin: -1rem -1rem 1.25rem;
    padding: 1rem;
  }
  .nc-app[data-template^="account-paymentmethods"] .control-label {
    margin-bottom: 0.5rem;
  }
  .nc-app[data-template^="account-paymentmethods"] .form-control {
    font-size: 1rem;
  }
}

/* The native Bootstrap notification popover is appended outside the header. */
.nc-app .popover:has(.client-alerts) {
  max-width: min(26rem, calc(100vw - 2rem));
  border: 1px solid #dce7f1;
  border-radius: 1.125rem;
  background: #fff;
  box-shadow: 0 1rem 3rem #0c284524;
  font: inherit;
}
.nc-app .popover:has(.client-alerts) .popover-body {
  padding: 0.5rem;
  color: #334f6a;
}
.nc-app .popover .client-alerts {
  max-height: min(65vh, 30rem);
  overflow-y: auto;
  padding: 0;
  margin: 0;
}
.nc-app .popover .client-alerts li {
  border: 0;
  margin: 0;
  padding: 0;
}
.nc-app .popover .client-alerts li + li {
  border-top: 1px solid #e8eef4;
}
.nc-app .popover .client-alerts li a {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  border-radius: 0.75rem;
  padding: 1rem;
  color: #233f5c;
  background: transparent;
  text-decoration: none;
  line-height: 1.5;
}
.nc-app .popover .client-alerts li a:hover {
  background: #edf4fa;
}
.nc-app .popover .client-alerts li a:focus-visible {
  outline: 2px solid #0072c6;
  outline-offset: -2px;
  background: #edf4fa;
}
.nc-app .popover .client-alerts li a > i {
  position: static;
  flex: 0 0 1.25rem;
  margin: 0.2rem 0 0;
  color: #376e99;
  font-size: 1.125rem;
}
.nc-app .popover .client-alerts .message {
  margin: 0;
  padding: 0;
  overflow-wrap: anywhere;
}
.nc-app .popover .client-alerts .none {
  padding: 1.25rem;
  color: #536b85;
  text-align: center;
}

/* One presentation for inherited context menus, including unoverridden pages. */
.nc-app .sidebar .card-sidebar {
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--nc-border);
  border-radius: var(--nc-radius);
}
.nc-app .sidebar .card-sidebar > .card-header {
  padding: 1rem 1.125rem;
  background: #f5f8fc;
}
.nc-app .sidebar .card-sidebar .card-title {
  margin: 0;
  padding: 0;
  background: transparent;
  color: var(--nc-ink);
  font-size: 0.9375rem;
  line-height: 1.5;
}
.nc-app .sidebar .card-sidebar .list-group {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0.5rem;
  gap: 0.25rem;
}
.nc-app .sidebar .card-sidebar .list-group-item {
  border: 0;
  border-radius: 0.5rem;
  padding: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.45;
  background: transparent;
  color: #243c56;
  overflow-wrap: anywhere;
}
.nc-app .sidebar .card-sidebar .list-group-item:hover {
  background: #edf3fa;
}
.nc-app .sidebar .card-sidebar .list-group-item.active {
  background: #e5eef9;
  color: #075ca4;
  box-shadow: inset 3px 0 #0873c4;
  font-weight: 650;
}
.nc-app .sidebar .card-sidebar .list-group-item:focus-visible {
  outline: 2px solid var(--nc-action);
  outline-offset: -2px;
}
.nc-app .sidebar .sidebar-menu-item-wrapper {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}
.nc-app .sidebar .sidebar-menu-item-label {
  flex: 1;
  min-width: 0;
}
/* List-wide actions retain native links, IDs and handlers in a compact toolbar. */
.nc-app .nc-list-actions .card-sidebar {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.nc-app .nc-list-actions .card-sidebar > .card-header {
  display: none;
}
.nc-app .nc-list-actions .collapsable-card-body {
  display: block !important;
}
.nc-app .nc-list-actions .card-sidebar .list-group {
  display: flex !important;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.625rem;
  padding: 0;
  background: transparent;
}
.nc-app .nc-list-actions .card-sidebar .list-group-item {
  width: auto;
  border: 1px solid var(--nc-border);
  background: white;
  padding: 0.625rem 0.875rem;
  font-weight: 600;
}
@media (max-width: 575.98px) {
  .nc-app .nc-list-actions .card-sidebar .list-group {
    justify-content: flex-start;
  }
  .nc-app .nc-list-actions .card-sidebar .list-group-item {
    flex: 1 1 12rem;
  }
}
