
.helpdesk-content[data-v-48847e3f] {
  font-size: 0.9rem;
  line-height: 1.6;
  color: #2d3748;
}
.mainmenu-center-white-margin[data-v-48847e3f] {
  text-align: center;
  padding: 0.75rem 0 0.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  margin-top: 0.5rem;
}
.span-button[data-v-48847e3f] {
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  cursor: pointer;
  -webkit-transition: color 0.15s ease;
  transition: color 0.15s ease;
}
.span-button[data-v-48847e3f]:hover {
  color: rgb(255, 105, 0);
}

.lf-field[data-v-cc3f8dd6] {
  margin-bottom: 1rem;
}
.lf-input[data-v-cc3f8dd6] {
  width: 100%;
  font-size: 0.95rem;
  border-radius: 8px !important;
  height: 45px !important;
}
.lf-input[data-v-cc3f8dd6] .k-input-inner {
  height: 100%;
  padding-top: 0;
  padding-bottom: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.lf-input-icon-pad[data-v-cc3f8dd6] {
  padding-left: 2.25rem;
}
.lf-recovery-row[data-v-cc3f8dd6] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  margin-top: 0.5rem;
}
.otp-hint[data-v-cc3f8dd6] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.45rem;
  font-size: 0.82rem;
  line-height: 1.4;
  color: #4a5568;
  background: #f8fafc;
  border-left: 3px solid rgb(0, 73, 118);
  border-radius: 0 6px 6px 0;
  padding: 0.55rem 0.75rem;
  margin-bottom: 0.5rem;
}
.otp-hint[data-v-cc3f8dd6] svg {
  color: rgb(0, 73, 118);
  margin-top: 0.15rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.loginform-max-width-500[data-v-cc3f8dd6] {
  max-width: 500px;
  text-align: justify;
}
.loginform-width-100-input[data-v-cc3f8dd6] {
  width: 100%;
}

/* ── Recovery dialog ── */
.recovery-captcha-wrap[data-v-cc3f8dd6] {
  margin-bottom: 1.25rem;
}
.recovery-toggle[data-v-cc3f8dd6] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  border: 1.5px solid #dce3ea;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 1.25rem;
}
.recovery-toggle-option[data-v-cc3f8dd6] {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 7px;
  padding: 0.6rem 1rem;
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 500;
  color: #4a5568;
  background: #f8f9fb;
  -webkit-transition: background 0.15s ease, color 0.15s ease;
  transition: background 0.15s ease, color 0.15s ease;
  margin: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.recovery-toggle-option + .recovery-toggle-option[data-v-cc3f8dd6] {
  border-left: 1.5px solid #dce3ea;
}
.recovery-toggle-option input[type="radio"][data-v-cc3f8dd6] {
  display: none;
}
.recovery-toggle-option[data-v-cc3f8dd6]:has(input:checked) {
  background: rgb(0, 73, 118);
  color: #ffffff;
}
.recovery-description[data-v-cc3f8dd6] {
  font-size: 0.875rem;
  color: #4a5568;
  line-height: 1.55;
  margin-bottom: 1rem;
}
.recovery-input-wrap[data-v-cc3f8dd6] {
  margin-bottom: 0.5rem;
}
.recovery-input[data-v-cc3f8dd6] {
  width: 100%;
  height: 42px !important;
  border-radius: 8px !important;
  font-size: 0.9rem;
}
.recovery-input[data-v-cc3f8dd6] .k-input-inner {
  height: 100%;
  padding-top: 0;
  padding-bottom: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.recovery-error[data-v-cc3f8dd6] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 7px;
  font-size: 0.82rem;
  color: #c0392b;
  background: #fff5f5;
  border: 1px solid #fcd0cc;
  border-left: 3px solid #e74c3c;
  border-radius: 6px;
  padding: 0.5rem 0.75rem;
  margin-top: 0.75rem;
}

.changepassword-form[data-v-11f88b14] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.25rem 0;
}
.changepassword-fields[data-v-11f88b14] {
  display: grid;
  grid-template-columns: -webkit-max-content -webkit-max-content;
  grid-template-columns: max-content max-content;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-column-gap: 0.85rem;
     -moz-column-gap: 0.85rem;
          column-gap: 0.85rem;
  row-gap: 0.5rem;
}
.changepassword-label[data-v-11f88b14] {
  font-size: 0.85rem;
  font-weight: 500;
  color: #4a5568;
  text-align: right;
  margin: 0;
}
.changepassword-input-col[data-v-11f88b14] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.2rem;
}
.changepassword-input-row[data-v-11f88b14] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
}
.changepassword-input[data-v-11f88b14] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 280px;
          flex: 0 0 280px;
}
.changepassword-eye-icon[data-v-11f88b14] {
  color: grey;
  cursor: pointer;
  scale: 1.15;
}
.changepassword-eye-active[data-v-11f88b14] {
  color: var(--eye-color, grey);
}
.changepassword-hint[data-v-11f88b14] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
  font-size: 0.72rem;
  line-height: 1.2;
}
.changepassword-hint[data-v-11f88b14] svg {
  font-size: 0.75rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.changepassword-hint-warning[data-v-11f88b14] {
  color: #b45309;
}
.changepassword-hint-error[data-v-11f88b14] {
  color: #dc2626;
}
.changepassword-rules-list[data-v-11f88b14] {
  list-style: none;
  padding: 0;
  margin: 1.25rem 0 0;
  display: grid;
  grid-template-columns: repeat(2, -webkit-max-content);
  grid-template-columns: repeat(2, max-content);
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.25rem 1.5rem;
  font-size: 0.78rem;
}
.changepassword-rules-list li[data-v-11f88b14] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
  -webkit-transition: color 0.15s ease;
  transition: color 0.15s ease;
}
.changepassword-rule-icon[data-v-11f88b14] {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-size: 0.75rem;
}
.changepassword-rule-unmet[data-v-11f88b14] {
  color: #9ca3af;
}
.changepassword-rule-met[data-v-11f88b14] {
  color: #16a34a;
}
.changepassword-button-container[data-v-11f88b14] {
  margin-top: 0.5rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.loader-display-flex[data-v-9e74e6bf] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.loader-margin-top-progress[data-v-9e74e6bf] {
  margin-top: 12px;
  font-weight: 600;
  color: white;
}

.btn-danger[data-v-9b3b2690] {
    border: 0;
    padding: 5px;
    outline: 0;
}
.moon-btn-margin-05em[data-v-9b3b2690] {
  margin: 0.5em;
}
.moon-btn-icon-color[data-v-9b3b2690] {
  color: inherit;
}
.no-borders[data-v-9b3b2690] {
    background: none;
    border: none;
    color: inherit;
}

.qr-code-image[data-v-4577073c] {
  width: 200px;
}
.scratch-codes-list[data-v-4577073c] {
  margin-top: 2em;
  line-height: 2em;
}

.toast-container[data-v-81b60377] {
  position: fixed;
  top: 1.25rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: 200000;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.6rem;
  width: 420px;
  max-width: calc(100vw - 2rem);
  pointer-events: none;
}
.toast-item[data-v-81b60377] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1rem 0.85rem 1.1rem;
  border-radius: 10px;
  border-left: 4px solid transparent;
  background: #ffffff;
  -webkit-box-shadow: 0 8px 28px rgba(0, 0, 0, 0.14), 0 2px 6px rgba(0, 0, 0, 0.08);
          box-shadow: 0 8px 28px rgba(0, 0, 0, 0.14), 0 2px 6px rgba(0, 0, 0, 0.08);
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 0.875rem;
  font-weight: 400;
  color: #1a202c;
  pointer-events: all;
  -webkit-font-smoothing: antialiased;
}
.toast-success[data-v-81b60377] { border-left-color: #38a169;
}
.toast-error[data-v-81b60377]   { border-left-color: #e53e3e;
}
.toast-warning[data-v-81b60377] { border-left-color: rgb(255, 105, 0);
}
.toast-info[data-v-81b60377]    { border-left-color: rgb(0, 73, 118);
}
.toast-icon[data-v-81b60377] {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-size: 1rem;
}
.toast-success .toast-icon[data-v-81b60377] { color: #38a169;
}
.toast-error   .toast-icon[data-v-81b60377] { color: #e53e3e;
}
.toast-warning .toast-icon[data-v-81b60377] { color: rgb(255, 105, 0);
}
.toast-info    .toast-icon[data-v-81b60377] { color: rgb(0, 73, 118);
}
.toast-message[data-v-81b60377] {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  line-height: 1.45;
}
.toast-close[data-v-81b60377] {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  background: none;
  border: none;
  cursor: pointer;
  color: #a0aec0;
  padding: 0 0.15rem;
  font-size: 0.85rem;
  line-height: 1;
  -webkit-transition: color 0.15s ease;
  transition: color 0.15s ease;
}
.toast-close[data-v-81b60377]:hover { color: #4a5568;
}

/* Transition animations */
.toast-enter-active[data-v-81b60377] {
  -webkit-transition: all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  transition: all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}
.toast-leave-active[data-v-81b60377] {
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
}
.toast-enter-from[data-v-81b60377] {
  opacity: 0;
  -webkit-transform: translateY(-12px) scale(0.97);
          transform: translateY(-12px) scale(0.97);
}
.toast-leave-to[data-v-81b60377] {
  opacity: 0;
  -webkit-transform: translateY(-6px) scale(0.97);
          transform: translateY(-6px) scale(0.97);
}
.toast-move[data-v-81b60377] {
  -webkit-transition: -webkit-transform 0.25s ease;
  transition: -webkit-transform 0.25s ease;
  transition: transform 0.25s ease;
  transition: transform 0.25s ease, -webkit-transform 0.25s ease;
}

.app-breadcrumb[data-v-2174e3a7] {
  position: sticky;
  top: 0;
  z-index: 1030;
  padding: 0.55rem 1rem;
  background: var(--mk-bg-breadcrumb);
  border-bottom: 1px solid var(--mk-border-default);
  font-size: var(--mk-text-base);
  /* Soft shadow under the bar marks it as a sticky chrome surface,
     mirroring the pc-sticky-wrap shadow under PageComponentNEW. */
  -webkit-box-shadow: var(--mk-shadow-xs);
          box-shadow: var(--mk-shadow-xs);
}
.app-breadcrumb[data-v-2174e3a7] .k-breadcrumb {
  background: transparent;
  border: none;
  font-size: var(--mk-text-base);
  padding: 0;
}
.app-breadcrumb[data-v-2174e3a7] .k-breadcrumb-link,
.app-breadcrumb[data-v-2174e3a7] .k-breadcrumb-root-link,
.app-breadcrumb[data-v-2174e3a7] .k-breadcrumb-item-text {
  font-size: var(--mk-text-base);
  color: var(--mk-text-soft);
  font-weight: var(--mk-weight-medium);
  letter-spacing: 0.005em;
}
.app-breadcrumb[data-v-2174e3a7] .k-breadcrumb-last-item .k-breadcrumb-item-text {
  color: var(--mk-navy);
  font-weight: var(--mk-weight-semibold);
}
.app-breadcrumb[data-v-2174e3a7] .k-breadcrumb-delimiter-icon {
  color: var(--mk-text-fainter);
  opacity: 0.7;
}
.app-breadcrumb[data-v-2174e3a7] .k-breadcrumb-last-item .k-breadcrumb-delimiter-icon {
  display: none;
}
.app-breadcrumb[data-v-2174e3a7] .k-breadcrumb-link,
.app-breadcrumb[data-v-2174e3a7] .k-breadcrumb-root-link {
  cursor: default;
  pointer-events: none;
}

/* Global (unscoped): Kendo Dialog has no maxWidth prop, and its DOM is rendered
   without the parent component's scoped data-attribute, so we constrain it here.
   The id on <kendo-dialog> ends up on the titlebar — :has() finds the dialog
   that contains it. */
.k-dialog:has(> #changePasswordModal) {
  max-width: 520px;
}
.k-dialog:has(> #forced2FaModal) {
  max-width: 760px;
}
.k-dialog:has(> #mfaTypeChoiceModal) {
  max-width: 560px;
}
.k-dialog:has(> #mfaEmailSetupModal) {
  max-width: 560px;
}
.k-dialog:has(> #sessionExpireModal) {
  max-width: 520px;
}
.k-dialog:has(> #sessionExpiredModal) {
  max-width: 520px;
}

/* Bootstrap's `.badge` defaults to `font-weight: 700` — override globally
   so badges across the app render at the regular text weight. */
.badge {
  font-weight: normal;
}

.app-page-title[data-v-4ac8dec6] {
  -webkit-box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05),
    0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03);
          box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05),
    0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03);
}
.app-brand-image[data-v-4ac8dec6] {
  max-width: 100%;
  height: auto;
}
.app-content[data-v-4ac8dec6] {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  height: 100%;
  min-width: 0;
  /* FONDAMENTALE */
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  /* qui ha senso */
  background-color: var(--mk-bg-app);
  --app-breadcrumb-height: var(--mk-breadcrumb-height);
}
.app-menu[data-v-4ac8dec6] {
  overflow-y: auto;
  /* Thin scrollbar that only appears when the menu actually overflows
     (overflow-y: auto already gates visibility on content height). */
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.28) transparent;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  height: 100%;
  width: var(--mk-sidebar-width);
  /* Single-axis gradient: deep at top, brand-navy mid, slightly darker at
     foot. Drops the previous 3-tone diagonal which read as visually busy
     under the user-utility row + brand logo. */
  background:
    linear-gradient(180deg,
      var(--mk-navy-darker) 0%,
      var(--mk-navy) 65%,
      var(--mk-navy-deep) 100%);
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-transition: width var(--mk-duration-slow) var(--mk-ease);
  transition: width var(--mk-duration-slow) var(--mk-ease);
}

/* WebKit / Blink browsers — Firefox uses scrollbar-width / scrollbar-color
   above. Track stays transparent; thumb is a translucent white pill that
   reads against the dark gradient and brightens on hover. */
.app-menu[data-v-4ac8dec6]::-webkit-scrollbar {
  width: 6px;
}
.app-menu[data-v-4ac8dec6]::-webkit-scrollbar-track {
  background: transparent;
}
.app-menu[data-v-4ac8dec6]::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.28);
  border-radius: 3px;
}
.app-menu[data-v-4ac8dec6]::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.45);
}

/* The .col-12 wrapper directly inside .app-menu is misused as a generic block,
   not a grid column. Bootstrap's `.col-12 { flex: 0 0 100% }` would otherwise
   stretch it to 100% of the column-flex parent's height (= full menu),
   creating dead space below the menu items. Horizontal padding is also stripped
   so the menu (and its hover/selected backgrounds) spans the full aside width. */
.app-menu > .col-12[data-v-4ac8dec6] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  padding-left: 0;
  padding-right: 0;
}
.app-layout[data-v-4ac8dec6] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 100vh;
  width: 100%;
  overflow: hidden;
}
.login-wrapper[data-v-4ac8dec6] {
  height: 100vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  overflow: visible !important;
}
div.outer[data-v-4ac8dec6] {
  position: relative;
}
div.outer img[data-v-4ac8dec6] {
  position: absolute;
  right: 0;
  bottom: 0;
}
.iconClass[data-v-4ac8dec6] {
  position: relative;
}
.iconClass span[data-v-4ac8dec6] {
  position: absolute;
  top: -3px;
  right: -0px;
  display: block;
}
input[data-v-4ac8dec6]::-ms-reveal,
input[data-v-4ac8dec6]::-ms-clear {
  display: none;
}
.indent1[data-v-4ac8dec6] {
  margin-left: 8em;
}
.indent2[data-v-4ac8dec6] {
  margin-left: 16em;
}
.alert-custom-danger[data-v-4ac8dec6] {
  border-color: #e6e6e6;
  border-left: 5px solid #C95C54;
  background-color: #fff;
  color: #000;
}
@media (min-width: 768px) {
.alert[data-v-4ac8dec6] {
    border-radius: 6px;
    display: table;
    width: 100%;
    padding-left: 78px;
    position: relative;
    padding-right: 60px;
    border: 1px solid #e6e6e6;
}
.alert .icon[data-v-4ac8dec6] {
    text-align: center;
    width: 58px;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    border: 1px solid #bdbdbd;
    padding-top: 15px;
    border-radius: 6px 0 0 6px;
}
.alert .icon i[data-v-4ac8dec6] {
    font-size: 20px;
    color: #fff;
    left: 21px;
    margin-top: -10px;
    position: absolute;
    top: 50%;
}
.alert .icon img[data-v-4ac8dec6] {
    font-size: 20px;
    color: #fff;
    left: 18px;
    margin-top: -10px;
    position: absolute;
    top: 50%;
}
.alert.alert-custom-danger .icon[data-v-4ac8dec6],
  .alert.alert-custom-danger .icon[data-v-4ac8dec6]:after {
    border-color: none;
    background: #C95C54;
}
}
.app-height-100[data-v-4ac8dec6] {
  height: 100%;
}
.app-menu-collapsed[data-v-4ac8dec6] {
  width: var(--mk-sidebar-collapsed-width);
  overflow: hidden;
}
.app-menu-collapsed .brand-logo[data-v-4ac8dec6] {
  display: none;
}
.app-menu-collapsed .app-text-center[data-v-4ac8dec6] {
  display: none;
}
.app-menu-collapsed .app-no-padding[data-v-4ac8dec6] {
  display: none;
}
.app-menu-collapsed .app-text-center-no-margin[data-v-4ac8dec6] {
  padding: 0.5rem 0;
  width: 56px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.app-menu-collapsed .col-12[data-v-4ac8dec6] {
  padding-left: 0;
  padding-right: 0;
  width: 56px;
}
.app-menu-collapsed .app-user-menu-row[data-v-4ac8dec6] {
  margin-left: 0;
  margin-right: 0;
  width: 56px;
}
.app-menu-collapsed .navbar-toggler[data-v-4ac8dec6]:not(#toggleMenu) {
  display: none;
}
.app-menu-collapsed #toggleMenu[data-v-4ac8dec6] {
  width: 40px;
  height: 40px;
}

/* ── Mobile overlay sidebar (<992px) ──────────────────────────────── */
.app-menu.app-menu-overlay[data-v-4ac8dec6] {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(320px, 88vw);
  z-index: 1040;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
  -webkit-transition: -webkit-transform 0.25s ease;
  transition: -webkit-transform 0.25s ease;
  transition: transform 0.25s ease;
  transition: transform 0.25s ease, -webkit-transform 0.25s ease;
  -webkit-box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
          box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
}
.app-menu.app-menu-overlay.app-menu-overlay-open[data-v-4ac8dec6] {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}
.app-mode-mobile .app-menu.app-menu-overlay[data-v-4ac8dec6]:not(.app-menu-overlay-open) {
  pointer-events: none;
}
.app-overlay-backdrop[data-v-4ac8dec6] {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  z-index: 1035;
  -webkit-animation: appOverlayFadeIn-4ac8dec6 0.18s ease;
          animation: appOverlayFadeIn-4ac8dec6 0.18s ease;
}
@-webkit-keyframes appOverlayFadeIn-4ac8dec6 {
from { opacity: 0;
}
to { opacity: 1;
}
}
@keyframes appOverlayFadeIn-4ac8dec6 {
from { opacity: 0;
}
to { opacity: 1;
}
}
.app-mode-mobile.app-overlay-open[data-v-4ac8dec6] {
  overflow: hidden;
}

/* ── Mobile hamburger ─────────────────────────────────────────────── */
.app-hamburger[data-v-4ac8dec6] {
  position: sticky;
  top: 0.5rem;
  left: 0.5rem;
  z-index: 30;
  -ms-flex-item-align: start;
      align-self: flex-start;
  margin: 0.5rem;
  padding: 0.5rem 0.75rem;
  background: var(--mk-surface);
  border: 1px solid var(--mk-border-default);
  border-radius: var(--mk-radius-lg);
  color: var(--mk-navy);
  cursor: pointer;
  font-size: 1.05rem;
  line-height: 1;
  -webkit-transition: background var(--mk-transition-fast),
              border-color var(--mk-transition-fast);
  transition: background var(--mk-transition-fast),
              border-color var(--mk-transition-fast);
}
.app-hamburger[data-v-4ac8dec6]:hover {
  background: var(--mk-bg-muted);
  border-color: var(--mk-border-strong);
}
.app-hamburger[data-v-4ac8dec6]:focus-visible {
  outline: none;
  -webkit-box-shadow: var(--mk-focus-ring);
          box-shadow: var(--mk-focus-ring);
}
.app-menu-toggler[data-v-4ac8dec6] {
  padding-left: 9px;
  padding-top: 10px;
}
.app-brand-image[data-v-4ac8dec6] {
  max-width: 220px;
  max-height: 120px;
  padding: 0.25rem 0;
}
.brand-logo[data-v-4ac8dec6] {
  padding: 1rem 1rem 0.85rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  text-align: center;
}
[data-v-4ac8dec6] .navbar-toggler {
  background: transparent;
  border: none;
  border-radius: 8px;
  padding: 0;
  width: 34px;
  height: 34px;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
  line-height: 1;
}
[data-v-4ac8dec6] .navbar-toggler:hover {
  background: rgba(255, 255, 255, 0.14);
}
[data-v-4ac8dec6] #logout {
  margin-left: 0.25rem;
}
[data-v-4ac8dec6] .navbarlink {
  color: rgba(255, 255, 255, 0.85);
}
[data-v-4ac8dec6] .navbarlink:hover {
  color: #ffffff;
}
.app-user-menu-row[data-v-4ac8dec6] {
  margin: 0;
  padding: 0.35rem 0 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  margin-bottom: 0.25rem;
}
.app-text-center-no-margin[data-v-4ac8dec6] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.15rem;
  padding: 0.4rem 0.5rem;
  margin-bottom: 0;
}
.app-text-center[data-v-4ac8dec6] {
  text-align: center;
  padding-bottom: 0.5rem;
}
.app-icon-size-25[data-v-4ac8dec6] {
  width: 18px;
  height: 18px;
}
.app-icon-orangered[data-v-4ac8dec6] {
  color: orangered;
}
.app-icon-white[data-v-4ac8dec6] {
  color: white;
}
.app-icon-green[data-v-4ac8dec6] {
  color: green;
}
.app-icon-orange[data-v-4ac8dec6] {
  color: orange;
}
.app-icon-red[data-v-4ac8dec6] {
  color: red;
}
.app-badge-small[data-v-4ac8dec6] {
  padding: .15em .25em;
  font-size: 12px;
}
.app-connected-user[data-v-4ac8dec6] {
  display: block;
  font-size: 0.8rem;
  font-weight: 500;
  text-align: center;
  color: #ffffff;
  padding: 0 0 0.1rem;
  margin-top: 0;
}
.app-connected-user-det[data-v-4ac8dec6] {
  display: block;
  font-size: 0.68rem;
  text-align: center;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 0;
  padding-bottom: 0;
}
.app-search-container[data-v-4ac8dec6] {
  text-align: center;
  margin-bottom: 25px;
}
.app-search-input[data-v-4ac8dec6] {
  width: 100%;
}
.app-no-padding[data-v-4ac8dec6] {
  padding: 0;
}
.app-login-container[data-v-4ac8dec6] {
  margin-right: 1rem;
}
.app-login-table[data-v-4ac8dec6] {
  width: 80%;
  margin-top: 10rem;
  border: 0;
  font-size: 1.3rem;
}
.app-icon-margin-left-2em[data-v-4ac8dec6] {
  margin-left: 2em;
}
.app-margin-top-1em[data-v-4ac8dec6] {
  margin-top: 1em;
}
.app-checkbox-scale[data-v-4ac8dec6] {
  -webkit-transform: scale(1.25);
          transform: scale(1.25);
}
.app-2fa-row-margin[data-v-4ac8dec6] {
  margin: 2em 0 2em 0;
}
.app-form-margin-bottom[data-v-4ac8dec6] {
  margin-bottom: 2em;
}
.app-scratch-codes-list[data-v-4ac8dec6] {
  margin-top: 2em;
  line-height: 2em;
}
.app-warning-message-center[data-v-4ac8dec6] {
  margin: 25px;
  text-align: center;
}
.body-login[data-v-4ac8dec6] {
  height: 100%;
  width: 100%;
  font-family: var(--mk-font-base);
  /* Subtler diagonal than the previous 3-tone — the deeper top-left to
     mid-navy at right reads as a calmer, more institutional backdrop
     for the login card without changing the overall hue family. */
  background: var(--mk-gradient-login);
  overflow-x: hidden;
}
.body-login[data-v-4ac8dec6]::before {
  /* Faint radial highlight to soften the centre of the gradient — adds
     subtle depth without becoming decorative. */
  content: "";
  position: fixed;
  inset: 0;
  background:
    radial-gradient(circle at 50% 35%, rgba(255, 255, 255, 0.04) 0%, transparent 55%);
  pointer-events: none;
}

/* ── 2FA forced setup dialog ── */
.twofa-intro[data-v-4ac8dec6] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.85rem;
  padding: 0.9rem 1rem;
  margin-bottom: 1rem;
  background: #f0f7ff;
  border-left: 3px solid rgb(0, 73, 118);
  border-radius: 0 6px 6px 0;
  color: #2d3748;
}
.twofa-intro-icon[data-v-4ac8dec6] {
  color: rgb(0, 73, 118);
  font-size: 1.25rem;
  margin-top: 0.15rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.twofa-intro-text[data-v-4ac8dec6] {
  font-size: 0.9rem;
  line-height: 1.45;
}
.twofa-intro-text[data-v-4ac8dec6] p {
  margin: 0;
}
.twofa-intro-text[data-v-4ac8dec6] p + p {
  margin-top: 0.35rem;
}

/* Numbered steps list */
.twofa-steps[data-v-4ac8dec6] {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 0;
}
.twofa-step[data-v-4ac8dec6] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.85rem;
  padding: 0.85rem 0;
}
.twofa-step + .twofa-step[data-v-4ac8dec6] {
  border-top: 1px solid #e2e8f0;
}
.twofa-step-number[data-v-4ac8dec6] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 28px;
          flex: 0 0 28px;
  width: 28px;
  height: 28px;
  background: rgb(0, 73, 118);
  color: #ffffff;
  font-size: 0.85rem;
  font-weight: 600;
  border-radius: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 0.05rem;
}
.twofa-step-body[data-v-4ac8dec6] {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  min-width: 0;
}
.twofa-step-title[data-v-4ac8dec6] {
  font-size: 0.95rem;
  font-weight: 600;
  color: rgb(0, 73, 118);
  margin: 0 0 0.2rem;
  letter-spacing: 0.01em;
}
.twofa-step-desc[data-v-4ac8dec6] {
  font-size: 0.85rem;
  color: #4a5568;
  margin: 0 0 0.5rem;
  line-height: 1.45;
}
.twofa-app-grid[data-v-4ac8dec6] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  padding: 0.25rem 0 0;
  font-size: 0.85rem;
}
.twofa-app-col[data-v-4ac8dec6] strong {
  color: rgb(0, 73, 118);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}
.twofa-app-col[data-v-4ac8dec6] p {
  margin: 0.15rem 0;
}
.twofa-app-col[data-v-4ac8dec6] br + br {
  display: none;
}
.twofa-app-col[data-v-4ac8dec6] a {
  color: rgb(0, 73, 118);
  text-decoration: none;
  -webkit-transition: color 0.15s ease;
  transition: color 0.15s ease;
}
.twofa-app-col[data-v-4ac8dec6] a:hover {
  color: rgb(255, 105, 0);
  text-decoration: underline;
}
.twofa-qr-wrap[data-v-4ac8dec6] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0.25rem 0;
}

/* Override MFAInfoComponent's Bootstrap .row/.col-4 layout so the QR centers.
   MFAInfoComponent renders a sibling empty .col after the .row when the
   scratch-codes button is hidden — neutralize it so it doesn't shift layout. */
.twofa-qr-wrap[data-v-4ac8dec6] > .col {
  display: none;
}
.twofa-qr-wrap[data-v-4ac8dec6] .row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 0;
  width: 100%;
}
.twofa-qr-wrap[data-v-4ac8dec6] .col-4 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: auto;
  max-width: none;
  padding: 0;
}
.twofa-qr-wrap[data-v-4ac8dec6] .qr-code-image {
  width: 180px;
  height: 180px;
  padding: 0.5rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}
.twofa-otp-row[data-v-4ac8dec6] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.75rem;
  padding: 0.25rem 0 0;
}
.twofa-otp-label[data-v-4ac8dec6] {
  font-size: 0.85rem;
  font-weight: 500;
  color: #4a5568;
  margin: 0;
}
.twofa-otp-input[data-v-4ac8dec6] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 200px;
          flex: 0 0 200px;
  letter-spacing: 0.15em;
  text-align: center;
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
}

/* ── Change-password dialog intro card ── */
.change-password-intro[data-v-4ac8dec6] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.85rem;
  padding: 0.9rem 1rem;
  margin-bottom: 1rem;
  background: #f0f7ff;
  border-left: 3px solid rgb(0, 73, 118);
  border-radius: 0 6px 6px 0;
  color: #2d3748;
}
.change-password-intro-icon[data-v-4ac8dec6] {
  color: rgb(0, 73, 118);
  font-size: 1.25rem;
  margin-top: 0.15rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.change-password-intro-text[data-v-4ac8dec6] {
  font-size: 0.9rem;
  line-height: 1.45;
}
.change-password-intro-text[data-v-4ac8dec6] br {
  margin-bottom: 0.15rem;
}
.session-expire-intro[data-v-4ac8dec6] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.85rem;
  padding: 0.9rem 1rem;
  margin-bottom: 1rem;
  background: #fff8e6;
  border-left: 3px solid #c97a00;
  border-radius: 0 6px 6px 0;
  color: #2d3748;
}
.session-expire-intro-icon[data-v-4ac8dec6] {
  color: #c97a00;
  font-size: 1.25rem;
  margin-top: 0.15rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.session-expire-intro-text[data-v-4ac8dec6] {
  font-size: 0.9rem;
  line-height: 1.45;
}
.session-expired-intro[data-v-4ac8dec6] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.85rem;
  padding: 0.9rem 1rem;
  margin-bottom: 1rem;
  background: #fdecec;
  border-left: 3px solid #b3261e;
  border-radius: 0 6px 6px 0;
  color: #2d3748;
}
.session-expired-intro-icon[data-v-4ac8dec6] {
  color: #b3261e;
  font-size: 1.25rem;
  margin-top: 0.15rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.session-expired-intro-text[data-v-4ac8dec6] {
  font-size: 0.9rem;
  line-height: 1.45;
}

/* ── Panelbar: full navy treatment ── */
[data-v-4ac8dec6] .k-panelbar {
  background: transparent !important;
  border: none !important;
}
[data-v-4ac8dec6] .k-panelbar > .k-panelbar-header,[data-v-4ac8dec6] .k-panelbar > .k-item {
  background: transparent !important;
  border: none !important;
}
[data-v-4ac8dec6] .k-panelbar > .k-panelbar-header > .k-link,[data-v-4ac8dec6] .k-panelbar > .k-item > .k-link {
  background: transparent !important;
  color: #ffffff !important;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  padding: 0.72rem 1.1rem !important;
  border: none !important;
  border-radius: 0 !important;
  -webkit-transition: background 0.15s ease, color 0.15s ease;
  transition: background 0.15s ease, color 0.15s ease;
}
[data-v-4ac8dec6] .k-panelbar > .k-panelbar-header > .k-link:hover,[data-v-4ac8dec6] .k-panelbar > .k-item > .k-link:hover {
  background: rgba(255, 255, 255, 0.09) !important;
  color: #ffffff !important;
}
[data-v-4ac8dec6] .k-panelbar .k-link .k-icon,[data-v-4ac8dec6] .k-panelbar .k-link .k-svg-icon {
  color: rgba(255, 255, 255, 0.65) !important;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
[data-v-4ac8dec6] .k-panelbar .k-group,[data-v-4ac8dec6] .k-panelbar .k-panelbar-group {
  background: rgba(0, 0, 0, 0.15) !important;
  border: none !important;
}

/* Sub-items (k-level-1) */
[data-v-4ac8dec6] .k-panelbar .k-panelbar-group > .k-panelbar-item > .k-link,[data-v-4ac8dec6] .k-panelbar .k-group > .k-item > .k-link,[data-v-4ac8dec6] .k-panelbar .k-level-1 > .k-link {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.92) !important;
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  padding: 0.52rem 1rem 0.52rem 2rem !important;
  border: none !important;
  -webkit-transition: background 0.15s ease, color 0.15s ease;
  transition: background 0.15s ease, color 0.15s ease;
}
[data-v-4ac8dec6] .k-panelbar .k-panelbar-group > .k-panelbar-item > .k-link:hover,[data-v-4ac8dec6] .k-panelbar .k-group > .k-item > .k-link:hover,[data-v-4ac8dec6] .k-panelbar .k-level-1 > .k-link:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
}

/* Selected state — top level and sub-level */
[data-v-4ac8dec6] .k-panelbar > .k-panelbar-header > .k-link.k-selected,[data-v-4ac8dec6] .k-panelbar > .k-item > .k-link.k-selected,[data-v-4ac8dec6] .k-panelbar > .k-panelbar-header > .k-link.k-state-selected,[data-v-4ac8dec6] .k-panelbar > .k-item > .k-link.k-state-selected,[data-v-4ac8dec6] .k-panelbar .k-panelbar-group > .k-panelbar-item > .k-link.k-selected,[data-v-4ac8dec6] .k-panelbar .k-level-1 > .k-link.k-selected,[data-v-4ac8dec6] .k-panelbar .k-level-1 > .k-link.k-state-selected {
  background: rgba(255, 105, 0, 0.18) !important;
  color: #ffffff !important;
  border-color: transparent !important;
  border-left: 3px solid rgb(255, 105, 0) !important;
}
[data-v-4ac8dec6] .k-panelbar > .k-panelbar-header + .k-panelbar-header,[data-v-4ac8dec6] .k-panelbar > .k-item + .k-item {
  border-top-width: 0 !important;
  border-bottom-width: 0 !important;
}
[data-v-4ac8dec6] .k-panelbar-item-text {
  padding-left: 0.35rem;
}

/* ── Page wrapper ── */
.module-page[data-v-f826c352] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100%;
}

/* ── Sticky wrapper (title + action bar together) ── */
.pc-sticky-wrap[data-v-f826c352] {
  position: sticky;
  top: var(--app-breadcrumb-height, 0px);
  background: var(--mk-surface);
  border-bottom: 1px solid var(--mk-border-default);
  -webkit-box-shadow: var(--mk-shadow-sticky);
          box-shadow: var(--mk-shadow-sticky);
  z-index: 1020;
}

/* ── Title row ── */
.pc-header[data-v-f826c352] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.65rem;
  padding: 0.95rem 1.5rem 0.65rem;
}

/* ── Action bar (buttons below header) ── */
.pc-action-bar[data-v-f826c352] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.6rem 1.5rem 0.7rem;
  border-top: 1px solid var(--mk-border-subtle);
  background: var(--mk-bg-muted);
}

/* Pushes any subsequent buttons to the far right of the action bar, providing the
   primary-action visual hierarchy. Buttons with `position: 'right'` in their config
   land after this spacer; everything else stays left-aligned. */
.pc-action-bar-spacer[data-v-f826c352] {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  min-width: 0;
}

/* ── Summary slot (between header and content) ──
   Hosts the optional KPI strip + status timeline rendered by detail pages
   (see SummaryStrip.vue, StatusTimeline.vue). The inner wrapper matches
   the `.module` width clamp so the summary aligns with form sections below. */
.pc-summary[data-v-f826c352] {
  background: transparent;
  padding: 1rem 1.5rem 0;
}

/* Match `.module` clamp so the hero card + status timeline align with the
   form below, never extending past it. The `padding-inline: 1rem` mirrors
   Bootstrap's `.container` gutter so the inner cards line up exactly with
   the form section card. The flex `gap: 1rem` provides the standardised
   vertical rhythm between the read-only notice, hero card, and timeline. */
.pc-summary-inner[data-v-f826c352] {
  max-width: clamp(720px, 92%, 1200px);
  margin-inline: auto;
  padding-inline: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
}

/* ── Title area ── */
.pc-title-area[data-v-f826c352] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
}

/* ── Hero header (opt-in via avatarInitials / chips props) ── */
.pc-sticky-wrap--hero[data-v-f826c352] {
  background:
    linear-gradient(135deg, var(--mk-navy-soft) 0%, rgba(0, 73, 118, 0) 60%),
    var(--mk-surface);
}
.pc-sticky-wrap--hero .pc-header[data-v-f826c352] {
  padding: 1.1rem 1.5rem 0.9rem;
}
.pc-sticky-wrap--hero .pc-title[data-v-f826c352] {
  font-size: var(--mk-text-2xl);
  font-weight: var(--mk-weight-semibold);
  letter-spacing: -0.01em;
  line-height: var(--mk-leading-tight);
  color: var(--mk-navy);
}
.pc-avatar[data-v-f826c352] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--mk-navy) 0%, var(--mk-navy-bright) 100%);
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: var(--mk-text-inverse);
  -webkit-box-shadow: 0 3px 10px rgba(0, 73, 118, 0.22),
              inset 0 0 0 2px rgba(255, 255, 255, 0.08);
          box-shadow: 0 3px 10px rgba(0, 73, 118, 0.22),
              inset 0 0 0 2px rgba(255, 255, 255, 0.08);
}
.pc-avatar-initials[data-v-f826c352] {
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.pc-chips[data-v-f826c352] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.4rem;
}
.pc-chip[data-v-f826c352] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
  padding: 0.22rem 0.7rem;
  background: var(--mk-bg-muted);
  border: 1px solid var(--mk-border-default);
  color: var(--mk-text-default);
  font-size: var(--mk-text-sm);
  font-weight: var(--mk-weight-medium);
  border-radius: var(--mk-radius-pill);
  line-height: 1.4;
  letter-spacing: 0.005em;
}
.pc-chip-icon[data-v-f826c352] {
  font-size: var(--mk-text-xs);
  color: var(--mk-text-muted);
}
.pc-chip--success[data-v-f826c352] {
  background: var(--mk-success-chip-bg);
  border-color: var(--mk-success-chip-border);
  color: var(--mk-success-chip-text);
}
.pc-chip--success .pc-chip-icon[data-v-f826c352] {
  color: var(--mk-success);
}
.pc-chip--warning[data-v-f826c352] {
  background: var(--mk-warning-bg);
  border-color: var(--mk-warning-border);
  color: var(--mk-warning-text);
}
.pc-chip--warning .pc-chip-icon[data-v-f826c352] {
  color: var(--mk-orange);
}
.pc-title-row[data-v-f826c352] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.5rem;
}
.pc-title[data-v-f826c352] {
  font-size: var(--mk-text-lg);
  font-weight: var(--mk-weight-semibold);
  color: var(--mk-navy);
  letter-spacing: 0.005em;
  line-height: 1.3;
}
.pc-subtitle[data-v-f826c352] {
  font-size: var(--mk-text-sm);
  color: var(--mk-text-muted);
  font-weight: var(--mk-weight-regular);
  margin-top: 0.15rem;
  line-height: 1.4;
}

/* ── Audit row ── */
.pc-audit[data-v-f826c352] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.75rem;
  font-size: var(--mk-text-xs);
  color: var(--mk-text-fainter);
  margin-top: 0.3rem;
}
.pc-audit-link[data-v-f826c352] {
  color: var(--mk-navy);
  cursor: pointer;
  font-weight: var(--mk-weight-medium);
  -webkit-transition: color var(--mk-transition-fast);
  transition: color var(--mk-transition-fast);
}
.pc-audit-link[data-v-f826c352]:hover {
  color: var(--mk-navy-deep);
  text-decoration: underline;
}

/* ── Status badges ── */
.pc-badge[data-v-f826c352] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.3rem;
  font-size: var(--mk-text-sm);
  font-weight: var(--mk-weight-semibold);
  padding: 0.22rem 0.7rem;
  border-radius: var(--mk-radius-pill);
  cursor: pointer;
  -webkit-transition: opacity var(--mk-transition-fast),
              -webkit-transform var(--mk-duration-fast) var(--mk-ease);
  transition: opacity var(--mk-transition-fast),
              -webkit-transform var(--mk-duration-fast) var(--mk-ease);
  transition: opacity var(--mk-transition-fast),
              transform var(--mk-duration-fast) var(--mk-ease);
  transition: opacity var(--mk-transition-fast),
              transform var(--mk-duration-fast) var(--mk-ease),
              -webkit-transform var(--mk-duration-fast) var(--mk-ease);
  white-space: nowrap;
  letter-spacing: 0.005em;
}
.pc-badge[data-v-f826c352]:hover {
  opacity: 0.92;
  -webkit-transform: translateY(-1px);
          transform: translateY(-1px);
}
.pc-badge-success[data-v-f826c352] {
  background: var(--mk-success-chip-bg);
  color: var(--mk-success-chip-text);
  border: 1px solid var(--mk-success-chip-border);
}
.pc-badge-danger[data-v-f826c352] {
  background: var(--mk-danger-bg);
  color: var(--mk-danger);
  border: 1px solid var(--mk-danger-border);
}

/* ── Dropdown ── */
.pc-dropdown[data-v-f826c352] {
  position: relative;
}
.pc-dropdown-menu[data-v-f826c352] {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  background: var(--mk-surface);
  border: 1px solid var(--mk-border-default);
  border-radius: var(--mk-radius-lg);
  -webkit-box-shadow: var(--mk-shadow-popover);
          box-shadow: var(--mk-shadow-popover);
  min-width: 200px;
  z-index: 200;
  padding: 0.35rem 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.pc-dropdown-item[data-v-f826c352] {
  width: 100%;
  border-radius: 0 !important;
  -webkit-box-pack: start !important;
      -ms-flex-pack: start !important;
          justify-content: flex-start !important;
}

/* ── Content area ── */
.pc-content[data-v-f826c352] {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding: 1rem 1.5rem 1.5rem;
}
.module[data-v-f826c352] {
  max-width: clamp(720px, 92%, 1200px);
  margin-inline: auto;
}
.module.container[data-v-f826c352] {
  width: 100%;
  padding-inline: 1rem;
}

/* ── Narrow-screen densification ── */
@media (max-width: 991.98px) {
.pc-content[data-v-f826c352] { padding: 1rem;
}
.pc-action-bar[data-v-f826c352] { gap: 0.4rem;
}
.pc-action-bar[data-v-f826c352] .k-button { padding-inline: 0.6rem;
}
.pc-dropdown-menu[data-v-f826c352] { right: auto; left: 0; min-width: 180px;
}
}
@media (max-width: 575.98px) {
.pc-content[data-v-f826c352] { padding: 0.75rem;
}
.pc-header[data-v-f826c352] { gap: 0.4rem;
}
}

/* ── Non-editable state ──
   Two-pronged barrier when :isEditable="false":
   1. The :inert attribute on the .module wrapper (set by Vue) blocks
      every form of interaction — clicks, keyboard, focus, screen
      readers — at the browser level. This is the hard barrier; even
      Kendo widgets that render their own internals can't bypass it.
   2. Visual cue (this CSS): pointer-events: none kills hover styles
      on disabled controls, and a soft opacity on form widgets makes
      the read-only state legible at a glance. Section titles and
      help text stay at full opacity so the page is still readable. */
.non-editable[data-v-f826c352] {
  pointer-events: none;
}

/* Restore pointer-events for overlayed dialogs/popups that happen to be
   rendered inside the non-editable subtree. They sit *on top of* the
   read-only page and must stay interactive (otherwise warning/confirmation
   dialogs become un-closable — see the impersonate warning on AML PF). */
.non-editable[data-v-f826c352] .k-dialog-wrapper,
.non-editable[data-v-f826c352] .k-dialog-wrapper *,
.non-editable[data-v-f826c352] .k-window,
.non-editable[data-v-f826c352] .k-window *,
.non-editable[data-v-f826c352] .k-animation-container,
.non-editable[data-v-f826c352] .k-animation-container *,
.non-editable[data-v-f826c352] [role="dialog"],
.non-editable[data-v-f826c352] [role="dialog"] * {
  pointer-events: auto;
}
.non-editable[data-v-f826c352] input:not([type="hidden"]),
.non-editable[data-v-f826c352] textarea,
.non-editable[data-v-f826c352] select,
.non-editable[data-v-f826c352] .k-input,
.non-editable[data-v-f826c352] .k-textbox,
.non-editable[data-v-f826c352] .k-checkbox,
.non-editable[data-v-f826c352] .k-switch,
.non-editable[data-v-f826c352] .k-slider,
.non-editable[data-v-f826c352] .k-multiselect,
.non-editable[data-v-f826c352] .k-dropdownlist,
.non-editable[data-v-f826c352] .k-numerictextbox,
.non-editable[data-v-f826c352] .k-button,
.non-editable[data-v-f826c352] .k-upload {
  opacity: 0.7;
  -webkit-filter: saturate(0.7);
          filter: saturate(0.7);
}
.is-disabled[data-v-f826c352] {
  opacity: 0.75;
}

/* ── Warning dialog intro card ──────────────────────────────────
   Project-wide pattern: a small accented info card replaces the
   floating icon-and-paragraph layout. Two variants:
    • info  — navy left-border on light-blue background
    • alert — amber left-border on light-yellow background
   The icon sits flush-left, text wraps next to it, and the
   accent border carries the meaning at a glance. */
.pc-warning-intro[data-v-f826c352] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.85rem;
  padding: 0.95rem 1.05rem;
  border-radius: 0 6px 6px 0;
  margin: 0.25rem 0 0.25rem;
}
.pc-warning-intro--info[data-v-f826c352] {
  background: #f0f7ff;
  border-left: 3px solid rgb(0, 73, 118);
}
.pc-warning-intro--alert[data-v-f826c352] {
  background: #fffbea;
  border-left: 3px solid #d69e2e;
}
.pc-warning-intro-icon[data-v-f826c352] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  font-size: 1.35rem;
  margin-top: 0.05rem;
}
.pc-warning-intro--info .pc-warning-intro-icon[data-v-f826c352] {
  color: rgb(0, 73, 118);
}
.pc-warning-intro--alert .pc-warning-intro-icon[data-v-f826c352] {
  color: #d69e2e;
}
.pc-warning-intro-text[data-v-f826c352] {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  font-size: 0.9rem;
  color: #2d3748;
  line-height: 1.55;
  word-break: break-word;
}
.pc-warning-intro-text[data-v-f826c352] strong {
  color: rgb(0, 73, 118);
  font-weight: 600;
}

/* ── Icon margin util ── */
.icon-margin-5[data-v-f826c352] {
  margin-right: 5px;
  margin-left: 5px;
}

/* Width / max-width for the global generalWarning dialog. kendo-dialog
   has no maxWidth prop, so the upper bound is set on the dialog wrapper
   here. Kendo renders the dialog DOM outside the parent component's
   scoped scope, so this block is intentionally unscoped. */
.k-dialog:has(> #generalWarning) {
  max-width: 560px;
  max-height: 90vh;
}

.customdatepicker-width-230[data-v-72921974] {
  width: 230px;
}

/* ─────────────────────────────────────────────────────────────────────
   DocumentUploader — empty-zone-first card
   ─────────────────────────────────────────────────────────────────────
   Layout:
     .docuploader-card (root)
       .docuploader-alert?            slim banner on upload errors
       EMPTY STATE:
         .docuploader-typestrip?      slim "Tipo: [dropdown]" strip
                                      (selectable doc type only)
         .docuploader-drop            horizontal click-or-drag zone
       FILLED STATE:
         .docuploader-doc             compact horizontal file row mirroring
                                      ArchivedDocsList .archived-doc
           .docuploader-doc-icon      tinted PDF tile (2.4rem square)
           .docuploader-doc-body      filename button + inline <dl> meta
           .docuploader-doc-actions   icon-only replace/archive/delete
         .docuploader-meta            editable form grid (DropDownList,
                                      issuer, number, dates, description)
       <input ref="file">             hidden — invoked by drop + replace

   Border idiom is lifted from `.evaluator-question-row` in
   public/css/style.css:2082-2099 — sharp left edge so the 3px navy rail
   sits flush, rounded right side, thin slate outline on the other three
   sides, hover transitions the rail to full navy on devices that have
   a real hover (skipped on touch).
   ─────────────────────────────────────────────────────────────────── */

/* Legacy class kept for back-compat. The 10-px right margin it used to
   apply has been dropped so the card now extends to the full width of
   its parent `.multidoc-list`, aligning its right edge with the
   `.multidoc-header` above. */
.docuploader-margin-right-10px[data-v-d6a3fcd9] { margin-right: 0;
}

/* ── Card root ─────────────────────────────────────────────────────── */
/* `container-type: inline-size` turns the card into a CSS Containment
   context so all internal breakpoints below key off the card's OWN
   width (`@container docuploader (max-width: …)`) — not the viewport.
   This fixes the Quote-dialog glitch where a card embedded in a 480 px
   dialog kept rendering its wide 2-pane layout because the viewport
   was still desktop-wide. */
.docuploader-card[data-v-d6a3fcd9] {
  position: relative;
  container-type: inline-size;
  container-name: docuploader;
  background: var(--mk-surface);
  border: 1px solid var(--mk-divider);
  border-left: 3px solid var(--mk-navy-line);
  border-radius: 0 var(--mk-radius-lg) var(--mk-radius-lg) 0;
  padding: 1rem 1.1rem 1.05rem;
  -webkit-transition: border-color var(--mk-transition-base),
              background    var(--mk-transition-base);
  transition: border-color var(--mk-transition-base),
              background    var(--mk-transition-base);
}

/* Empty-state remove (×) button — top-right ghost button that drops the
   whole slot before any commitment is made. Bypasses the delete-
   confirmation dialog used in filled state because there's no file to
   protect; the parent MultiDocumentUploader simply splices the slot out
   on `selfDelete`. Sized to align with the card's top padding so it
   visually sits in the corner without overlapping the typestrip text. */
.docuploader-empty-remove[data-v-d6a3fcd9] {
  position: absolute;
  top: 0.4rem;
  right: 0.5rem;
  z-index: 1;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 1.6rem;
  height: 1.6rem;
  padding: 0;
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--mk-radius-sm);
  color: var(--mk-text-fainter);
  font-size: 0.9rem;
  line-height: 1;
  cursor: pointer;
  -webkit-transition: background var(--mk-transition-fast),
              border-color var(--mk-transition-fast),
              color var(--mk-transition-fast);
  transition: background var(--mk-transition-fast),
              border-color var(--mk-transition-fast),
              color var(--mk-transition-fast);
}
.docuploader-empty-remove[data-v-d6a3fcd9]:hover {
  background: var(--mk-danger-bg);
  border-color: var(--mk-danger-border);
  color: var(--mk-danger);
}
.docuploader-empty-remove[data-v-d6a3fcd9]:focus-visible {
  outline: 0;
  border-color: var(--mk-danger);
  -webkit-box-shadow: var(--mk-focus-ring-danger);
          box-shadow: var(--mk-focus-ring-danger);
}

/* When the empty-state × button is present, reserve a strip on the
   right of the empty-state children so the absolutely-positioned button
   never overlays the typestrip dropdown or the drop-zone's right-edge
   hint. The reservation only kicks in when the button is actually
   rendered (showDelete && editable). */
.docuploader-card:has(.docuploader-empty-remove) .docuploader-typestrip[data-v-d6a3fcd9],
.docuploader-card:has(.docuploader-empty-remove) .docuploader-drop[data-v-d6a3fcd9] {
  padding-right: 2rem;
}
@media (hover: hover) {
.docuploader-card[data-v-d6a3fcd9]:not(.docuploader-card--filled):not(.docuploader-card--expired):not(.docuploader-card--warning):not(.docuploader-card--alert):hover {
    border-left-color: var(--mk-navy);
}
}
.docuploader-card--filled[data-v-d6a3fcd9]  { border-left-color: var(--mk-success);         background: var(--mk-success-bg);
}
.docuploader-card--readonly[data-v-d6a3fcd9]{ opacity: 0.9;
}
.docuploader-card--expired[data-v-d6a3fcd9] { border-left-color: var(--mk-danger);          background: var(--mk-danger-bg);
}
.docuploader-card--warning[data-v-d6a3fcd9] { border-left-color: var(--mk-warning-strong);  background: var(--mk-warning-bg);
}
.docuploader-card--alert[data-v-d6a3fcd9]   { border-left-color: var(--mk-danger);          background: var(--mk-danger-bg);
}

/* Filled cards tighten their padding to match `.archived-doc`
   proportions (0.75rem 0.9rem) so the outer card reads as a single
   ArchivedDocsList-style row — same height, same gutters. Empty-state
   cards keep the looser 1rem padding because they carry more content
   (typestrip, details form, drop zone). */
.docuploader-card--filled[data-v-d6a3fcd9] { padding: 0.75rem 0.9rem;
}

/* ── Inline alert banner ───────────────────────────────────────────── */
.docuploader-alert[data-v-d6a3fcd9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 0.8rem;
  margin-bottom: 0.85rem;
  background: var(--mk-danger-bg);
  border-left: 3px solid var(--mk-danger);
  border-radius: 0 var(--mk-radius-md) var(--mk-radius-md) 0;
  color: var(--mk-danger);
  font-size: var(--mk-text-sm);
  font-weight: var(--mk-weight-medium);
}

/* ── Pre-show help slot (opt-in via `preShowHelp`) ────────────────── */
/* Wrapper for the helpCustom slot when surfaced at the top of the empty
   state. Slot content already brings its own visual treatment (consumers
   typically render a `.helpingBox`), so this rule only adds the bottom
   spacing that separates the help from the typestrip / drop zone below. */
.docuploader-prehelp[data-v-d6a3fcd9] {
  margin-bottom: 0.85rem;
}

/* ── Empty-state doctype strip ─────────────────────────────────────── */
/* Slim "Tipo: [dropdown]" row that precedes the drop zone whenever the
   document type is user-selectable. Hidden in locked/single-option/
   read-only modes — `docTypeMode === 'selectable'` is the only path that
   renders it. Layout is a tight inline row so the strip + drop zone read
   as a single compact empty-slot affordance. */
.docuploader-typestrip[data-v-d6a3fcd9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.55rem;
  min-width: 0;
}
.docuploader-typestrip-label[data-v-d6a3fcd9] {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-size: var(--mk-text-2xs);
  font-weight: var(--mk-weight-semibold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--mk-navy);
  line-height: 1;
}
.docuploader-typestrip-picker[data-v-d6a3fcd9] {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  min-width: 0;
  max-width: 22rem;
}

/* Locked-type variant — once the user picks a type (or the slot is
   hydrated from the API), the dropdown is swapped for a read-only chip
   so the type stays visible but unmodifiable. To change it the user has
   to discard the slot via the × button and add a fresh one. */
.docuploader-typestrip--locked[data-v-d6a3fcd9] {
  margin-bottom: 0.55rem;
}
.docuploader-typestrip-value[data-v-d6a3fcd9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  min-height: 1.4rem;
  padding: 0.15rem 0.55rem;
  background: var(--mk-navy-tint);
  color: var(--mk-navy);
  border: 1px solid var(--mk-navy-line);
  border-radius: var(--mk-radius-sm);
  font-size: var(--mk-text-xs);
  font-weight: var(--mk-weight-semibold);
  line-height: 1.2;
  max-width: 22rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@container docuploader (max-width: 380px) {
.docuploader-typestrip[data-v-d6a3fcd9] { -ms-flex-wrap: wrap; flex-wrap: wrap; gap: 0.35rem;
}
.docuploader-typestrip-picker[data-v-d6a3fcd9] { max-width: none; width: 100%;
}
.docuploader-typestrip-value[data-v-d6a3fcd9] { max-width: none;
}
}

/* ── Empty-state drop zone (horizontal, compact) ───────────────────── */
/* Inline row: [icon]  [primary text]  [hint]. Wraps cleanly when the
   container is narrow but never returns to the old vertical stack. */
.docuploader-drop[data-v-d6a3fcd9] {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.65rem;
  min-height: 64px;
  padding: 0.85rem 1rem;
  background:
    radial-gradient(circle at 18% 50%, rgba(0, 73, 118, 0.04) 0%, transparent 65%),
    var(--mk-bg-muted);
  border: 1.5px dashed var(--mk-border-strong);
  border-radius: var(--mk-radius-lg);
  color: var(--mk-text-muted);
  text-align: left;
  cursor: pointer;
  outline: none;
  -webkit-transition: border-color var(--mk-transition-base),
              background    var(--mk-transition-base),
              -webkit-transform     var(--mk-duration-fast) var(--mk-ease);
  transition: border-color var(--mk-transition-base),
              background    var(--mk-transition-base),
              -webkit-transform     var(--mk-duration-fast) var(--mk-ease);
  transition: border-color var(--mk-transition-base),
              background    var(--mk-transition-base),
              transform     var(--mk-duration-fast) var(--mk-ease);
  transition: border-color var(--mk-transition-base),
              background    var(--mk-transition-base),
              transform     var(--mk-duration-fast) var(--mk-ease),
              -webkit-transform     var(--mk-duration-fast) var(--mk-ease);
}
.docuploader-drop[data-v-d6a3fcd9]:hover,
.docuploader-drop--dragover[data-v-d6a3fcd9] {
  border-color: var(--mk-navy);
  background:
    radial-gradient(circle at 18% 50%, rgba(0, 73, 118, 0.10) 0%, transparent 65%),
    var(--mk-info-bg);
}
.docuploader-drop--dragover[data-v-d6a3fcd9] {
  -webkit-transform: scale(1.005);
          transform: scale(1.005);
}
.docuploader-drop[data-v-d6a3fcd9]:focus-visible {
  border-color: var(--mk-navy);
  -webkit-box-shadow: var(--mk-focus-ring);
          box-shadow: var(--mk-focus-ring);
}
.docuploader-drop--disabled[data-v-d6a3fcd9] {
  cursor: not-allowed;
  opacity: 0.6;
  background: var(--mk-bg-muted);
}
.docuploader-drop--disabled[data-v-d6a3fcd9]:hover {
  border-color: var(--mk-border-strong);
  background: var(--mk-bg-muted);
  -webkit-transform: none;
          transform: none;
}
.docuploader-drop-icon[data-v-d6a3fcd9] {
  font-size: 1.25rem;
  color: var(--mk-navy);
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.docuploader-drop-text[data-v-d6a3fcd9] {
  font-size: var(--mk-text-sm);
  font-weight: var(--mk-weight-semibold);
  color: var(--mk-text-body);
  line-height: var(--mk-leading-snug);
  min-width: 0;
}
.docuploader-drop-hint[data-v-d6a3fcd9] {
  font-size: var(--mk-text-xs);
  color: var(--mk-text-muted);
  letter-spacing: 0.03em;
  margin-left: auto;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@container docuploader (max-width: 380px) {
.docuploader-drop[data-v-d6a3fcd9] {
    padding: 0.7rem 0.8rem;
    gap: 0.5rem;
}
.docuploader-drop-hint[data-v-d6a3fcd9] {
    margin-left: 0;
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
}
}

/* ── Filled-state file row — mirrors ArchivedDocsList .archived-doc ──
   3-column grid: tinted PDF tile (left) · filename + inline meta `<dl>` ·
   icon-only action buttons (right). The row is intentionally chromeless
   (no background, no border, no padding) because the outer
   `.docuploader-card` already carries the single-rounded chrome and
   the state-tinted left rail that mirrors `.archived-doc`. Doubling
   the border would re-create the card-inside-a-card look this redesign
   is meant to eliminate. */
.docuploader-doc[data-v-d6a3fcd9] {
  display: grid;
  grid-template-columns: auto 1fr auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.95rem;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}
.docuploader-doc-icon[data-v-d6a3fcd9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: var(--mk-radius-md);
  background: var(--mk-danger-bg);
  color: var(--mk-danger);
  font-size: 1.1rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.docuploader-doc-body[data-v-d6a3fcd9] {
  min-width: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.35rem;
}
.docuploader-doc-name[data-v-d6a3fcd9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.45rem;
  background: none;
  border: 0;
  padding: 0;
  text-align: left;
  color: var(--mk-navy);
  font-weight: var(--mk-weight-semibold);
  font-size: var(--mk-text-sm);
  cursor: pointer;
  min-width: 0;
}
.docuploader-doc-name[data-v-d6a3fcd9]:hover:not(:disabled) { text-decoration: underline;
}
.docuploader-doc-name[data-v-d6a3fcd9]:focus-visible {
  outline: 2px solid var(--mk-navy);
  outline-offset: 2px;
  border-radius: 2px;
}
.docuploader-doc-name[data-v-d6a3fcd9]:disabled {
  cursor: default;
  opacity: 0.7;
}
.docuploader-doc-name-text[data-v-d6a3fcd9] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.docuploader-doc-name-download[data-v-d6a3fcd9] {
  font-size: 0.85em;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  opacity: 0.75;
}
.docuploader-doc-meta[data-v-d6a3fcd9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem 0.85rem;
  margin: 0;
  padding: 0;
}
.docuploader-doc-meta-item[data-v-d6a3fcd9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 0.3rem;
  font-size: var(--mk-text-xs);
  min-width: 0;
}
.docuploader-doc-meta-item dt[data-v-d6a3fcd9] {
  color: var(--mk-text-fainter);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: var(--mk-text-2xs);
  font-weight: var(--mk-weight-semibold);
  margin: 0;
}
.docuploader-doc-meta-item dd[data-v-d6a3fcd9] {
  color: var(--mk-text-strong);
  margin: 0;
  font-weight: var(--mk-weight-medium);
}

/* State pill folded into the same wrap so it flows next to the meta
   items, picking up the same gap and baseline. */
.docuploader-doc-state[data-v-d6a3fcd9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.3rem;
  font-size: var(--mk-text-2xs);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: var(--mk-weight-semibold);
  padding: 0.18rem 0.55rem;
  border-radius: var(--mk-radius-pill);
  line-height: 1;
  white-space: nowrap;
}
.docuploader-doc-state--ok[data-v-d6a3fcd9]      { color: var(--mk-success);       background: var(--mk-success-bg);  border: 1px solid var(--mk-success-border);
}
.docuploader-doc-state--empty[data-v-d6a3fcd9]   { color: var(--mk-text-muted);    background: rgba(148,163,184,0.12); border: 1px solid var(--mk-border-default);
}
.docuploader-doc-state--muted[data-v-d6a3fcd9]   { color: var(--mk-text-fainter);  background: rgba(148,163,184,0.10); border: 1px solid var(--mk-border-default);
}
.docuploader-doc-state--warning[data-v-d6a3fcd9] { color: var(--mk-warning-text);  background: var(--mk-warning-bg);  border: 1px solid var(--mk-warning-border);
}
.docuploader-doc-state--danger[data-v-d6a3fcd9]  { color: var(--mk-danger);        background: var(--mk-danger-bg);   border: 1px solid var(--mk-danger-border);
}
.docuploader-doc-actions[data-v-d6a3fcd9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.35rem;
}
@container docuploader (max-width: 480px) {
.docuploader-doc[data-v-d6a3fcd9] { grid-template-columns: auto 1fr;
}
.docuploader-doc-actions[data-v-d6a3fcd9] {
    grid-column: 1 / -1;
    justify-self: end;
}
}
.docuploader-action[data-v-d6a3fcd9] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  min-width: 0;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  background: var(--mk-surface);
  border: 1px solid var(--mk-border-default);
  border-radius: var(--mk-radius-md);
  color: var(--mk-text-default);
  font-size: var(--mk-text-sm);
  font-weight: var(--mk-weight-medium);
  cursor: pointer;
  white-space: nowrap;
  -webkit-transition: background var(--mk-transition-fast),
              border-color var(--mk-transition-fast),
              color var(--mk-transition-fast),
              -webkit-box-shadow var(--mk-transition-fast);
  transition: background var(--mk-transition-fast),
              border-color var(--mk-transition-fast),
              color var(--mk-transition-fast),
              -webkit-box-shadow var(--mk-transition-fast);
  transition: background var(--mk-transition-fast),
              border-color var(--mk-transition-fast),
              color var(--mk-transition-fast),
              box-shadow var(--mk-transition-fast);
  transition: background var(--mk-transition-fast),
              border-color var(--mk-transition-fast),
              color var(--mk-transition-fast),
              box-shadow var(--mk-transition-fast),
              -webkit-box-shadow var(--mk-transition-fast);
}
.docuploader-action[data-v-d6a3fcd9]:hover:not(:disabled) {
  background: var(--mk-bg-muted);
  border-color: var(--mk-text-muted);
  color: var(--mk-text-strong);
}
.docuploader-action[data-v-d6a3fcd9]:focus-visible {
  outline: none;
  border-color: var(--mk-navy);
  -webkit-box-shadow: var(--mk-focus-ring);
          box-shadow: var(--mk-focus-ring);
}
.docuploader-action--danger[data-v-d6a3fcd9] {
  color: var(--mk-danger);
}
.docuploader-action--danger[data-v-d6a3fcd9]:hover:not(:disabled) {
  background: var(--mk-danger-bg);
  border-color: var(--mk-danger);
  color: var(--mk-danger);
}
.docuploader-action--danger[data-v-d6a3fcd9]:focus-visible {
  border-color: var(--mk-danger);
  -webkit-box-shadow: var(--mk-focus-ring-danger);
          box-shadow: var(--mk-focus-ring-danger);
}
.docuploader-action[data-v-d6a3fcd9]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.docuploader-action-icon[data-v-d6a3fcd9] {
  font-size: 0.95rem;
}

/* ── Metadata pane ─────────────────────────────────────────────────── */
/* 2-col responsive grid sitting between the locked-type chip and the
   drop zone in sub-state B (empty + type chosen). Compact fields
   (issuer / number / dates / description) sit half-width side-by-side;
   inline alerts and consumer slots span the full row via the rules
   below. Collapses to a single column below 380 px. */
.docuploader-meta[data-v-d6a3fcd9] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem 0.85rem;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  min-width: 0;
  margin-bottom: 0.7rem;
}

/* Consumer-slot wrapper for the filled card. Sits below the
   `.docuploader-doc` row with a hairline separator, so any aux UI the
   parent injects (Fund.vue's locale chips, custom button bars) still
   surfaces once the file is attached and the form is gone. */
.docuploader-doc-aux[data-v-d6a3fcd9] {
  margin-top: 0.6rem;
  padding-top: 0.6rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.45rem;
}
@container docuploader (max-width: 380px) {
.docuploader-meta[data-v-d6a3fcd9] { grid-template-columns: 1fr;
}
}
.docuploader-field[data-v-d6a3fcd9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}

/* Full-row cells. The type dropdown is the primary control and gets
   the whole row so its long localised options never get clipped;
   alerts and consumer slots ride alongside it because they describe
   the entire form, not a single column. */
.docuploader-field--full[data-v-d6a3fcd9],
.docuploader-field-alert[data-v-d6a3fcd9],
.docuploader-meta-slot[data-v-d6a3fcd9] {
  grid-column: 1 / -1;
}

/* In-card field labels — the global `.moon-field-label` is sized for
   page-level forms (text-base, semibold navy) and reads as too heavy
   inside this compact card. Override locally to an eyebrow style: one
   size smaller, navy at 0.85 opacity, tight leading. The global rule
   is left untouched everywhere else in the app. */
.docuploader-field > .moon-field-label[data-v-d6a3fcd9] {
  text-align: left;
  font-size: var(--mk-text-xs);
  font-weight: var(--mk-weight-semibold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(var(--mk-navy-rgb), 0.85);
  line-height: 1;
}

/* Force Kendo controls to span the field column so the metadata pane
   reads as a tight stack rather than a centred ribbon. */
.docuploader-field > .component[data-v-d6a3fcd9],
.docuploader-field > .k-input[data-v-d6a3fcd9],
.docuploader-field > .k-textbox[data-v-d6a3fcd9],
.docuploader-field > .k-picker[data-v-d6a3fcd9],
.docuploader-field > .k-dropdownlist[data-v-d6a3fcd9],
.docuploader-field > select[data-v-d6a3fcd9] {
  width: 100%;
  max-width: none;
}
.docuploader-field-alert[data-v-d6a3fcd9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: 0 var(--mk-radius-md) var(--mk-radius-md) 0;
  font-size: var(--mk-text-sm);
  font-weight: var(--mk-weight-medium);
  border-left: 3px solid;
  line-height: var(--mk-leading-snug);
}
.docuploader-field-alert--danger[data-v-d6a3fcd9] {
  background: var(--mk-danger-bg);
  border-left-color: var(--mk-danger);
  color: var(--mk-danger);
}
.docuploader-field-alert--warning[data-v-d6a3fcd9] {
  background: var(--mk-warning-bg);
  border-left-color: var(--mk-warning-strong);
  color: var(--mk-warning-text);
}
.docuploader-meta-slot[data-v-d6a3fcd9] {
  margin-top: 0.15rem;
}

/* ── Hidden file input — visually offscreen but reachable by .click() ── */
.docuploader-file-input[data-v-d6a3fcd9] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

/* ── Section card ──────────────────────────────────────────────────
   PagePart wraps a discrete chunk of form content. The redesigned
   shell is a soft-bordered card with a navy "rail" anchoring the
   title — the same rail motif used by .subs-hero / .aml-hero /
   .form-section so a long form reads as a coherent stack. The
   header is interactive (click anywhere on the toggle bar to
   collapse), help and add controls cluster on the right, and the
   body reveal stays animated via SlideComponent. */
.pp-section[data-v-bdab24a9] {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  margin: 0.85rem 0;
  overflow: hidden;
  -webkit-transition: border-color 0.18s ease, -webkit-box-shadow 0.18s ease;
  transition: border-color 0.18s ease, -webkit-box-shadow 0.18s ease;
  transition: box-shadow 0.18s ease, border-color 0.18s ease;
  transition: box-shadow 0.18s ease, border-color 0.18s ease, -webkit-box-shadow 0.18s ease;
  -webkit-box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
          box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}
.pp-section[data-v-bdab24a9]:hover {
  -webkit-box-shadow: 0 3px 10px rgba(15, 23, 42, 0.05);
          box-shadow: 0 3px 10px rgba(15, 23, 42, 0.05);
}
.pp-section--collapsed[data-v-bdab24a9] {
  -webkit-box-shadow: 0 1px 1px rgba(15, 23, 42, 0.025);
          box-shadow: 0 1px 1px rgba(15, 23, 42, 0.025);
}
.pp-section--frameless[data-v-bdab24a9] {
  background: transparent;
  border: 0;
  margin: 0;
  -webkit-box-shadow: none;
          box-shadow: none;
  border-radius: 0;
  overflow: visible;
}
.pp-section--error[data-v-bdab24a9] {
  border-color: #fca5a5;
  -webkit-box-shadow: 0 0 0 3px rgba(252, 165, 165, 0.18);
          box-shadow: 0 0 0 3px rgba(252, 165, 165, 0.18);
}

/* ── Header strip ── */
.pp-header[data-v-bdab24a9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.6rem;
  padding: 0.05rem 0.85rem 0.05rem 0;
  background:
    -webkit-gradient(linear, left top, right top, from(#fbfdff), to(#ffffff));
  background:
    linear-gradient(90deg, #fbfdff 0%, #ffffff 100%);
  border-bottom: 1px solid transparent;
  -webkit-transition: border-color 0.18s ease;
  transition: border-color 0.18s ease;
}
.pp-section:not(.pp-section--collapsed) .pp-header[data-v-bdab24a9] {
  border-bottom-color: #edf2f7;
}

/* The toggle is the clickable area: rail + chevron + title +
   badges + help icon. It owns the row's left side. */
.pp-toggle[data-v-bdab24a9] {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6rem;
  padding: 0.7rem 0 0.7rem 0;
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: inherit;
  min-width: 0;
}
.pp-toggle[data-v-bdab24a9]:focus-visible {
  outline: 2px solid rgba(0, 73, 118, 0.4);
  outline-offset: 2px;
  border-radius: 6px;
}
.pp-toggle--static[data-v-bdab24a9] {
  cursor: default;
}
.pp-rail[data-v-bdab24a9] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: 4px;
  -ms-flex-item-align: stretch;
      align-self: stretch;
  background: rgb(0, 73, 118);
  border-radius: 0 3px 3px 0;
  -webkit-transition: background-color 0.18s ease;
  transition: background-color 0.18s ease;
}
.pp-section--error .pp-rail[data-v-bdab24a9] {
  background: #b91c1c;
}
.pp-chevron[data-v-bdab24a9] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  font-size: 0.78rem;
  color: rgb(0, 73, 118);
  -webkit-transition: -webkit-transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
  transition: -webkit-transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
  margin-left: 0.65rem;
}
.pp-chevron--open[data-v-bdab24a9] {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.pp-title[data-v-bdab24a9] {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: -0.005em;
  color: rgb(0, 73, 118);
  line-height: 1.3;
  word-break: break-word;
  margin-left: 0.05rem;
}
.pp-section--error .pp-title[data-v-bdab24a9] {
  color: #b91c1c;
}
.pp-badges[data-v-bdab24a9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.35rem;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}
.pp-help-btn[data-v-bdab24a9] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  font-size: 0.95rem;
  color: rgb(0, 73, 118);
  margin-left: 0.25rem;
  cursor: pointer;
  padding: 0.2rem;
  border-radius: 50%;
  -webkit-transition: background 0.16s ease, color 0.16s ease, -webkit-transform 0.16s ease;
  transition: background 0.16s ease, color 0.16s ease, -webkit-transform 0.16s ease;
  transition: background 0.16s ease, color 0.16s ease, transform 0.16s ease;
  transition: background 0.16s ease, color 0.16s ease, transform 0.16s ease, -webkit-transform 0.16s ease;
}
.pp-help-btn[data-v-bdab24a9]:hover {
  background: rgba(0, 73, 118, 0.08);
  color: rgb(255, 105, 0);
  -webkit-transform: scale(1.08);
          transform: scale(1.08);
}
.pp-help-btn--active[data-v-bdab24a9] {
  background: rgb(0, 73, 118);
  color: #ffffff !important;
}

/* ── Right-side actions cluster ── */
.pp-actions[data-v-bdab24a9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.5rem;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}
.pp-helpmessage[data-v-bdab24a9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
}
.pp-helpmessage-text[data-v-bdab24a9] {
  font-size: 0.78rem;
  color: #64748b;
  font-style: italic;
  line-height: 1.45;
  max-width: 360px;
}
.pp-helpmessage-text--styled[data-v-bdab24a9] {
  cursor: pointer;
  color: rgb(0, 73, 118);
  font-weight: 500;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}
.pp-inline-buttons[data-v-bdab24a9],
.pp-add-button[data-v-bdab24a9],
.pp-actions-slot[data-v-bdab24a9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
}

/* Second custom-button slot — kept for backward compat with callers
   that explicitly opt in (default true). Renders below the header. */
.pp-actions-second[data-v-bdab24a9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0 1rem 0.5rem;
}
.pp-actions-second[data-v-bdab24a9]:empty {
  display: none;
}

/* ── Body ── */
.pp-slide[data-v-bdab24a9] {
  width: 100%;
}
.pp-body[data-v-bdab24a9] {
  padding: 1rem 1.15rem 1.15rem;
  color: #1f2937;
}
.pp-section--frameless .pp-body[data-v-bdab24a9] {
  padding: 0;
}
.pp-alert[data-v-bdab24a9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.55rem;
  padding: 0.65rem 0.85rem;
  margin: 0 0 0.85rem;
  border-radius: 8px;
  background: #fff5f5;
  border: 1px solid #fca5a5;
  border-left: 3px solid #b91c1c;
  color: #7f1d1d;
  font-size: 0.85rem;
  line-height: 1.4;
}
.pp-alert-icon[data-v-bdab24a9] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  color: #b91c1c;
  font-size: 0.9rem;
}

/* ── Help dialog intro card (matches project dialog pattern) ── */
.pp-helpdialog-intro[data-v-bdab24a9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.85rem;
  padding: 0.95rem 1.05rem;
  background: #f0f7ff;
  border-left: 3px solid rgb(0, 73, 118);
  border-radius: 0 6px 6px 0;
  margin: 0.25rem 0;
}
.pp-helpdialog-icon[data-v-bdab24a9] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  font-size: 1.35rem;
  color: rgb(0, 73, 118);
  margin-top: 0.05rem;
}
.pp-helpdialog-text[data-v-bdab24a9] {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  font-size: 0.92rem;
  color: #2d3748;
  line-height: 1.6;
  word-break: break-word;
}
.pp-helpdialog-text[data-v-bdab24a9] strong {
  color: rgb(0, 73, 118);
  font-weight: 600;
}

/* ── Disabled state passthrough (kept from legacy) ── */
.non-editable[data-v-bdab24a9] {
  pointer-events: none;
}

/* Allow overlayed dialogs/popups inside a non-editable part to stay
   clickable; otherwise warning/confirmation dialogs rendered inside the
   part become unclosable. */
.non-editable[data-v-bdab24a9] .k-dialog-wrapper,
.non-editable[data-v-bdab24a9] .k-dialog-wrapper *,
.non-editable[data-v-bdab24a9] .k-window,
.non-editable[data-v-bdab24a9] .k-window *,
.non-editable[data-v-bdab24a9] .k-animation-container,
.non-editable[data-v-bdab24a9] .k-animation-container *,
.non-editable[data-v-bdab24a9] [role="dialog"],
.non-editable[data-v-bdab24a9] [role="dialog"] * {
  pointer-events: auto;
}
.is-disabled[data-v-bdab24a9] {
  opacity: 0.85;
}

/* ── Narrow viewport densification ── */
@media (max-width: 640px) {
.pp-section[data-v-bdab24a9] {
    border-radius: 10px;
    margin: 0.6rem 0;
}
.pp-toggle[data-v-bdab24a9] {
    padding: 0.6rem 0;
}
.pp-title[data-v-bdab24a9] {
    font-size: 0.9rem;
}
.pp-body[data-v-bdab24a9] {
    padding: 0.85rem 0.95rem 1rem;
}
.pp-actions[data-v-bdab24a9] {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    padding: 0 0.85rem 0.5rem;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
}
.pp-helpmessage-text[data-v-bdab24a9] {
    max-width: none;
}
}

/* Width / max-width for the per-PagePart help dialog. The id is
   per-instance so multiple PageParts on a page each get their own
   :has() match without colliding. The wildcard prefix works because
   ids are dynamically generated as "pagepartHelpDialog<uuid>". */
.k-dialog:has(> [id^="pagepartHelpDialog"]) {
  max-width: 760px;
  max-height: 90vh;
}
.k-dialog:has(> [id^="pagepartHelpDialog"]) > .k-window-content {
  max-height: calc(90vh - 90px);
  overflow-y: auto !important;
  padding: 1rem 1.15rem;
}

/* ──────────────────────────────────────────────────────────────────────────
   PagePartTitle — refreshed to read as a sub-section card sibling of
   BankAccountsSection (.bank-section).

   The whole component (header + body slot) lives inside ONE white card
   so the children passed via the default <slot /> share the same box
   as the title above them. Header and body sit one above the other,
   separated by a thin slate hairline. */

/* The single outer card — wraps both header and body. Padding lives on
   the wrapper (matching .bank-section), so the header and body sit
   flush on the white surface — no inner gradient strip, no divider. */
.pagepart-title-wrapper[data-v-77b0e9e1] {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0.6rem 0.85rem 0.7rem;
  margin: 0.6rem 0 0.4rem;
}

/* Header — title row, mirrors .bank-section-header (flex, gap, small
   bottom margin separating it from the slot content). No gradient,
   no border-bottom: the header is part of the card surface. */
.section-header-pagepart-title[data-v-77b0e9e1] {
  padding: 0;
  margin: 0 0 0.3rem;
  background: transparent;
  border: 0;
}
.section-header-pagepart-title[data-v-77b0e9e1] .row-display-table-cell {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.35rem;
}
.row-display-table-cell[data-v-77b0e9e1] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.35rem;
}
.div-chevron-container[data-v-77b0e9e1] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 20px;
  height: 20px;
  color: rgb(0, 73, 118);
  font-size: 0.78rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  float: none;
}
.icon-margin-left-5[data-v-77b0e9e1] {
  margin-left: 0;
}

/* Title text — same look as .bank-section-title */
.div-float-left-inline-block[data-v-77b0e9e1] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.35rem;
  float: none;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgb(0, 73, 118);
  line-height: 1.3;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  min-width: 0;
}
.div-float-left-inline-block.normal-title[data-v-77b0e9e1] {
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0.005em;
  font-size: 0.85rem;
  color: #1e293b;
}
.display-inline-block[data-v-77b0e9e1] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.35rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

/* Subtitle — same look as .bank-section-help */
.strong-font-size-10[data-v-77b0e9e1] {
  display: block;
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
  font-weight: 400;
  color: #64748b;
  line-height: 1.35;
  letter-spacing: 0;
}
.slide-width-100[data-v-77b0e9e1] {
  width: 100%;
}

/* Body slot — separated from the header by a thin slate hairline,
   mirroring the `.bank-entry { border-top: 1px solid #edf2f7;
   margin-top: 0.4rem; padding-top: 0.4rem; }` pattern in
   BankAccountsSection. */
.section-body-pagepart-title[data-v-77b0e9e1] {
  padding: 0.4rem 0 0;
  margin-top: 0.4rem;
  border-top: 1px solid #edf2f7;
  background: transparent;
}

/* When there's no header bar, drop the divider so the body has no
   orphan top line. */
.pagepart-title-wrapper.is-empty-header .section-body-pagepart-title[data-v-77b0e9e1] {
  padding: 0;
  margin-top: 0;
  border-top: 0;
}

/* ── Hero summary ──────────────────────────────────────────────────
   Same shape as .aml-hero / .mifid-hero / .fatca-hero so the user
   reads the four pages as one design family. The rail label is
   "Submission" — this page is where the boarding crosses from
   client-data-entry to manager-review. */
.dash-hero[data-v-b51596a9] {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* Subtler 2-stop deep-navy → mid-navy gradient. The previous 3-stop
     diagonal read as too active for an institutional landing hero;
     this reads as a single calm surface with depth. */
  background:
    linear-gradient(160deg,
      var(--mk-navy-darker) 0%,
      var(--mk-navy) 70%,
      var(--mk-navy-deep) 100%);
  color: var(--mk-text-inverse);
  border-radius: var(--mk-radius-3xl);
  margin: 0 0 1.25rem;
  overflow: hidden;
  -webkit-box-shadow: 0 6px 22px rgba(0, 73, 118, 0.20),
              0 1px 2px rgba(0, 73, 118, 0.10);
          box-shadow: 0 6px 22px rgba(0, 73, 118, 0.20),
              0 1px 2px rgba(0, 73, 118, 0.10);
}
.dash-hero[data-v-b51596a9]::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 20%, rgba(255, 255, 255, 0.1) 0%, transparent 35%),
    radial-gradient(circle at 92% 100%, rgba(16, 185, 129, 0.18) 0%, transparent 45%);
  pointer-events: none;
}
.dash-hero-rail[data-v-b51596a9] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 56px;
  background: rgba(255, 255, 255, 0.06);
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
  z-index: 1;
}
.dash-hero-rail-tag[data-v-b51596a9] {
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.32em;
  color: rgba(255, 255, 255, 0.6);
}
.dash-hero-body[data-v-b51596a9] {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  padding: 1.4rem 1.6rem 1.5rem;
  position: relative;
  z-index: 1;
  min-width: 0;
}
.dash-hero-eyebrow[data-v-b51596a9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.45rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
}
.dash-hero-title[data-v-b51596a9] {
  margin: 0.45rem 0 0.5rem;
  font-size: 1.55rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #ffffff;
  word-break: break-word;
}
.dash-hero-meta[data-v-b51596a9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  margin: 0;
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.85);
}
.dash-hero-meta-pill[data-v-b51596a9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.15rem 0.55rem;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  font-size: 0.66rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #ffffff;
}
.dash-hero-meta-text[data-v-b51596a9] {
  color: rgba(255, 255, 255, 0.92);
  font-weight: 500;
}
.dash-hero-grid[data-v-b51596a9] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 0.85rem;
  margin-top: 1.2rem;
  padding-top: 1.1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.dash-hero-fact[data-v-b51596a9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}
.dash-hero-fact-label[data-v-b51596a9] {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.6);
}
.dash-hero-fact-value[data-v-b51596a9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: 0.005em;
  word-break: break-word;
}
.dash-hero-fact-value--accent[data-v-b51596a9] { color: #fde68a;
}
.dash-hero-fact-icon[data-v-b51596a9] {
  font-size: 0.85rem;
  opacity: 0.85;
}

/* ── Intro card (instructions) ─────────────────────────────────────
   The five conditional instruction blocks (autografa / FEQ /
   in-presence / remote / IN_FIRMA_CLIENTE) all render here. The
   :deep selectors apply to whichever HTML the i18n string brings
   in — paragraphs, ordered/unordered lists, strong emphasis. */
.dash-intro-card[data-v-b51596a9] {
  background: var(--mk-surface);
  border: 1px solid var(--mk-border-default);
  border-radius: var(--mk-radius-2xl);
  padding: 1.15rem 1.4rem;
  -webkit-box-shadow: var(--mk-shadow-xs);
          box-shadow: var(--mk-shadow-xs);
  margin-bottom: 1.5rem;
}
.dash-intro-eyebrow[data-v-b51596a9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.45rem;
  font-size: var(--mk-text-2xs);
  font-weight: var(--mk-weight-bold);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--mk-navy);
  margin-bottom: 0.7rem;
}
.dash-intro-body[data-v-b51596a9] {
  font-size: var(--mk-text-md);
  line-height: 1.6;
  color: var(--mk-text-body);
  text-align: justify;
}
.dash-intro-body[data-v-b51596a9] p {
  margin: 0 0 0.85rem;
}
.dash-intro-body[data-v-b51596a9] p:last-child {
  margin-bottom: 0;
}
.dash-intro-body[data-v-b51596a9] ul,
.dash-intro-body[data-v-b51596a9] ol {
  margin: 0 0 0.85rem;
  padding-left: 1.4rem;
}
.dash-intro-body[data-v-b51596a9] li {
  margin-bottom: 0.3rem;
}
.dash-intro-body[data-v-b51596a9] strong {
  color: rgb(0, 73, 118);
  font-weight: 600;
}

/* ── Notice card (cointestazione warning) ──────────────────────────
   Hoisted out of the doc-loop into a single top-of-page accent
   card. Same pattern as .aml-notice / .fatca-notice. */
.dash-notice[data-v-b51596a9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.85rem;
  padding: 0.85rem 1rem;
  border-radius: 10px;
  background: #fff5f5;
  border: 1px solid #e2e8f0;
  border-left: 4px solid #b91c1c;
  -webkit-box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
          box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  margin-bottom: 1.25rem;
}
.dash-notice-icon[data-v-b51596a9] {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 32px;
  height: 32px;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border-radius: 8px;
  background: #ffe4e6;
  color: #b91c1c;
  font-size: 0.95rem;
}
.dash-notice-body[data-v-b51596a9] { -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; min-width: 0;
}
.dash-notice-title[data-v-b51596a9] {
  margin: 0 0 0.15rem;
  font-size: 0.92rem;
  font-weight: 600;
  color: #1e293b;
  line-height: 1.3;
}
.dash-notice-text[data-v-b51596a9] {
  margin: 0;
  font-size: 0.88rem;
  color: #64748b;
  line-height: 1.5;
  white-space: pre-line;
}

/* ── Documents box ─────────────────────────────────────────────────
   ONE PagePartTitle hosts every confirmed PDF — same shape as the
   Subscription form's "Compulsory identification documents" section
   (one card, multiple uploaders inside). Each PDF renders as one
   .dash-doc-row inside the shared box; rows are separated by a thin
   slate hairline. */
.dash-doc-pagepart[data-v-b51596a9] {
  margin-bottom: 1.5rem;
}
.dash-doc-row[data-v-b51596a9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.55rem;
  padding: 0.85rem 0;
  border-top: 1px solid #edf2f7;
}
.dash-doc-row[data-v-b51596a9]:first-child { border-top: 0; padding-top: 0.4rem;
}
.dash-doc-row[data-v-b51596a9]:last-child  { padding-bottom: 0.3rem;
}
.dash-doc-row-head[data-v-b51596a9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.85rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.dash-doc-name[data-v-b51596a9] {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6rem;
  min-width: 0;
}
.dash-doc-name-icon[data-v-b51596a9] {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  color: rgb(0, 73, 118);
  font-size: 1rem;
}
.dash-doc-name-text[data-v-b51596a9] {
  font-size: 0.95rem;
  font-weight: 600;
  color: #1e293b;
  line-height: 1.3;
  word-break: break-word;
}
.dash-doc-status[data-v-b51596a9] {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.65rem;
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #d1fae5;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.dash-doc-actions[data-v-b51596a9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  margin-top: 0.1rem;
}
.dash-doc-download[data-v-b51596a9] {
  width: 100%;
  max-width: 360px;
}
.dash-doc-uploader[data-v-b51596a9] {
  margin-top: 0.5rem;
  padding-top: 0.7rem;
  border-top: 1px dashed #e2e8f0;
}
@media (max-width: 640px) {
.dash-doc-status[data-v-b51596a9] { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3;
}
.dash-doc-download[data-v-b51596a9] { max-width: none;
}
}

/* ── Dialog intro card ─────────────────────────────────────────────
   Same family as the per-survey dialog intro cards (success / warn /
   danger). Used by dashCompletedModal (success) and
   dashNotCompletedModal (danger). */
.dash-dialog-intro[data-v-b51596a9] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.85rem;
  padding: 0.95rem 1.05rem;
  border-radius: 0 6px 6px 0;
  margin: 0.25rem 0 1rem;
}
.dash-dialog-intro--success[data-v-b51596a9] {
  background: #ecfdf5;
  border-left: 3px solid #10b981;
}
.dash-dialog-intro--danger[data-v-b51596a9] {
  background: #fff5f5;
  border-left: 3px solid #b91c1c;
}
.dash-dialog-intro-icon[data-v-b51596a9] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  font-size: 1.35rem;
  margin-top: 0.05rem;
}
.dash-dialog-intro--success .dash-dialog-intro-icon[data-v-b51596a9] { color: #065f46;
}
.dash-dialog-intro--danger  .dash-dialog-intro-icon[data-v-b51596a9] { color: #b91c1c;
}
.dash-dialog-intro-text[data-v-b51596a9] {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  margin: 0;
  font-size: 0.94rem;
  color: #2d3748;
  line-height: 1.55;
  word-break: break-word;
  white-space: pre-line;
}
.dash-dialog-intro-text[data-v-b51596a9] strong {
  color: rgb(0, 73, 118);
  font-weight: 600;
}

/* Upper-bound widths for the two refined dialogs. Lower bounds are
   set via :minWidth on the kendo-dialog itself. kendo-dialog has no
   maxWidth prop so the cap goes through the wrapper. */
.k-dialog:has(> #dashCompletedModal) { max-width: 560px;
}
.k-dialog:has(> #dashNotCompletedModal) { max-width: 540px;
}

.text-justify[data-v-cb223e76] {
  text-align: justify;
}
.margin-top-15[data-v-cb223e76] {
  margin-top: 15px;
}
.margin-top-1em[data-v-cb223e76] {
  margin-top: 1em;
}
.margin-top-3em[data-v-cb223e76] {
  margin-top: 3em;
}
.padding-2[data-v-cb223e76] {
  padding: 2px;
}
.button-full-width[data-v-cb223e76] {
  width: 100%;
  max-width: 500px;
}
.font-size-14[data-v-cb223e76] {
  font-size: 14px;
}
.dialog-actions[data-v-cb223e76] {
  margin-top: 50px;
  padding-bottom: 30px;
  text-align: end;
}

/* Shell: no margin/padding — parent card controls spacing */
.dc-shell[data-v-f94604f4] {
  contain: layout style paint;
}

/* Chart fades in when ready, replacing skeleton without layout jump */
@-webkit-keyframes dcFadeIn-f94604f4 {
from { opacity: 0;
}
to   { opacity: 1;
}
}
@keyframes dcFadeIn-f94604f4 {
from { opacity: 0;
}
to   { opacity: 1;
}
}
.dc-chart[data-v-f94604f4] {
  -webkit-animation: dcFadeIn-f94604f4 0.25s ease both;
          animation: dcFadeIn-f94604f4 0.25s ease both;
}

/* Skeleton: neutral shimmer sweep, GPU-composited */
@-webkit-keyframes dcShimmer-f94604f4 {
0%   { background-position: 200% center;
}
100% { background-position: -200% center;
}
}
@keyframes dcShimmer-f94604f4 {
0%   { background-position: 200% center;
}
100% { background-position: -200% center;
}
}
.dc-skeleton[data-v-f94604f4] {
  border-radius: 8px;
  will-change: background-position;
  background: -webkit-gradient(
    linear,
    left top, right top,
    color-stop(25%, #e8eef4),
    color-stop(50%, #f4f7fa),
    color-stop(75%, #e8eef4)
  );
  background: linear-gradient(
    90deg,
    #e8eef4 25%,
    #f4f7fa 50%,
    #e8eef4 75%
  );
  background-size: 200% 100%;
  -webkit-animation: dcShimmer-f94604f4 1.8s ease-in-out infinite;
          animation: dcShimmer-f94604f4 1.8s ease-in-out infinite;
}

/* ── Theme tokens ────────────────────────────────────────────────────────── */
.sgc-card[data-v-c2081e06]                  { --sgc-accent-rgb: 0, 73, 118;
}
.sgc-theme-subscribers[data-v-c2081e06]     { --sgc-accent-rgb: 0,   73,  118;
}
.sgc-theme-funders[data-v-c2081e06]         { --sgc-accent-rgb: 180, 109,   0;
}
.sgc-theme-target[data-v-c2081e06]          { --sgc-accent-rgb: 109,  40, 217;
}
.sgc-theme-advisor[data-v-c2081e06]         { --sgc-accent-rgb:   4, 120,  87;
}
.sgc-theme-cerved[data-v-c2081e06]          { --sgc-accent-rgb: 185,  28,  28;
}
.sgc-theme-fondi[data-v-c2081e06]           { --sgc-accent-rgb:  55,  48, 163;
}

/* ── Entrance animation ─────────────────────────────────────────────────── */
@-webkit-keyframes sgcEnter-c2081e06 {
from { opacity: 0; -webkit-transform: translateY(16px) scale(0.97); transform: translateY(16px) scale(0.97);
}
to   { opacity: 1; -webkit-transform: translateY(0)    scale(1); transform: translateY(0)    scale(1);
}
}
@keyframes sgcEnter-c2081e06 {
from { opacity: 0; -webkit-transform: translateY(16px) scale(0.97); transform: translateY(16px) scale(0.97);
}
to   { opacity: 1; -webkit-transform: translateY(0)    scale(1); transform: translateY(0)    scale(1);
}
}

/* ── Card shell ─────────────────────────────────────────────────────────── */
.sgc-card[data-v-c2081e06] {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  overflow: hidden;
  border-radius: 14px;
  background: #ffffff;
  border: 1px solid rgba(var(--sgc-accent-rgb), 0.12);
  -webkit-box-shadow:
    0 2px 6px  rgba(var(--sgc-accent-rgb), 0.06),
    0 1px 3px  rgba(0, 0, 0, 0.04);
          box-shadow:
    0 2px 6px  rgba(var(--sgc-accent-rgb), 0.06),
    0 1px 3px  rgba(0, 0, 0, 0.04);
  will-change: transform, box-shadow;
  -webkit-transition:
    border-color 0.28s ease,
    -webkit-transform    0.28s cubic-bezier(0.4, 0, 0.2, 1),
    -webkit-box-shadow   0.28s cubic-bezier(0.4, 0, 0.2, 1);
  transition:
    border-color 0.28s ease,
    -webkit-transform    0.28s cubic-bezier(0.4, 0, 0.2, 1),
    -webkit-box-shadow   0.28s cubic-bezier(0.4, 0, 0.2, 1);
  transition:
    transform    0.28s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow   0.28s cubic-bezier(0.4, 0, 0.2, 1),
    border-color 0.28s ease;
  transition:
    transform    0.28s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow   0.28s cubic-bezier(0.4, 0, 0.2, 1),
    border-color 0.28s ease,
    -webkit-transform    0.28s cubic-bezier(0.4, 0, 0.2, 1),
    -webkit-box-shadow   0.28s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-animation: sgcEnter-c2081e06 0.38s cubic-bezier(0.4, 0, 0.2, 1) both;
          animation: sgcEnter-c2081e06 0.38s cubic-bezier(0.4, 0, 0.2, 1) both;
}

/* Top accent stripe */
.sgc-card[data-v-c2081e06]::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: rgb(var(--sgc-accent-rgb));
  z-index: 1;
}
.sgc-card[data-v-c2081e06]:hover {
  -webkit-transform: translateY(-4px) scale(1.005);
          transform: translateY(-4px) scale(1.005);
  border-color: rgba(var(--sgc-accent-rgb), 0.25);
  -webkit-box-shadow:
    0 10px 28px rgba(var(--sgc-accent-rgb), 0.13),
    0  4px 10px rgba(var(--sgc-accent-rgb), 0.08),
    0  1px  4px rgba(0, 0, 0, 0.05);
          box-shadow:
    0 10px 28px rgba(var(--sgc-accent-rgb), 0.13),
    0  4px 10px rgba(var(--sgc-accent-rgb), 0.08),
    0  1px  4px rgba(0, 0, 0, 0.05);
}

/* ── Header ─────────────────────────────────────────────────────────────── */
.sgc-header[data-v-c2081e06] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.35rem;
  padding: 0.5rem 0.75rem;
  background: linear-gradient(
    180deg,
    var(--mk-navy-darker) 0%,
    var(--mk-navy) 65%,
    var(--mk-navy-deep) 100%
  );
  border-bottom: none;
}
.sgc-header-icon[data-v-c2081e06] {
  font-size: 0.62rem;
  color: var(--bar-accent, #e0f2fe);
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.sgc-header-svg[data-v-c2081e06] {
  width: 12px;
  height: 12px;
  color: var(--bar-accent, #e0f2fe);
}
.sgc-header-section[data-v-c2081e06] {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--bar-accent, #e0f2fe);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sgc-header-group[data-v-c2081e06] {
  -ms-flex-negative: 1;
      flex-shrink: 1;
  max-width: 60%;
  padding: 0.1rem 0.45rem;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.10);
  border: 1px solid rgba(255, 255, 255, 0.20);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.55rem;
  font-weight: 600;
  color: var(--bar-accent, #e0f2fe);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Per-section header accent — pastel tint on the shared navy bar.
   Same colours the old per-theme pastel bars used to fill with. */
.sgc-theme-subscribers .sgc-header[data-v-c2081e06] { --bar-accent: #e0f2fe;
}
.sgc-theme-funders     .sgc-header[data-v-c2081e06] { --bar-accent: #fef3c7;
}
.sgc-theme-target      .sgc-header[data-v-c2081e06] { --bar-accent: #ede9fe;
}
.sgc-theme-advisor     .sgc-header[data-v-c2081e06] { --bar-accent: #d1fae5;
}
.sgc-theme-cerved      .sgc-header[data-v-c2081e06] { --bar-accent: #ffe4e6;
}
.sgc-theme-fondi       .sgc-header[data-v-c2081e06] { --bar-accent: #e0e7ff;
}

/* ── Body layout ─────────────────────────────────────────────────────────── */
.sgc-body[data-v-c2081e06] {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.sgc-body--with-chart[data-v-c2081e06] {
  display: grid;
  grid-template-columns: 45% 55%;
}

/* ── Mini chart ─────────────────────────────────────────────────────────── */
.sgc-chart-area[data-v-c2081e06] {
  min-width: 0;
  padding: 0.5rem;
  border-right: 1px solid rgba(var(--sgc-accent-rgb), 0.08);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  contain: layout style paint;
}
.sgc-chart-empty[data-v-c2081e06] {
  height: 200px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 0.75rem;
  color: #9ca3af;
  font-style: italic;
}

/* ── List ───────────────────────────────────────────────────────────────── */
.sgc-list[data-v-c2081e06] {
  padding: 0.25rem 0;
  min-width: 0;
}
.sgc-row[data-v-c2081e06] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.5rem;
  padding: 0.3rem 0.85rem;
  font-size: 0.82rem;
  -webkit-transition: background 0.12s ease;
  transition: background 0.12s ease;
}
.sgc-row--clickable[data-v-c2081e06] {
  cursor: pointer;
}
.sgc-row--clickable[data-v-c2081e06]:hover {
  background: rgba(var(--sgc-accent-rgb), 0.04);
}
.sgc-label[data-v-c2081e06] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}
.sgc-label-text[data-v-c2081e06] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.45rem;
  min-width: 0;
}
.sgc-sublabel[data-v-c2081e06] {
  font-size: 0.7rem;
  margin-top: 0.1rem;
  line-height: 1.3;
}
.sgc-count[data-v-c2081e06] {
  font-family: 'Inter', system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.88rem;
  min-width: 2rem;
  text-align: right;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  color: rgb(var(--sgc-accent-rgb));
}
.sgc-count.text-danger[data-v-c2081e06]  { color: #dc2626;
}
.sgc-count.text-warning[data-v-c2081e06] { color: #d97706;
}
.sgc-count.text-success[data-v-c2081e06] { color: #059669;
}
.sgc-color-dot[data-v-c2081e06] {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 2px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
.sgc-body--with-chart[data-v-c2081e06] {
    grid-template-columns: 1fr;
}
.sgc-chart-area[data-v-c2081e06] {
    border-right: none;
    border-bottom: 1px solid rgba(var(--sgc-accent-rgb), 0.08);
}
}

/* Reach beyond the scoped slot to flatten PageComponentNEW's padding +
   1400 px max-width on this route only — :has() is true only on the
   dashboard-admin page where #appContainer exists. */
.pc-content:has(#appContainer) {
  padding: 0;
}
.module:has(#appContainer) {
  max-width: none;
}

/* ── Grid layout ── */
#appContainer[data-v-a497e789] {
  padding: 0.75rem;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.span-2[data-v-a497e789]    { grid-column: span 2;
}
.grid-full[data-v-a497e789] { grid-column: 1 / -1;
}
.dashboard-toolbar[data-v-a497e789] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.5rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

/* ── Chart area ── */
.text-centered[data-v-a497e789] {
  text-align: center;
}
.full-width[data-v-a497e789] {
  width: 100%;
}
.scaled-row[data-v-a497e789] {
  -webkit-transform: scale(0.9);
          transform: scale(0.9);
}

/* ── Responsive: below 1400px collapse the 4-col grid to a single column
   so every card gets the full content width — keeps the side-by-side
   chart layout readable on laptop screens. */
@media (max-width: 1400px) {
#appContainer[data-v-a497e789] {
    grid-template-columns: 1fr;
}
.span-2[data-v-a497e789] {
    grid-column: 1 / -1;
}
}
