/**
 * STCJMIS admin brand overrides (django-jazzmin / AdminLTE).
 * Primary: #000b3b
 */

:root {
  --stcjmis-primary: #000b3b;
  --stcjmis-primary-hover: #1a4da6;
  --stcjmis-header-height: 4.5rem;
  --stcjmis-logo-max-height: 3.5rem;
  --stcjmis-sidebar-width: 13rem;
  --stcjmis-sidebar-x: 0.75rem;
  --stcjmis-sidebar-section-heading-color: #c9a020;
  --lte-sidebar-width: var(--stcjmis-sidebar-width);
  --stcjmis-control-height: calc(0.75rem + 1.5em + 2px);
  --stcjmis-textarea-3-line-height: calc(0.375rem * 2 + 1.5em * 3 + 2px);
  --stcjmis-textarea-6-line-height: calc(0.375rem * 2 + 1.5em * 6 + 2px);
  --stcjmis-textarea-blast-height: 12rem;
  --stcjmis-control-border: #ced4da;
  --stcjmis-select-placeholder-color: #6c757d;
  --stcjmis-control-radius: 0.375rem;
  --stcjmis-history-drawer-width: 24rem;
  --stcjmis-control-focus-ring: 0 0 0 0.2rem rgba(0, 11, 59, 0.15);
  --stcjmis-change-form-row-max-width: 32rem;
  --stcjmis-blast-compose-page-header: 3.25rem;
  --stcjmis-blast-compose-content-padding: 1.5rem;
  --stcjmis-blast-compose-actions-height: 3.25rem;
  --stcjmis-blast-compose-textarea-height: var(--stcjmis-textarea-blast-height);
  --stcjmis-blast-message-preview-height: var(--stcjmis-blast-compose-textarea-height);
  --stcjmis-status-active-color: #0f5132;
  --stcjmis-status-active-bg: rgba(25, 135, 84, 0.12);
  --stcjmis-status-active-border: rgba(25, 135, 84, 0.25);
  --stcjmis-status-disabled-color: #842029;
  --stcjmis-status-disabled-bg: rgba(220, 53, 69, 0.12);
  --stcjmis-status-disabled-border: rgba(220, 53, 69, 0.28);
  --stcjmis-status-unknown-color: #495057;
  --stcjmis-status-unknown-bg: rgba(108, 117, 125, 0.12);
  --stcjmis-status-unknown-border: rgba(108, 117, 125, 0.25);
}

.app-wrapper input.form-control:not(.form-control-navbar):not(.stcjmis-ph-mobile-contact__input),
.app-wrapper select.form-control,
.app-wrapper textarea.form-control,
.app-wrapper select:not([multiple]):not([size]),
.app-wrapper input.vTextField:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not(.stcjmis-ph-mobile-contact__input),
.app-wrapper input.vIntegerField,
.app-wrapper input.vBigIntegerField,
.app-wrapper input.vDecimalField,
.app-wrapper textarea.vTextField,
.app-wrapper #searchbar,
.app-wrapper .stcjmis-changelist-field,
.app-wrapper .stcjmis-action-select,
.login-page input.form-control,
.login-page select.form-control,
.login-page textarea.form-control {
  box-sizing: border-box;
  min-height: var(--stcjmis-control-height);
  border: 1px solid var(--stcjmis-control-border);
  border-radius: var(--stcjmis-control-radius);
  box-shadow: none;
}

/* Single-line inputs and selects clip overflow with an ellipsis. */
.app-wrapper input.form-control:not(.form-control-navbar):not(.stcjmis-ph-mobile-contact__input),
.app-wrapper select.form-control,
.app-wrapper select:not([multiple]):not([size]),
.app-wrapper input.vTextField:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not(.stcjmis-ph-mobile-contact__input),
.app-wrapper input.vIntegerField,
.app-wrapper input.vBigIntegerField,
.app-wrapper input.vDecimalField,
.app-wrapper #searchbar,
.app-wrapper .stcjmis-changelist-field,
.app-wrapper .stcjmis-action-select,
.login-page input.form-control,
.login-page select.form-control {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

.app-wrapper select.form-control,
.app-wrapper select:not([multiple]):not([size]),
.app-wrapper .stcjmis-action-select,
.login-page select.form-control {
  padding-right: 2rem;
}

.app-wrapper textarea.form-control,
.app-wrapper textarea.vTextField,
.login-page textarea.form-control {
  overflow: auto;
  text-overflow: clip;
  white-space: pre-wrap;
}

.app-wrapper input.form-control:not(.form-control-navbar):focus,
.app-wrapper select.form-control:focus,
.app-wrapper textarea.form-control:focus,
.app-wrapper select:not([multiple]):not([size]):focus,
.app-wrapper input.vTextField:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):focus,
.app-wrapper input.vIntegerField:focus,
.app-wrapper input.vBigIntegerField:focus,
.app-wrapper input.vDecimalField:focus,
.app-wrapper textarea.vTextField:focus,
.app-wrapper #searchbar:focus,
.app-wrapper .stcjmis-changelist-field:focus,
.app-wrapper .stcjmis-action-select:focus,
.login-page input.form-control:focus,
.login-page select.form-control:focus,
.login-page textarea.form-control:focus {
  border-color: var(--stcjmis-primary);
  box-shadow: var(--stcjmis-control-focus-ring);
  outline: none;
}

.app-wrapper select.stcjmis-select-is-placeholder,
.login-page select.stcjmis-select-is-placeholder {
  color: var(--stcjmis-select-placeholder-color);
}

.app-wrapper select.stcjmis-select-is-placeholder option,
.login-page select.stcjmis-select-is-placeholder option {
  color: var(--bs-body-color, #212529);
}

.stcjmis-password-input-wrap {
  position: relative;
  width: 100%;
  max-width: 100%;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.stcjmis-password-input-wrap .stcjmis-password-input {
  width: 100%;
  padding-right: 3rem;
}

.stcjmis-password-input-wrap:focus-within {
  box-shadow: none;
  outline: none;
}

.stcjmis-password-toggle {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bs-secondary-color);
}

.stcjmis-password-toggle:hover,
.stcjmis-password-toggle:focus {
  color: var(--stcjmis-primary);
  background: transparent;
  box-shadow: none;
}

.stcjmis-password-toggle:focus-visible {
  outline: 2px solid var(--stcjmis-primary);
  outline-offset: -2px;
  border-radius: 0 var(--stcjmis-control-radius) var(--stcjmis-control-radius) 0;
}

.stcjmis-validation-glow-target.stcjmis-validation-glow .form-control,
.stcjmis-validation-glow-target.stcjmis-validation-glow .stcjmis-password-input,
.stcjmis-validation-glow-target.stcjmis-validation-glow input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.stcjmis-validation-glow-target.stcjmis-validation-glow select,
.stcjmis-validation-glow-target.stcjmis-validation-glow textarea {
  border-color: var(--stcjmis-control-border);
  box-shadow: none;
  outline: none;
}

.navbar-primary,
.bg-primary,
.sidebar-dark-primary {
  background-color: var(--stcjmis-primary) !important;
}

/* Theme buttons: no fill, outline only. Primary outline for main actions. */
.app-wrapper .btn-outline-primary:not(.dropdown-item),
.app-wrapper .btn-primary:not(.dropdown-item) {
  background-color: #fff !important;
  color: var(--stcjmis-primary) !important;
  border-color: var(--stcjmis-primary) !important;
}

.app-wrapper .btn-outline-secondary:not(.dropdown-item),
.app-wrapper .btn-secondary:not(.dropdown-item),
.app-wrapper .btn-outline-info:not(.dropdown-item),
.app-wrapper .btn-info:not(.dropdown-item),
.app-wrapper .btn-outline-success:not(.dropdown-item),
.app-wrapper .btn-success:not(.dropdown-item),
.app-wrapper .btn-outline-warning:not(.dropdown-item),
.app-wrapper .btn-warning:not(.dropdown-item) {
  background-color: #fff !important;
  color: #6c757d !important;
  border-color: #6c757d !important;
}

.app-wrapper .btn-outline-danger:not(.dropdown-item),
.app-wrapper .btn-danger:not(.dropdown-item) {
  background-color: #fff !important;
  color: #dc3545 !important;
  border-color: #dc3545 !important;
}

.app-wrapper .btn-outline-primary:not(.dropdown-item):hover,
.app-wrapper .btn-primary:not(.dropdown-item):hover {
  background-color: var(--stcjmis-primary) !important;
  border-color: var(--stcjmis-primary) !important;
  color: #fff !important;
}

.app-wrapper .btn-outline-secondary:not(.dropdown-item):hover,
.app-wrapper .btn-secondary:not(.dropdown-item):hover,
.app-wrapper .btn-outline-info:not(.dropdown-item):hover,
.app-wrapper .btn-info:not(.dropdown-item):hover,
.app-wrapper .btn-outline-success:not(.dropdown-item):hover,
.app-wrapper .btn-success:not(.dropdown-item):hover,
.app-wrapper .btn-outline-warning:not(.dropdown-item):hover,
.app-wrapper .btn-warning:not(.dropdown-item):hover {
  background-color: #6c757d !important;
  border-color: #6c757d !important;
  color: #fff !important;
}

.app-wrapper .btn-outline-danger:not(.dropdown-item):hover,
.app-wrapper .btn-danger:not(.dropdown-item):hover {
  background-color: #dc3545 !important;
  border-color: #dc3545 !important;
  color: #fff !important;
}

.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,
.sidebar-dark-primary .nav-sidebar > .nav-item.menu-open > .nav-link {
  background-color: var(--stcjmis-primary-hover) !important;
  color: #fff !important;
}

a,
.accent-primary .nav-link.active {
  color: var(--stcjmis-primary);
}

a:hover {
  color: var(--stcjmis-primary-hover);
}

.app-wrapper .stcjmis-admin-alert {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem 0.4rem;
  border-radius: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.45;
  padding: 0.65rem 0.85rem;
  border-width: 1px;
  border-style: solid;
}

.stcjmis-change-form-errors {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.stcjmis-change-form-errors .stcjmis-admin-alert {
  margin-bottom: 0;
}

.app-wrapper .stcjmis-admin-alert .icon {
  margin-right: 0.4rem;
}

.app-wrapper .stcjmis-admin-alert.alert-success {
  color: #0f5132;
  background-color: rgba(25, 135, 84, 0.1);
  border-color: rgba(25, 135, 84, 0.28);
}

.app-wrapper .stcjmis-admin-alert.alert-info {
  color: var(--stcjmis-primary);
  background-color: rgba(0, 11, 59, 0.06);
  border-color: rgba(0, 11, 59, 0.18);
}

.app-wrapper .stcjmis-admin-alert.alert-warning {
  color: #664d03;
  background-color: rgba(255, 193, 7, 0.12);
  border-color: rgba(255, 193, 7, 0.38);
}

.app-wrapper .stcjmis-admin-alert.alert-danger {
  color: #842029;
  background-color: rgba(220, 53, 69, 0.1);
  border-color: rgba(220, 53, 69, 0.28);
}

.app-wrapper .stcjmis-admin-alert.alert-dismissible {
  position: relative;
  padding-right: 2.25rem;
}

.app-wrapper .stcjmis-admin-alert .btn-close {
  position: absolute;
  top: 50%;
  right: 0.85rem;
  transform: translateY(-50%);
  padding: 0;
  margin: 0;
  width: 0.65rem;
  height: 0.65rem;
  opacity: 0.55;
}

.brand-image {
  max-height: var(--stcjmis-logo-max-height);
  width: auto;
}

/* AdminLTE default grid places the sidebar beside the header; use a full-width bar instead. */
.app-wrapper {
  grid-template-areas:
    "lte-app-header lte-app-header"
    "lte-app-sidebar lte-app-main"
    "lte-app-sidebar lte-app-footer";
}

.stcjmis-app-footer__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  width: 100%;
}

.stcjmis-app-footer__version {
  color: var(--bs-secondary-color);
  font-size: 0.8125rem;
  white-space: nowrap;
}

.stcjmis-login-version {
  margin: 0.75rem 0 0;
  text-align: center;
  color: var(--bs-secondary-color);
  font-size: 0.8125rem;
}

.app-header,
.stcjmis-app-header {
  width: 100%;
  max-width: 100%;
}

.stcjmis-app-header {
  position: sticky;
  top: 0;
  z-index: 1035;
  height: var(--stcjmis-header-height);
  min-height: var(--stcjmis-header-height);
  max-height: var(--stcjmis-header-height);
  padding: 0;
  align-items: center;
  border-bottom: 0;
}

.layout-fixed .stcjmis-app-header {
  position: sticky;
}

.stcjmis-navbar-container {
  height: 100%;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  align-items: center;
}

.stcjmis-app-header .nav-link {
  padding: 0.5rem 0.85rem;
  font-size: 1rem;
}

.stcjmis-app-header .nav-link .fa,
.stcjmis-app-header .nav-link .far,
.stcjmis-app-header .nav-link .fas {
  font-size: 1.2rem;
}

.stcjmis-navbar-user {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
}

.stcjmis-navbar-greeting {
  color: rgba(255, 255, 255, 0.95);
  font-size: 0.95rem;
  font-weight: 500;
  white-space: nowrap;
  padding: 0;
  margin: 0;
  line-height: 1.2;
}

.app-wrapper #jazzy-usermenu.dropdown-menu {
  overflow: hidden;
}

.app-wrapper #jazzy-usermenu .dropdown-item,
.app-wrapper #jazzy-usermenu .dropdown-item:hover,
.app-wrapper #jazzy-usermenu .dropdown-item:focus,
.app-wrapper #jazzy-usermenu .dropdown-item:active {
  border-radius: 0;
}

.stcjmis-navbar-brand {
  display: flex;
  align-items: center;
  margin-right: 0.25rem;
}

.stcjmis-navbar-brand-link {
  display: flex !important;
  align-items: center;
  gap: 0.65rem;
  height: 100%;
  padding: 0 0.5rem 0 0 !important;
}

.stcjmis-navbar-brand-text {
  color: rgba(255, 255, 255, 0.95);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}

.stcjmis-navbar-brand-link:hover .stcjmis-navbar-brand-text,
.stcjmis-navbar-brand-link:focus .stcjmis-navbar-brand-text {
  color: #fff;
}

#jazzy-sidebar.app-sidebar {
  min-width: var(--stcjmis-sidebar-width);
  max-width: var(--stcjmis-sidebar-width);
  width: var(--stcjmis-sidebar-width);
}

@media (min-width: 992px) {
  .layout-fixed.sidebar-expand-lg #jazzy-sidebar.app-sidebar,
  .layout-fixed #jazzy-sidebar.app-sidebar {
    top: var(--stcjmis-header-height);
    align-self: start;
    max-height: calc(100vh - var(--stcjmis-header-height));
    height: auto;
    bottom: auto;
  }

  #jazzy-sidebar .sidebar-wrapper {
    height: calc(100vh - var(--stcjmis-header-height));
    max-height: calc(100vh - var(--stcjmis-header-height));
  }
}

.stcjmis-navbar-logo {
  max-height: var(--stcjmis-logo-max-height) !important;
  width: auto;
  margin: 0 !important;
  box-shadow: none !important;
}

#jazzy-sidebar .sidebar-menu .nav-link p {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#jazzy-sidebar .nav-sidebar > .nav-item > .nav-link {
  padding-left: calc(var(--stcjmis-sidebar-x) + 0.25rem);
}

#jazzy-sidebar .nav-header {
  padding-left: calc(var(--stcjmis-sidebar-x) + 0.25rem);
  font-weight: 700;
}

#jazzy-sidebar .nav-header.stcjmis-sidebar-section-heading {
  color: var(--stcjmis-sidebar-section-heading-color);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-top: 0.75rem;
  margin-bottom: 0.25rem;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

#jazzy-sidebar .nav-header.stcjmis-sidebar-section-heading:first-of-type {
  margin-top: 0;
  border-top: 0;
  padding-top: 0;
}

@media (min-width: 992px) {
  .stcjmis-sidebar-toggle {
    display: none !important;
  }
}

.login-box .stcjmis-login-card {
  border: 0;
  border-radius: 0.375rem;
  box-shadow:
    0 1rem 2.5rem rgba(0, 0, 0, 0.28),
    0 0.25rem 0.75rem rgba(0, 0, 0, 0.12);
  overflow: hidden;
}

.login-box .stcjmis-login-card .login-card-body {
  padding: 2rem 2.25rem 2.25rem;
}

.stcjmis-login-logo {
  margin-bottom: 0.25rem;
}

.stcjmis-login-logo img {
  max-height: 140px;
  width: auto;
}

.stcjmis-login-title {
  font-size: 1.3125rem;
  font-weight: 700;
  line-height: 1.3;
  margin-top: 0;
  margin-bottom: 1.25rem;
  color: var(--stcjmis-primary);
}

.stcjmis-login-errors {
  margin-bottom: 1rem;
}

.stcjmis-login-errors .callout {
  margin-bottom: 0.5rem;
}

.stcjmis-login-errors .callout:last-child {
  margin-bottom: 0;
}

.login-box .card-primary.card-outline {
  border-top-color: var(--stcjmis-primary);
}

.login-page {
  position: relative;
  min-height: 100vh;
  background-color: var(--stcjmis-primary);
}

.login-page::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.25;
  background-image: url("../img/stcjmis-gardner-background.webp");
  background-repeat: repeat;
  background-size: 520px auto;
}

.login-page::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(
    160deg,
    rgba(0, 4, 24, 0.92) 0%,
    rgba(0, 11, 59, 0.72) 45%,
    rgba(0, 4, 24, 0.95) 100%
  );
}

.login-page .login-box {
  position: relative;
  z-index: 1;
}

.stcjmis-portal-error__code {
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.stcjmis-portal-error__heading {
  color: var(--stcjmis-primary);
  font-weight: 700;
}

.stcjmis-portal-error__message {
  font-size: 1rem;
}

.stcjmis-portal-error__hint {
  font-size: 0.9375rem;
}

.stcjmis-portal-error__actions--spaced {
  margin-top: 1.5rem;
}

.login-box-msg {
  font-weight: 600;
  color: var(--stcjmis-primary);
}

.login-page .stcjmis-login-form .stcjmis-login-field {
  width: 100%;
}

.login-page .stcjmis-login-submit {
  min-height: calc(var(--stcjmis-control-height, 2.375rem) + 0.25rem);
  border-radius: 0.375rem;
  font-weight: 600;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.15s ease;
}

.login-page .stcjmis-login-form .stcjmis-validation-glow-target.stcjmis-validation-glow {
  border-radius: var(--stcjmis-control-radius);
  box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.55);
  outline: 2px solid rgba(220, 53, 69, 0.35);
  outline-offset: 0;
}

.login-page .btn-primary,
.login-page .btn-outline-primary {
  background-color: var(--stcjmis-primary) !important;
  border-color: var(--stcjmis-primary) !important;
  color: #fff !important;
}

.login-page .btn-primary:hover,
.login-page .btn-outline-primary:hover,
.login-page .stcjmis-login-submit:hover {
  background-color: var(--stcjmis-primary-hover) !important;
  border-color: var(--stcjmis-primary-hover) !important;
  color: #fff !important;
  box-shadow: 0 0.35rem 0.85rem rgba(26, 77, 166, 0.35);
  transform: translateY(-1px);
}

.login-page .stcjmis-login-submit:active {
  transform: translateY(0);
  box-shadow: 0 0.15rem 0.4rem rgba(26, 77, 166, 0.25);
}

.stcjmis-password-change-page .stcjmis-password-change-card .card-body {
  padding: 1.5rem 1.75rem;
}

.stcjmis-password-change-page .stcjmis-password-change-intro,
.stcjmis-password-change-page .stcjmis-password-change-errors {
  max-width: none;
}

.stcjmis-password-change-page .stcjmis-password-change-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}

.stcjmis-password-change-page .stcjmis-password-change-fields,
.stcjmis-password-change-page .stcjmis-password-change-rules-panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100%;
}

.stcjmis-password-change-page .stcjmis-password-field {
  display: grid;
  grid-template-columns: minmax(6.5rem, 42%) minmax(0, 1fr);
  gap: 0.75rem;
  align-items: center;
  margin-bottom: 1rem;
}

.stcjmis-password-change-page .stcjmis-password-field:last-of-type {
  margin-bottom: 0;
}

.stcjmis-password-change-page .stcjmis-password-field-label {
  margin: 0;
  line-height: 1.3;
  font-weight: inherit;
}

.stcjmis-password-change-page .stcjmis-password-field-control {
  min-width: 0;
}

.stcjmis-password-change-page .stcjmis-password-change-rules-panel .stcjmis-password-rules {
  flex: 1 1 auto;
}

.stcjmis-password-change-page .stcjmis-password-rules-title {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--stcjmis-primary);
}

.stcjmis-password-change-page .stcjmis-password-change-actions {
  width: 100%;
  max-width: none;
  margin-top: auto;
  padding-top: 0.75rem;
  border-top: 1px solid var(--bs-border-color);
}

.stcjmis-password-change-page .stcjmis-password-input-wrap.stcjmis-validation-glow {
  display: block;
  width: 100%;
  max-width: 100%;
  border-radius: var(--stcjmis-control-radius);
}

.stcjmis-password-change-page .stcjmis-password-rules {
  list-style: none;
  margin: 0;
  padding: 0;
}

.stcjmis-password-change-page .stcjmis-password-rule {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.4;
}

.stcjmis-password-change-page .stcjmis-password-rule + .stcjmis-password-rule {
  margin-top: 0.35rem;
}

.stcjmis-password-change-page .stcjmis-password-rule-icon {
  width: 0.875rem;
  margin-top: 0.2rem;
  flex: 0 0 auto;
  font-size: 0.75rem;
}

.stcjmis-password-change-page .stcjmis-password-rule--pending {
  color: var(--bs-secondary-color);
}

.stcjmis-password-change-page .stcjmis-password-rule--pending .stcjmis-password-rule-icon {
  color: var(--bs-secondary-color);
}

.stcjmis-password-change-page .stcjmis-password-rule--pass {
  color: #198754;
}

.stcjmis-password-change-page .stcjmis-password-rule--pass .stcjmis-password-rule-icon {
  color: #198754;
}

.stcjmis-password-change-page .stcjmis-password-rule--fail {
  color: #dc3545;
}

.stcjmis-password-change-page .stcjmis-password-rule--fail .stcjmis-password-rule-icon {
  color: #dc3545;
}

.stcjmis-password-rules-surface .stcjmis-password-input-wrap.stcjmis-validation-glow {
  display: block;
  width: 100%;
  max-width: 100%;
  border-radius: var(--stcjmis-control-radius);
}

.stcjmis-password-rules-surface .stcjmis-password-rules {
  list-style: none;
  margin: 0;
  padding: 0;
}

.stcjmis-password-rules-surface .stcjmis-password-rule {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.4;
}

.stcjmis-password-rules-surface .stcjmis-password-rule + .stcjmis-password-rule {
  margin-top: 0.35rem;
}

.stcjmis-password-rules-surface .stcjmis-password-rule-icon {
  width: 0.875rem;
  margin-top: 0.2rem;
  flex: 0 0 auto;
  font-size: 0.75rem;
}

.stcjmis-password-rules-surface .stcjmis-password-rule--pending {
  color: var(--bs-secondary-color);
}

.stcjmis-password-rules-surface .stcjmis-password-rule--pending .stcjmis-password-rule-icon {
  color: var(--bs-secondary-color);
}

.stcjmis-password-rules-surface .stcjmis-password-rule--pass {
  color: #198754;
}

.stcjmis-password-rules-surface .stcjmis-password-rule--pass .stcjmis-password-rule-icon {
  color: #198754;
}

.stcjmis-password-rules-surface .stcjmis-password-rule--fail {
  color: #dc3545;
}

.stcjmis-password-rules-surface .stcjmis-password-rule--fail .stcjmis-password-rule-icon {
  color: #dc3545;
}

.stcjmis-portal-login-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}

.stcjmis-portal-login-fields,
.stcjmis-portal-login-rules-panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100%;
}

.stcjmis-portal-login-field {
  display: grid;
  grid-template-columns: minmax(5.5rem, 38%) minmax(0, 1fr);
  gap: 0.5rem 0.75rem;
  align-items: center;
  margin-bottom: 0.75rem;
}

.stcjmis-portal-login-field:last-child {
  margin-bottom: 0;
}

.stcjmis-portal-login-field-label {
  margin: 0;
  line-height: 1.3;
  font-weight: inherit;
}

.stcjmis-portal-login-field-control {
  min-width: 0;
}

.stcjmis-portal-login-fields .stcjmis-portal-login-field {
  max-width: var(--stcjmis-change-form-row-max-width);
  grid-template-columns: minmax(0, 25%) minmax(0, 75%);
}

.stcjmis-portal-login-fields .field-portal_role .stcjmis-portal-login-field-control {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.stcjmis-portal-login-fields .field-portal_role select {
  width: 100%;
  max-width: 100%;
}

.stcjmis-portal-login-fields .field-portal_employee_id .stcjmis-plain-value {
  font-weight: 500;
  word-break: break-word;
}

.stcjmis-portal-login-rules-panel .stcjmis-password-rules {
  flex: 1 1 auto;
}

.stcjmis-portal-login-rules-panel .stcjmis-password-rules-title {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--stcjmis-primary);
}

.stcjmis-portal-role-summary-panel {
  margin-bottom: 1rem;
}

.stcjmis-portal-role-summary-title {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--stcjmis-primary);
}

.stcjmis-portal-role-summary-body {
  min-height: 4.5rem;
}

.stcjmis-portal-role-summary-empty,
.stcjmis-portal-role-summary-lead {
  margin: 0 0 0.75rem;
  color: var(--bs-secondary-color);
  font-size: 0.875rem;
  line-height: 1.45;
}

.stcjmis-portal-role-summary-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.stcjmis-portal-role-summary-item {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  gap: 0.5rem;
  padding: 0.35rem 0;
  border-bottom: 1px solid var(--bs-border-color);
  font-size: 0.8125rem;
}

.stcjmis-portal-role-summary-item:last-child {
  border-bottom: 0;
}

.stcjmis-portal-role-summary-module {
  font-weight: 500;
}

.stcjmis-portal-role-summary-access {
  text-align: right;
  color: var(--bs-secondary-color);
}

.stcjmis-portal-role-summary-item--read_write .stcjmis-portal-role-summary-access {
  color: #198754;
}

.stcjmis-portal-role-summary-item--section_scoped .stcjmis-portal-role-summary-access {
  color: #198754;
}

.stcjmis-portal-role-summary-item--view .stcjmis-portal-role-summary-access {
  color: #0d6efd;
}

.stcjmis-portal-role-summary-item--none .stcjmis-portal-role-summary-access {
  color: var(--bs-secondary-color);
}

.stcjmis-portal-login-tab .field-portal_password .help-block.text-red {
  display: none;
}

.stcjmis-portal-login-fields .field-portal_account_controls {
  margin-top: 0.75rem;
}

.stcjmis-portal-login-fields .field-portal_account_controls .stcjmis-portal-login-field-control {
  grid-column: 2;
}

.stcjmis-portal-account-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.stcjmis-portal-account-actions .stcjmis-portal-account-btn {
  flex: 1 1 0;
  min-width: 0;
}

@media (max-width: 1199.98px) {
  .stcjmis-portal-login-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 991.98px) {
  .stcjmis-password-change-page .stcjmis-password-change-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 479.98px) {
  .stcjmis-portal-login-field {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }
}

.change-list .stcjmis-changelist-field,
.change-list #searchbar {
  width: 100%;
  min-width: 0;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
  background-color: #fff;
}

.change-list .stcjmis-action-select {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  height: var(--stcjmis-control-height);
  min-height: var(--stcjmis-control-height);
  max-height: var(--stcjmis-control-height);
  padding: 0.375rem 2rem 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
  background-color: #fff;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%236c757d' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 16px 12px;
}

.change-list .stcjmis-changelist-search-btn {
  width: 100%;
  min-width: 5.5rem;
  margin: 0 !important;
  white-space: nowrap;
}

.change-list .stcjmis-changelist-add-btn {
  background-color: var(--stcjmis-primary) !important;
  border-color: var(--stcjmis-primary) !important;
  color: #fff !important;
  height: var(--stcjmis-control-height);
  min-height: var(--stcjmis-control-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-top: 0;
  padding-bottom: 0;
  margin: 0;
  line-height: 1.5;
}

.change-list .stcjmis-changelist-add-btn:hover,
.change-list .stcjmis-changelist-add-btn:focus {
  background-color: var(--stcjmis-primary-hover) !important;
  border-color: var(--stcjmis-primary-hover) !important;
  color: #fff !important;
}

.change-list .stcjmis-accounts-toolbar {
  margin-bottom: 0.5rem;
}

.change-list .stcjmis-changelist-grid {
  --stcjmis-changelist-field-width: 22rem;
  display: grid;
  grid-template-columns: var(--stcjmis-changelist-field-width) 5.5rem;
  column-gap: 0.5rem;
  row-gap: 0.5rem;
  align-items: center;
  max-width: 100%;
}

.change-list .stcjmis-changelist-search-form {
  display: contents;
}

.change-list .stcjmis-changelist-search-form .stcjmis-changelist-field {
  grid-column: 1;
  grid-row: 1;
}

.change-list .stcjmis-changelist-search-form .stcjmis-changelist-search-btn {
  grid-column: 2;
  grid-row: 1;
}

.change-list .stcjmis-changelist-summary-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
}

.change-list .stcjmis-changelist-summary-row .stcjmis-changelist-summary {
  margin: 0;
  line-height: 1.5;
}

.change-list .stcjmis-changelist-summary-row .stcjmis-changelist-tools {
  display: flex;
  align-items: flex-end;
  flex-shrink: 0;
  margin-left: auto;
}

.change-list .stcjmis-changelist-roster-stats .stcjmis-admin-roster-summary {
  padding: 0.85rem 1rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.375rem;
  background-color: var(--bs-secondary-bg);
}

.change-list .stcjmis-changelist-roster-stats .stcjmis-admin-roster-summary__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.change-list .stcjmis-changelist-roster-stats .stcjmis-admin-roster-summary__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  flex: 1 1 auto;
  min-width: 0;
}

.change-list .stcjmis-changelist-roster-stats .stcjmis-admin-roster-summary__item {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: 0;
}

.change-list .stcjmis-changelist-roster-stats .stcjmis-admin-roster-summary__item dt {
  margin: 0;
  font-weight: 600;
  color: var(--bs-secondary-color);
}

.change-list .stcjmis-changelist-roster-stats .stcjmis-admin-roster-summary__item dd {
  margin: 0;
  font-variant-numeric: tabular-nums;
}

.change-list .stcjmis-changelist-inline-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: nowrap;
}

.change-list .stcjmis-changelist-inline-actions .stcjmis-school-id-export-btn {
  display: inline-flex;
  align-items: center;
  height: var(--stcjmis-control-height);
  min-height: var(--stcjmis-control-height);
  margin: 0;
  white-space: nowrap;
}

.change-list .stcjmis-school-id-export-btn.disabled {
  pointer-events: none;
  cursor: not-allowed;
  opacity: 1;
  color: #6c757d !important;
  background-color: #e9ecef !important;
  border-color: #ced4da !important;
  box-shadow: none;
}

.change-list .stcjmis-school-id-export-btn.disabled:hover,
.change-list .stcjmis-school-id-export-btn.disabled:focus {
  color: #6c757d !important;
  background-color: #e9ecef !important;
  border-color: #ced4da !important;
}

.change-list .stcjmis-school-id-export-btn--loading {
  pointer-events: none;
}

.change-list .stcjmis-school-id-export-btn--loading .stcjmis-school-id-export-btn__label {
  display: none;
}

.change-list .stcjmis-school-id-export-btn--loading .stcjmis-school-id-export-btn__loading {
  display: inline-flex !important;
  align-items: center;
  gap: 0.35rem;
}

.change-list .stcjmis-id-export-alert {
  margin-bottom: 0.75rem;
}

.change-list .stcjmis-changelist-actions-slot {
  grid-column: 1 / 3;
  grid-row: 2;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  max-width: calc(var(--stcjmis-changelist-field-width) + 5.5rem + 0.5rem);
}

.change-list .stcjmis-changelist-grid--no-search .stcjmis-changelist-actions-slot {
  grid-column: 1 / 3;
  grid-row: 1;
}

.change-list .stcjmis-changelist-actions-slot .stcjmis-changelist-actions-inner,
.change-list .stcjmis-changelist-actions-bar .stcjmis-changelist-actions-inner {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  width: 100%;
  max-width: 100%;
}

.change-list .stcjmis-changelist-actions-slot .stcjmis-changelist-actions-inner label,
.change-list .stcjmis-changelist-actions-bar .stcjmis-changelist-actions-inner label {
  flex: 0 0 var(--stcjmis-changelist-field-width);
  width: var(--stcjmis-changelist-field-width);
  max-width: var(--stcjmis-changelist-field-width);
  margin: 0;
  min-width: 0;
}

.change-list .stcjmis-changelist-actions-slot .stcjmis-changelist-actions-inner label select,
.change-list .stcjmis-changelist-actions-slot .stcjmis-changelist-actions-inner select[name="action"],
.change-list .stcjmis-changelist-actions-bar .stcjmis-changelist-actions-inner label select,
.change-list .stcjmis-changelist-actions-bar .stcjmis-changelist-actions-inner select[name="action"],
#changelist .actions select[name="action"],
#changelist .stcjmis-changelist-actions-inner select[name="action"] {
  display: block;
  width: 100%;
  box-sizing: border-box;
  height: var(--stcjmis-control-height) !important;
  min-height: var(--stcjmis-control-height) !important;
  max-height: var(--stcjmis-control-height) !important;
  padding: 0.375rem 2rem 0.375rem 0.75rem !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
  vertical-align: middle;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%236c757d' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 16px 12px;
}

.change-list .stcjmis-changelist-actions-slot .stcjmis-changelist-actions-inner .stcjmis-action-go,
.change-list .stcjmis-changelist-actions-bar .stcjmis-changelist-actions-inner .stcjmis-action-go,
#changelist .stcjmis-changelist-actions-inner .stcjmis-action-go {
  flex: 0 0 5.5rem;
  width: 5.5rem;
  min-width: 5.5rem;
  max-width: 5.5rem;
  box-sizing: border-box;
  height: var(--stcjmis-control-height) !important;
  min-height: var(--stcjmis-control-height) !important;
  max-height: var(--stcjmis-control-height) !important;
  margin: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.75rem !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
}

.change-list .stcjmis-changelist-actions-slot .stcjmis-changelist-actions-inner .action-counter,
.change-list .stcjmis-changelist-actions-bar .stcjmis-changelist-actions-inner .action-counter,
.change-list .stcjmis-changelist-actions-inner .question,
.change-list .stcjmis-changelist-actions-inner .all,
.change-list .stcjmis-changelist-actions-inner .clear {
  display: none !important;
}

.change-list .stcjmis-changelist-toolbar-end-only {
  display: flex;
  justify-content: flex-end;
}

.change-list .stcjmis-changelist-summary,
.change-list .stcjmis-accounts-summary {
  font-size: 0.95rem;
  color: #6c757d;
  margin: 0;
}

.change-list .stcjmis-pagination {
  margin-top: 0.75rem;
}

.change-list .stcjmis-pagination-list {
  gap: 0.35rem;
}

.change-list .stcjmis-pagination .page-item .page-link {
  border-radius: 0.375rem;
  border: 1px solid var(--stcjmis-primary);
  color: var(--stcjmis-primary);
  background-color: #fff;
  min-width: 2.25rem;
  text-align: center;
  padding: 0.35rem 0.65rem;
  font-weight: 500;
  line-height: 1.25;
}

.change-list .stcjmis-pagination .page-item.active .page-link {
  background-color: var(--stcjmis-primary);
  border-color: var(--stcjmis-primary);
  color: #fff;
}

.change-list .stcjmis-pagination .page-item.first.disabled .page-link,
.change-list .stcjmis-pagination .page-item.previous.disabled .page-link,
.change-list .stcjmis-pagination .page-item.next.disabled .page-link,
.change-list .stcjmis-pagination .page-item.last.disabled .page-link {
  color: #adb5bd;
  border-color: #dee2e6;
  background-color: #f8f9fa;
  pointer-events: none;
}

.change-list .stcjmis-pagination .page-item:not(.active):not(.disabled) .page-link:hover,
.change-list .stcjmis-pagination .page-item:not(.active):not(.disabled) .page-link:focus {
  background-color: var(--stcjmis-primary);
  border-color: var(--stcjmis-primary);
  color: #fff;
  box-shadow: none;
}

/* Admin tables: text left, numeric right, icons centered. */
.app-wrapper table.table th,
.app-wrapper table.table td {
  text-align: left;
  vertical-align: middle;
}

.app-wrapper table.table th.stcjmis-table-cell--numeric,
.app-wrapper table.table td.stcjmis-table-cell--numeric,
.change-list #result_list th.field-overlay_duration_seconds,
.change-list #result_list td.field-overlay_duration_seconds {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.change-list #result_list thead th.stcjmis-table-cell--numeric .text {
  text-align: right;
  width: 100%;
}

.app-wrapper table.table th.stcjmis-table-cell--center,
.app-wrapper table.table td.stcjmis-table-cell--center,
.change-list #result_list th.field-student_count,
.change-list #result_list td.field-student_count,
.change-list #result_list th.field-employee_count,
.change-list #result_list td.field-employee_count,
.change-list #result_list th.field-recipient_count,
.change-list #result_list td.field-recipient_count,
.change-list #result_list th.field-sort_order,
.change-list #result_list td.field-sort_order {
  text-align: center;
}

.change-list #result_list thead th.stcjmis-table-cell--center .text {
  text-align: center;
  width: 100%;
}

.app-wrapper table.table th.stcjmis-table-cell--icon,
.app-wrapper table.table td.stcjmis-table-cell--icon,
.change-list #result_list th.field-sms,
.change-list #result_list td.field-sms,
.change-list #result_list th.field-photo_status,
.change-list #result_list td.field-photo_status,
.change-list #result_list th.field-government_ids_status,
.change-list #result_list td.field-government_ids_status,
.change-list #result_list th.field-enrolled,
.change-list #result_list td.field-enrolled,
.change-list #result_list th.field-rfid_status,
.change-list #result_list td.field-rfid_status,
.change-list #result_list th.field-sex_code,
.change-list #result_list td.field-sex_code,
.change-list #result_list th.field-employed,
.change-list #result_list td.field-employed,
.change-list #result_list th.field-has_portal_login,
.change-list #result_list td.field-has_portal_login,
.change-list #result_list th.field-default_display,
.change-list #result_list td.field-default_display,
.change-list #result_list th.field-active_display,
.change-list #result_list td.field-active_display,
.change-list #result_list th.field-adviser_eligible_display,
.change-list #result_list td.field-adviser_eligible_display,
.change-list #result_list th.field-deployed,
.change-list #result_list td.field-deployed,
.change-list #result_list th.field-presence_status_badge,
.change-list #result_list td.field-presence_status_badge,
.change-list #result_list th.field-in_reader_status_badge,
.change-list #result_list td.field-in_reader_status_badge,
.change-list #result_list th.field-out_reader_status_badge,
.change-list #result_list td.field-out_reader_status_badge,
.change-list #result_list th.field-accounts_sync_status_badge,
.change-list #result_list td.field-accounts_sync_status_badge,
.change-list #result_list th.field-settings_sync_status_badge,
.change-list #result_list td.field-settings_sync_status_badge,
.change-list #result_list th.field-status_badge,
.change-list #result_list td.field-status_badge,
.change-list #result_list th.field-is_active_display,
.change-list #result_list td.field-is_active_display,
.change-list #result_list th.field-sms_dispatch_status_label,
.change-list #result_list td.field-sms_dispatch_status_label,
.change-list #result_list th.action-checkbox-column,
.change-list #result_list td.action-checkbox,
.change-list #result_list td:has(.stcjmis-boolean-indicator),
.change-list #result_list td:has(.stcjmis-sms-dispatch-status),
.change-list #result_list td:has(.stcjmis-edge-sync-status),
.change-list #result_list td:has(.stcjmis-f18-reader-status) {
  text-align: center;
}

.change-list #result_list th,
.change-list #result_list td {
  vertical-align: middle;
}

.change-list #result_list thead th {
  padding: 0.75rem;
  white-space: nowrap;
}

.change-list #result_list thead th .text {
  padding: 0;
  margin: 0;
}

.change-list #result_list tbody td {
  padding: 0.75rem;
}

.change-list #result_list th.djn-checkbox-select-all,
.change-list #result_list td.action-checkbox {
  width: 1.5em;
  min-width: 1.5em;
  max-width: 1.5em;
  padding-left: 0.75rem !important;
  padding-right: 0 !important;
}

.change-list #result_list th.djn-checkbox-select-all .text,
.change-list #result_list td.action-checkbox {
  display: table-cell;
}

.change-list #result_list th.djn-checkbox-select-all input,
.change-list #result_list td.action-checkbox input {
  margin: 0;
  float: none;
  vertical-align: middle;
}

.change-list #result_list tbody td a {
  padding-left: 0;
  margin-left: 0;
}

.change-list .stcjmis-accounts-table thead th {
  white-space: nowrap;
}

.change-list #result_list.stcjmis-accounts-table {
  table-layout: fixed;
  width: 100%;
}

.change-list #result_list.stcjmis-accounts-table tbody td {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.change-list #result_list.stcjmis-accounts-table tbody td.action-checkbox,
.change-list #result_list.stcjmis-accounts-table tbody td:has(.stcjmis-boolean-indicator),
.change-list #result_list.stcjmis-accounts-table tbody td:has(.stcjmis-sms-dispatch-status),
.change-list #result_list.stcjmis-accounts-table tbody td:has(.stcjmis-edge-sync-status),
.change-list #result_list.stcjmis-accounts-table tbody td:has(.stcjmis-f18-reader-status) {
  overflow: visible;
  text-overflow: clip;
}

.change-list #result_list tbody tr.stcjmis-changelist-row--clickable {
  cursor: pointer;
}

.change-list #result_list.table-striped > tbody > tr.stcjmis-changelist-row--clickable:hover > td,
.change-list #result_list.table-striped > tbody > tr.stcjmis-changelist-row--clickable:hover > td a {
  background-color: rgba(0, 86, 179, 0.06);
  box-shadow: none;
}

.change-list #result_list.stcjmis-section-roster-table th.field-campus,
.change-list #result_list.stcjmis-section-roster-table td.field-campus {
  width: 10%;
}

.change-list #result_list.stcjmis-section-roster-table th.field-section_category,
.change-list #result_list.stcjmis-section-roster-table td.field-section_category {
  width: 5rem;
  min-width: 5rem;
  max-width: 5rem;
  padding-left: 0.4rem;
  padding-right: 0.4rem;
}

.change-list #result_list.stcjmis-section-roster-table th.field-section_level,
.change-list #result_list.stcjmis-section-roster-table td.field-section_level {
  width: 5rem;
  min-width: 5rem;
  max-width: 5rem;
  padding-left: 0.4rem;
  padding-right: 0.4rem;
}

.change-list #result_list.stcjmis-section-roster-table th.field-name,
.change-list #result_list.stcjmis-section-roster-table td.field-name {
  width: 10%;
}

.change-list #result_list.stcjmis-section-roster-table th.field-adviser,
.change-list #result_list.stcjmis-section-roster-table td.field-adviser {
  width: 48%;
}

.change-list #result_list.stcjmis-section-roster-table th.field-student_count,
.change-list #result_list.stcjmis-section-roster-table td.field-student_count {
  width: 10%;
}

.change-list #result_list.stcjmis-student-roster-table th.djn-checkbox-select-all,
.change-list #result_list.stcjmis-student-roster-table td.action-checkbox {
  padding-right: 0.4rem !important;
}

.change-list #result_list.stcjmis-student-roster-table th.field-student_no,
.change-list #result_list.stcjmis-student-roster-table td.field-student_no {
  width: calc(8ch + 1.5rem);
  min-width: calc(8ch + 1.5rem);
  max-width: calc(8ch + 1.5rem);
  padding-left: 0.85rem;
  padding-right: 0.65rem;
  font-variant-numeric: tabular-nums;
}

.change-list #result_list.stcjmis-student-roster-table th.field-last_name,
.change-list #result_list.stcjmis-student-roster-table td.field-last_name {
  width: 17%;
  padding-left: 0.65rem;
  padding-right: 0.5rem;
}

.change-list #result_list.stcjmis-student-roster-table th.field-first_name,
.change-list #result_list.stcjmis-student-roster-table td.field-first_name {
  width: 17%;
  padding-left: 0.5rem;
  padding-right: 0.35rem;
}

.change-list #result_list.stcjmis-student-roster-table th.field-current_adviser,
.change-list #result_list.stcjmis-student-roster-table td.field-current_adviser {
  width: 27%;
  padding-left: 0.65rem;
  padding-right: 0.65rem;
}

.change-list #result_list.stcjmis-student-roster-table th.field-campus_code,
.change-list #result_list.stcjmis-student-roster-table td.field-campus_code {
  width: 7rem;
  min-width: 7rem;
  max-width: 7rem;
  padding-left: 0.65rem;
  padding-right: 0.4rem;
}

.change-list #result_list.stcjmis-student-roster-table th.field-enrollment_category,
.change-list #result_list.stcjmis-student-roster-table td.field-enrollment_category {
  width: 5rem;
  min-width: 5rem;
  max-width: 5rem;
  padding-left: 0.4rem;
  padding-right: 0.4rem;
}

.change-list #result_list.stcjmis-student-roster-table th.field-current_level,
.change-list #result_list.stcjmis-student-roster-table td.field-current_level {
  width: 5.5rem;
  min-width: 5.5rem;
  max-width: 5.5rem;
  padding-left: 0.4rem;
  padding-right: 0.4rem;
}

.change-list #result_list.stcjmis-student-roster-table th.field-current_section,
.change-list #result_list.stcjmis-student-roster-table td.field-current_section {
  width: 4.5rem;
  min-width: 4.5rem;
  max-width: 4.5rem;
  padding-left: 0.4rem;
  padding-right: 0.4rem;
}

.change-list #result_list.stcjmis-student-roster-table th.field-sex_code,
.change-list #result_list.stcjmis-student-roster-table td.field-sex_code {
  width: 2.5rem;
  min-width: 2.5rem;
  max-width: 2.5rem;
  padding-left: 0.35rem;
  padding-right: 0.5rem;
}

.change-list #result_list.stcjmis-student-roster-table th.field-enrolled,
.change-list #result_list.stcjmis-student-roster-table td.field-enrolled {
  width: 4.5rem;
  min-width: 4.5rem;
  max-width: 4.5rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  text-align: center;
}

.change-list #result_list.stcjmis-student-roster-table th.field-rfid_status,
.change-list #result_list.stcjmis-student-roster-table td.field-rfid_status {
  width: 3.25rem;
  min-width: 3.25rem;
  max-width: 3.25rem;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

.change-list #result_list.stcjmis-student-roster-table th.field-photo_status,
.change-list #result_list.stcjmis-student-roster-table td.field-photo_status {
  width: 3.25rem;
  min-width: 3.25rem;
  max-width: 3.25rem;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

.change-list #result_list.stcjmis-student-roster-table th.field-sms,
.change-list #result_list.stcjmis-student-roster-table td.field-sms {
  width: 3.25rem;
  min-width: 3.25rem;
  max-width: 3.25rem;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

.change-list #result_list.stcjmis-employee-roster-table th.djn-checkbox-select-all,
.change-list #result_list.stcjmis-employee-roster-table td.action-checkbox {
  padding-right: 0.4rem !important;
}

.change-list #result_list.stcjmis-employee-roster-table th.field-employee_no,
.change-list #result_list.stcjmis-employee-roster-table td.field-employee_no {
  width: calc(8ch + 1.2rem);
  min-width: calc(8ch + 1.2rem);
  max-width: calc(8ch + 1.2rem);
  padding-left: 0.65rem;
  padding-right: 0.5rem;
  font-variant-numeric: tabular-nums;
}

.change-list #result_list.stcjmis-employee-roster-table th.field-last_name,
.change-list #result_list.stcjmis-employee-roster-table td.field-last_name {
  width: 13%;
  padding-left: 0.5rem;
  padding-right: 0.4rem;
}

.change-list #result_list.stcjmis-employee-roster-table th.field-first_name,
.change-list #result_list.stcjmis-employee-roster-table td.field-first_name {
  width: 13%;
  padding-left: 0.4rem;
  padding-right: 0.35rem;
}

.change-list #result_list.stcjmis-employee-roster-table th.field-sex,
.change-list #result_list.stcjmis-employee-roster-table td.field-sex {
  width: 4.5rem;
  min-width: 4.5rem;
  max-width: 4.5rem;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

.change-list #result_list.stcjmis-employee-roster-table th.field-campus_code,
.change-list #result_list.stcjmis-employee-roster-table td.field-campus_code {
  width: 6.5rem;
  min-width: 6.5rem;
  max-width: 6.5rem;
  padding-left: 0.4rem;
  padding-right: 0.35rem;
}

.change-list #result_list.stcjmis-employee-roster-table th.field-job_title,
.change-list #result_list.stcjmis-employee-roster-table td.field-job_title {
  width: 14%;
  padding-left: 0.4rem;
  padding-right: 0.35rem;
}

.change-list #result_list.stcjmis-employee-roster-table th.field-portal_role,
.change-list #result_list.stcjmis-employee-roster-table td.field-portal_role {
  width: 9%;
  padding-left: 0.4rem;
  padding-right: 0.5rem;
}

.change-list #result_list.stcjmis-employee-roster-table th.field-employed,
.change-list #result_list.stcjmis-employee-roster-table td.field-employed {
  width: 4.25rem;
  min-width: 4.25rem;
  max-width: 4.25rem;
  padding-left: 0.3rem;
  padding-right: 0.3rem;
}

.change-list #result_list.stcjmis-employee-roster-table th.field-government_ids_status,
.change-list #result_list.stcjmis-employee-roster-table td.field-government_ids_status {
  width: 3.5rem;
  min-width: 3.5rem;
  max-width: 3.5rem;
  padding-left: 0.3rem;
  padding-right: 0.3rem;
}

.change-list #result_list.stcjmis-employee-roster-table th.field-rfid_status,
.change-list #result_list.stcjmis-employee-roster-table td.field-rfid_status {
  width: 2.75rem;
  min-width: 2.75rem;
  max-width: 2.75rem;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

.change-list #result_list.stcjmis-employee-roster-table th.field-photo_status,
.change-list #result_list.stcjmis-employee-roster-table td.field-photo_status {
  width: 3rem;
  min-width: 3rem;
  max-width: 3rem;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

.change-list #result_list.stcjmis-employee-roster-table th.field-has_portal_login,
.change-list #result_list.stcjmis-employee-roster-table td.field-has_portal_login {
  width: 5rem;
  min-width: 5rem;
  max-width: 5rem;
  padding-left: 0.3rem;
  padding-right: 0.3rem;
}

.change-list #result_list .stcjmis-boolean-indicator,
.stcjmis-change-form .stcjmis-boolean-indicator,
.stcjmis-blast-readonly-page .stcjmis-boolean-indicator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  box-sizing: border-box;
  vertical-align: middle;
}

.change-list #result_list .stcjmis-boolean-indicator--on,
.stcjmis-change-form .stcjmis-boolean-indicator--on,
.stcjmis-blast-readonly-page .stcjmis-boolean-indicator--on {
  color: var(--stcjmis-status-active-color);
  background-color: var(--stcjmis-status-active-bg);
  border: 1px solid var(--stcjmis-status-active-border);
}

.change-list #result_list .stcjmis-boolean-indicator--on .fa-check,
.change-list #result_list .stcjmis-boolean-indicator--off .fa-times,
.change-list #result_list .stcjmis-boolean-indicator--unknown .fa-question,
.stcjmis-change-form .stcjmis-boolean-indicator--on .fa-check,
.stcjmis-change-form .stcjmis-boolean-indicator--off .fa-times,
.stcjmis-change-form .stcjmis-boolean-indicator--unknown .fa-question,
.stcjmis-blast-readonly-page .stcjmis-boolean-indicator--on .fa-check,
.stcjmis-blast-readonly-page .stcjmis-boolean-indicator--off .fa-times,
.stcjmis-blast-readonly-page .stcjmis-boolean-indicator--unknown .fa-question {
  font-size: 0.625rem;
  line-height: 1;
}

.change-list #result_list .stcjmis-boolean-indicator--off,
.stcjmis-change-form .stcjmis-boolean-indicator--off,
.stcjmis-blast-readonly-page .stcjmis-boolean-indicator--off {
  color: var(--stcjmis-status-disabled-color);
  background-color: var(--stcjmis-status-disabled-bg);
  border: 1px solid var(--stcjmis-status-disabled-border);
}

.change-list #result_list .stcjmis-boolean-indicator--unknown,
.stcjmis-change-form .stcjmis-boolean-indicator--unknown,
.stcjmis-blast-readonly-page .stcjmis-boolean-indicator--unknown {
  color: var(--stcjmis-status-unknown-color);
  background-color: var(--stcjmis-status-unknown-bg);
  border: 1px solid var(--stcjmis-status-unknown-border);
}

/* Reusable compact note above admin fieldset fields (see admin_notes.py). */
.stcjmis-fieldset-note {
  margin: 0 0 0.5rem;
  font-size: 0.8rem;
  font-weight: 400;
  line-height: 1.35;
  color: #6c757d;
}

.stcjmis-change-form .card-header .stcjmis-fieldset-note {
  margin-bottom: 0;
}

.stcjmis-portal-login-status {
  margin: 0 0 0.5rem;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.35;
  color: var(--bs-body-color);
  background-color: rgba(var(--bs-primary-rgb), 0.08);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.2);
  border-radius: 0.375rem;
}

.stcjmis-change-form .tab-pane.stcjmis-portal-login-tab > .p-5 {
  padding: 0.75rem !important;
}

.stcjmis-change-form .stcjmis-portal-login-tab .stcjmis-plain-value {
  font-weight: 500;
}

/* Change form: compact fields, branded tabs, bottom actions, history sidebar */
.stcjmis-change-form .stcjmis-change-form-card .card-body {
  padding: 0.75rem 1rem;
}

.stcjmis-change-form .tab-content > .tab-pane > .p-5 {
  padding: 0.75rem !important;
}

.stcjmis-change-form .form-group {
  margin-bottom: 0.5rem;
}

.stcjmis-change-form .stcjmis-change-form-main .tab-content {
  width: 100%;
}

/* Personal Information: form panel (left) and photo panel (right). */
.stcjmis-change-form .tab-pane.stcjmis-personal-info-tab > .p-5,
.stcjmis-change-form .tab-pane.stcjmis-fieldset-panel-tab > .p-5 {
  padding: 0.75rem !important;
}

.stcjmis-personal-info-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(11rem, 30%);
  gap: 1rem;
  align-items: start;
  width: 100%;
  overflow: visible;
}

.stcjmis-change-form .tab-pane.stcjmis-personal-info-tab,
.stcjmis-change-form .tab-pane.stcjmis-fieldset-panel-tab,
.stcjmis-change-form .stcjmis-change-form-card .card-body {
  overflow: visible;
}

.stcjmis-personal-info-panel,
.stcjmis-fieldset-panel {
  border: 1px solid var(--bs-border-color);
  border-radius: 0.375rem;
  background-color: var(--bs-body-bg);
  padding: 0.75rem 1rem;
  min-width: 0;
  min-height: 100%;
  box-sizing: border-box;
}

.stcjmis-fieldset-panel {
  width: 100%;
}

.stcjmis-fieldset-panel .form-group .row {
  max-width: var(--stcjmis-change-form-row-max-width);
}

/* Checkbox/boolean fields: inline control + label (no split columns). */
.stcjmis-change-form .stcjmis-checkbox-field-row {
  max-width: var(--stcjmis-change-form-row-max-width);
}

.stcjmis-change-form .stcjmis-checkbox-field-row--aligned {
  max-width: none;
}

.stcjmis-change-form .stcjmis-checkbox-field-row--aligned .stcjmis-checkbox-control-align {
  min-height: var(--stcjmis-control-height, 2.375rem);
}

.stcjmis-change-form .stcjmis-checkbox-field-inner {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 1.75rem;
}

.stcjmis-change-form .stcjmis-checkbox-field-inner input[type="checkbox"] {
  margin: 0;
  width: 1.125rem;
  height: 1.125rem;
  flex: 0 0 auto;
  cursor: pointer;
  float: none;
  vertical-align: middle;
}

.stcjmis-change-form .stcjmis-checkbox-field-label {
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--bs-body-font-weight);
  line-height: 1.25;
  color: var(--bs-body-color);
  cursor: pointer;
}

/* Branded toggle switch for boolean fields (SMS enabled, etc.). */
.stcjmis-change-form .stcjmis-toggle-field-row {
  max-width: var(--stcjmis-change-form-row-max-width);
}

.stcjmis-change-form .stcjmis-toggle-field-row--aligned {
  max-width: none;
}

.stcjmis-change-form .stcjmis-toggle-field-row--aligned .stcjmis-toggle-control-align {
  min-height: var(--stcjmis-control-height, 2.375rem);
}

.stcjmis-change-form .stcjmis-toggle-field-inner {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  min-height: var(--stcjmis-control-height);
}

.stcjmis-change-form .stcjmis-toggle-field-label {
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--bs-body-font-weight);
  line-height: 1.25;
  color: var(--bs-body-color);
}

.stcjmis-change-form .stcjmis-toggle-switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin: 0;
  cursor: pointer;
  flex: 0 0 auto;
}

.stcjmis-change-form .stcjmis-toggle-switch__input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  pointer-events: none;
}

.stcjmis-change-form .stcjmis-toggle-switch__track {
  display: inline-block;
  width: 2.625rem;
  height: 1.375rem;
  background-color: var(--stcjmis-control-border);
  border-radius: 999px;
  transition: background-color 0.2s ease;
  position: relative;
}

.stcjmis-change-form .stcjmis-toggle-switch__thumb {
  position: absolute;
  top: 0.125rem;
  left: 0.125rem;
  width: 1.125rem;
  height: 1.125rem;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0, 11, 59, 0.18);
  transition: transform 0.2s ease;
}

.stcjmis-change-form .stcjmis-toggle-switch__input:checked + .stcjmis-toggle-switch__track {
  background-color: var(--stcjmis-primary);
}

.stcjmis-change-form
  .stcjmis-toggle-switch__input:checked
  + .stcjmis-toggle-switch__track
  .stcjmis-toggle-switch__thumb {
  transform: translateX(1.25rem);
}

.stcjmis-change-form .stcjmis-toggle-switch__input:focus-visible + .stcjmis-toggle-switch__track {
  box-shadow: var(--stcjmis-control-focus-ring);
  outline: none;
}

.stcjmis-change-form .stcjmis-toggle-switch__input:disabled + .stcjmis-toggle-switch__track {
  opacity: 0.55;
}

.stcjmis-change-form .stcjmis-toggle-switch:has(.stcjmis-toggle-switch__input:disabled) {
  cursor: not-allowed;
}

.stcjmis-personal-info-fields .form-group .row {
  max-width: 100%;
}

.stcjmis-personal-info-photo {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.5rem;
  height: auto;
  overflow: visible;
  padding: 0.75rem;
}

.stcjmis-personal-info-photo .form-group .row {
  max-width: 100%;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.stcjmis-photo-panel {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.5rem;
  width: 100%;
  min-height: 0;
}

.stcjmis-photo-panel .form-group,
.stcjmis-photo-panel .form-group .row,
.stcjmis-photo-panel .form-group .col-sm-9,
.stcjmis-photo-panel .readonly,
.stcjmis-photo-panel .stcjmis-account-photo,
.stcjmis-photo-panel .stcjmis-photo-upload-widget,
.stcjmis-photo-panel .stcjmis-photo-upload-actions {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.stcjmis-personal-info-photo .form-group {
  margin-bottom: 0;
}

.stcjmis-personal-info-photo .form-group.field-photo_preview {
  margin-bottom: 0;
}

.stcjmis-personal-info-photo .form-group.field-photo_preview > .row > label,
.stcjmis-personal-info-photo .form-group.field-photo_preview .col-sm-3 {
  display: none;
}

.stcjmis-personal-info-photo .form-group.field-photo_preview .col-sm-9 {
  flex: 0 0 100%;
  width: 100%;
  max-width: 100%;
}

.stcjmis-personal-info-photo .form-group.field-photo > .row {
  flex-direction: column;
  align-items: stretch;
}

.stcjmis-personal-info-photo .form-group.field-photo label {
  display: none;
}

.stcjmis-personal-info-photo .form-group.field-photo .col-sm-9 {
  flex: 0 0 100%;
  width: 100%;
  max-width: 100%;
}

.stcjmis-personal-info-photo .form-group.field-photo {
  flex: 0 0 auto;
  margin-top: 0;
}

.stcjmis-personal-info-photo .form-group.field-photo .col-sm-9 {
  overflow: visible;
  flex: 0 0 auto;
}

.stcjmis-photo-upload-widget {
  width: 100%;
  max-width: 100%;
  margin: 0;
}

.stcjmis-photo-file-input,
.stcjmis-photo-clear-checkbox {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  pointer-events: none;
}

.stcjmis-photo-upload-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.4rem;
  width: 100%;
}

.stcjmis-photo-upload-actions .btn {
  display: block;
  width: 100%;
  min-width: 0;
  font-size: 0.8rem;
  padding: 0.35rem 0.5rem;
  text-align: center;
  box-sizing: border-box;
}

.stcjmis-personal-info-photo .form-group.field-photo > .row {
  min-height: 0;
}

.stcjmis-account-photo {
  width: 100%;
  max-width: 100%;
  margin: 0;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.375rem;
  box-sizing: border-box;
}

.stcjmis-account-photo img.stcjmis-account-photo-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}

.stcjmis-account-photo--empty {
  flex-direction: column;
  gap: 0.5rem;
  color: #6c757d;
  text-align: center;
  background-color: #eef1f6;
  border-radius: 0.25rem;
  padding: 1rem 0.5rem;
}

.stcjmis-account-photo--empty .stcjmis-account-photo-icon {
  font-size: clamp(2.5rem, 40%, 4rem);
  line-height: 1;
  opacity: 0.45;
}

.stcjmis-account-photo--empty .stcjmis-account-photo-placeholder {
  font-size: 0.85rem;
  font-weight: 500;
  line-height: 1.2;
}

.stcjmis-account-photo--loading,
.stcjmis-account-photo--error {
  flex-direction: column;
  gap: 0.65rem;
  color: #6c757d;
  text-align: center;
  background-color: #eef1f6;
  padding: 1rem 0.5rem;
}

.stcjmis-account-photo--error {
  color: #842029;
  background-color: #f8d7da;
}

.stcjmis-account-photo--error .stcjmis-account-photo-error-icon {
  font-size: 1.75rem;
  line-height: 1;
}

.stcjmis-account-photo--error .stcjmis-account-photo-error-text,
.stcjmis-account-photo--loading .stcjmis-account-photo-loading-text {
  font-size: 0.85rem;
  font-weight: 500;
  line-height: 1.3;
  padding: 0 0.5rem;
}

.stcjmis-account-photo-spinner {
  width: 2.5rem;
  height: 2.5rem;
  border: 3px solid rgba(13, 110, 253, 0.15);
  border-top-color: var(--bs-primary, #0d6efd);
  border-radius: 50%;
  animation: stcjmis-photo-spin 0.8s linear infinite;
}

@keyframes stcjmis-photo-spin {
  to {
    transform: rotate(360deg);
  }
}

.stcjmis-change-form .stcjmis-photo-upload-widget .stcjmis-photo-upload-actions.stcjmis-validation-glow {
  border-radius: var(--bs-border-radius, 0.375rem);
}

.stcjmis-change-form .form-group .row {
  align-items: center;
  width: 100%;
  max-width: var(--stcjmis-change-form-row-max-width);
  --stcjmis-field-label-width: 15rem;
}

.stcjmis-change-form .form-group label.col-sm-3 {
  flex: 0 0 var(--stcjmis-field-label-width);
  width: var(--stcjmis-field-label-width);
  max-width: var(--stcjmis-field-label-width);
  padding-right: 0.5rem;
  margin-bottom: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.stcjmis-change-form .form-group .col-sm-9 {
  flex: 1 1 0;
  width: auto;
  min-width: 0;
  max-width: none;
}

.stcjmis-change-form .related-widget-wrapper-link,
.stcjmis-change-form .related-widget-wrapper .change-related,
.stcjmis-change-form .related-widget-wrapper .add-related,
.stcjmis-change-form .related-widget-wrapper .delete-related,
.stcjmis-change-form .related-widget-wrapper .view-related {
  display: none !important;
}

.stcjmis-change-form .related-widget-wrapper {
  display: flex;
  align-items: stretch;
  gap: 0;
  width: 100%;
}

.stcjmis-change-form .related-widget-wrapper select {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.stcjmis-change-form .field-birthdate .col-sm-9 input[type="date"],
.stcjmis-change-form .field-birthdate .col-sm-9 input.stcjmis-date-input,
.stcjmis-change-form .col-sm-9 input[type="date"].stcjmis-date-input {
  width: 100%;
  max-width: 100%;
  min-height: var(--stcjmis-control-height);
  box-sizing: border-box;
}

.stcjmis-change-form .col-sm-9 input[type="time"].stcjmis-time-input {
  width: 100%;
  max-width: 100%;
  min-height: var(--stcjmis-control-height);
  box-sizing: border-box;
}

.stcjmis-change-form .form-group .col-sm-9 input.form-control,
.stcjmis-change-form .form-group .col-sm-9 .vTextField,
.stcjmis-change-form .form-group .col-sm-9 input.vTextField,
.stcjmis-change-form .form-group .col-sm-9 input.vIntegerField,
.stcjmis-change-form .form-group .col-sm-9 input.vBigIntegerField,
.stcjmis-change-form .form-group .col-sm-9 input.vDecimalField {
  width: 100%;
  max-width: 100%;
  min-height: var(--stcjmis-control-height);
  box-sizing: border-box;
  padding: 0.375rem 0.75rem;
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--bs-body-font-weight);
  line-height: var(--bs-body-line-height);
}

.stcjmis-change-form .form-group .col-sm-9 select.form-control,
.stcjmis-change-form .form-group .col-sm-9 select:not([multiple]),
.stcjmis-change-form .related-widget-wrapper select:not([multiple]) {
  width: 100%;
  max-width: 100%;
  min-height: var(--stcjmis-control-height);
  box-sizing: border-box;
  padding: 0.375rem 2rem 0.375rem 0.75rem;
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--bs-body-font-weight);
  line-height: var(--bs-body-line-height);
}

.stcjmis-change-form .form-group .col-sm-9 textarea.form-control {
  width: 100%;
  max-width: 100%;
  min-height: var(--stcjmis-control-height);
  box-sizing: border-box;
  padding: 0.375rem 0.75rem;
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--bs-body-font-weight);
  line-height: var(--bs-body-line-height);
}

.stcjmis-change-form .stcjmis-ph-mobile-contact.input-group {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
}

.stcjmis-change-form .stcjmis-ph-mobile-contact .input-group-text.stcjmis-ph-mobile-contact__prefix {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-height: var(--stcjmis-control-height);
  padding: 0.375rem 0.65rem;
  border: 1px solid var(--stcjmis-control-border);
  border-right: 0;
  border-radius: var(--stcjmis-control-radius) 0 0 var(--stcjmis-control-radius);
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  background-color: var(--bs-tertiary-bg, #f8f9fa);
  color: var(--bs-body-color);
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--bs-body-font-weight);
  line-height: var(--bs-body-line-height);
  white-space: nowrap;
}

body.stcjmis-change-form .stcjmis-ph-mobile-contact > input.stcjmis-ph-mobile-contact__input,
body.stcjmis-change-form .stcjmis-ph-mobile-contact > input.form-control {
  flex: 1 1 auto;
  min-width: 0;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-right-radius: var(--stcjmis-control-radius);
  border-bottom-right-radius: var(--stcjmis-control-radius);
}

.stcjmis-change-form .stcjmis-inline-table .stcjmis-ph-mobile-contact {
  width: 100%;
}

.stcjmis-change-form .stcjmis-inline-table .stcjmis-ph-mobile-contact .input-group-text.stcjmis-ph-mobile-contact__prefix,
.stcjmis-change-form .stcjmis-inline-table .stcjmis-ph-mobile-contact__input {
  min-height: var(--stcjmis-control-height);
  box-sizing: border-box;
  font-size: var(--bs-body-font-size);
  line-height: var(--bs-body-line-height);
}

.stcjmis-change-form .stcjmis-inline-table .stcjmis-ph-mobile-contact .input-group-text.stcjmis-ph-mobile-contact__prefix {
  padding: 0.375rem 0.5rem;
}

.stcjmis-change-form .stcjmis-inline-table .stcjmis-ph-mobile-contact__input {
  padding: 0.375rem 0.5rem;
}

.stcjmis-change-form .stcjmis-sms-template {
  width: 100%;
  max-width: 100%;
}

.stcjmis-change-form .form-group .col-sm-9 .stcjmis-sms-template:not(.stcjmis-blast-message-preview) textarea.vTextField.form-control,
.stcjmis-change-form .form-group .col-sm-9 .stcjmis-sms-template:not(.stcjmis-blast-message-preview) textarea.form-control,
.stcjmis-change-form .form-group.field-template .col-sm-9 .stcjmis-sms-template textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  height: var(--stcjmis-textarea-3-line-height);
  min-height: var(--stcjmis-textarea-3-line-height);
  max-height: var(--stcjmis-textarea-3-line-height);
  resize: none;
  overflow-y: auto;
  box-sizing: border-box;
  padding: 0.375rem 0.75rem;
  line-height: 1.5;
}

body.stcjmis-blast-compose-draft
  .form-group
  .col-sm-9
  .stcjmis-blast-sms-body.stcjmis-sms-template
  textarea.form-control,
body.stcjmis-blast-compose-draft
  .form-group
  .col-sm-9
  .stcjmis-blast-sms-body.stcjmis-sms-template
  textarea.vTextField.form-control {
  height: var(--stcjmis-textarea-blast-height);
  min-height: var(--stcjmis-textarea-blast-height);
  max-height: none;
  resize: vertical;
}

.stcjmis-change-form .form-group.field-template .col-sm-9 .readonly {
  white-space: pre-wrap;
  overflow-y: auto;
  text-overflow: clip;
  min-height: var(--stcjmis-textarea-3-line-height);
  line-height: 1.5;
}

.stcjmis-change-form .stcjmis-sms-template__meta {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.35rem;
}

.stcjmis-change-form .stcjmis-sms-template__counter {
  font-size: 0.8125rem;
  color: var(--bs-secondary-color, #6c757d);
  font-variant-numeric: tabular-nums;
}

.stcjmis-change-form .stcjmis-sms-template__counter--over-limit {
  color: var(--bs-danger, #dc3545);
  font-weight: 600;
}

.stcjmis-change-form .field-address input#id_address {
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--bs-body-font-weight);
  line-height: var(--bs-body-line-height);
}

.stcjmis-change-form .form-group .col-sm-9 .readonly {
  width: 100%;
  max-width: 100%;
  padding: 0.375rem 0.75rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  background-color: var(--bs-secondary-bg);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stcjmis-change-form .form-group .col-sm-9 .readonly:has(.stcjmis-plain-value) {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  width: auto;
  max-width: none;
  box-shadow: none !important;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.stcjmis-change-form .form-group.field-computed_age .col-sm-9 .readonly,
.stcjmis-personal-info-fields .form-group.field-computed_age .readonly,
.stcjmis-fieldset-panel .form-group.field-computed_age .readonly {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  width: auto;
  max-width: none;
  box-shadow: none !important;
}

.stcjmis-change-form .form-group.field-routing_key_display .col-sm-9 .readonly,
.stcjmis-fieldset-panel .form-group.field-routing_key_display .readonly {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  width: auto;
  max-width: none;
  box-shadow: none !important;
}

.stcjmis-change-form .form-group.field-recipient_preview .col-sm-9 .readonly,
.stcjmis-fieldset-panel .form-group.field-recipient_preview .readonly {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  width: auto;
  max-width: none;
  box-shadow: none !important;
}

.stcjmis-change-form .form-group.field-status_display .col-sm-9 .readonly,
.stcjmis-fieldset-panel .form-group.field-status_display .readonly {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  width: auto;
  max-width: none;
  box-shadow: none !important;
}

body.stcjmis-blast-compose-draft .stcjmis-change-form-main {
  max-width: none;
}

/* Draft blast compose: use normal page scroll. */
body.stcjmis-blast-compose-draft .stcjmis-change-form-main {
  display: block;
  max-height: none;
  overflow: visible;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-compose-workspace {
  overflow: visible;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-compose-actions {
  margin-top: 1.25rem;
  padding-top: 1rem;
}

.stcjmis-blast-compose-actions .stcjmis-blast-compose-actions__trailing {
  margin-left: auto;
  gap: 0;
}

.stcjmis-blast-compose-actions .stcjmis-blast-compose-actions__trailing .stcjmis-submit-row__secondary {
  margin-left: 0;
}

.stcjmis-blast-compose-actions .stcjmis-blast-compose-actions__delete {
  margin-left: 1.25rem;
  padding-left: 1.25rem;
  border-left: 1px solid var(--bs-border-color);
}

.stcjmis-blast-compose-actions .stcjmis-submit-row__secondary .stcjmis-submit-row__action.btn-sm,
.stcjmis-blast-compose-actions .stcjmis-submit-row__destructive .stcjmis-submit-row__action.btn-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  box-sizing: border-box;
  min-height: var(--stcjmis-control-height);
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 400;
  border-radius: var(--stcjmis-control-radius);
}

body.stcjmis-blast-compose-draft .stcjmis-blast-compose-layout {
  display: grid;
  grid-template-columns: minmax(0, 34rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  width: 100%;
  height: auto;
  overflow: visible;
}

@media (max-width: 991.98px) {
  body.stcjmis-blast-compose-draft .stcjmis-blast-compose-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

body.stcjmis-blast-compose-draft .stcjmis-blast-compose-main .card-body,
body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-panel-col .card-body {
  padding: 0.75rem 1rem;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-compose-main .card-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-compose-main .form-group {
  margin-bottom: 0.35rem;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-compose-main .form-group .row,
body.stcjmis-blast-compose-draft .stcjmis-blast-compose-main .stcjmis-checkbox-field-row {
  max-width: none;
  --stcjmis-field-label-width: 10rem;
}

/* Compose rows drop the 32rem cap; audience pickers keep it globally — match campus width. */
body.stcjmis-blast-compose-draft .stcjmis-blast-compose-main .stcjmis-blast-audience-picker {
  max-width: 100%;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-compose-main .form-group.field-body label.col-sm-3 {
  padding-top: 0.45rem;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-compose-main .form-group.field-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  margin-bottom: 0;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-compose-main .form-group.field-body .row {
  flex: 1 1 auto;
  min-height: 0;
  align-items: stretch;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-compose-main .form-group.field-body .col-sm-9 {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

body.stcjmis-blast-compose-draft
  .stcjmis-blast-compose-main
  .form-group.field-body
  .stcjmis-blast-sms-body.stcjmis-sms-template {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

body.stcjmis-blast-compose-draft
  .stcjmis-blast-compose-main
  .form-group.field-body
  .stcjmis-blast-sms-body.stcjmis-sms-template
  textarea.form-control,
body.stcjmis-blast-compose-draft
  .stcjmis-blast-compose-main
  .form-group.field-body
  .stcjmis-blast-sms-body.stcjmis-sms-template
  textarea.vTextField.form-control {
  flex: 1 1 auto;
  height: auto;
  min-height: var(--stcjmis-textarea-blast-height);
  max-height: none;
  resize: none;
}

body.stcjmis-blast-compose-draft .form-group.field-body {
  display: none;
}

body.stcjmis-blast-compose-draft .form-group.field-message_preview .stcjmis-validation-glow-target.stcjmis-validation-glow {
  box-shadow: none !important;
  outline: none !important;
}

body.stcjmis-blast-compose-draft .col-sm-9 input[type="time"].stcjmis-time-input.form-control,
body.stcjmis-blast-compose-draft .col-sm-9 input.stcjmis-time-input.form-control {
  width: 100%;
  max-width: 100%;
  min-height: var(--stcjmis-control-height);
  flex: 1 1 auto;
  box-sizing: border-box;
}

body.stcjmis-blast-compose-draft
  .col-sm-9
  .stcjmis-validation-glow-target.stcjmis-validation-glow
  input[type="time"].stcjmis-time-input.form-control,
body.stcjmis-blast-compose-draft
  .col-sm-9
  .stcjmis-validation-glow-target.stcjmis-validation-glow
  input.stcjmis-time-input.form-control {
  width: 100%;
  max-width: 100%;
  min-height: var(--stcjmis-control-height);
}

body.stcjmis-blast-compose-draft textarea.stcjmis-blast-detail-input.form-control,
body.stcjmis-blast-compose-draft textarea.stcjmis-blast-detail-input.vTextField.form-control,
body.stcjmis-blast-compose-draft textarea.stcjmis-blast-message-preview__input.form-control,
body.stcjmis-blast-compose-draft textarea.stcjmis-blast-message-preview__input.vTextField.form-control {
  height: var(--stcjmis-blast-compose-textarea-height);
  min-height: var(--stcjmis-blast-compose-textarea-height);
  max-height: none;
  resize: none;
  overflow-y: auto;
}

body.stcjmis-blast-compose-draft textarea.stcjmis-blast-message-preview__input.form-control,
body.stcjmis-blast-compose-draft textarea.stcjmis-blast-message-preview__input.vTextField.form-control {
  background-color: var(--bs-secondary-bg);
}

body.stcjmis-blast-compose-draft .stcjmis-blast-compose-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-compose-main .card {
  flex: 0 0 auto;
  width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-panel-col,
body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-card {
  height: var(--stcjmis-blast-recipient-panel-height, auto);
  max-height: var(--stcjmis-blast-recipient-panel-height, none);
  overflow: hidden;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-panel-col {
  min-width: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-card {
  width: 100%;
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-card .card-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-panel {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1 1 auto;
  min-height: 0;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-panel__empty {
  flex: 1 1 auto;
  min-height: 0;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-panel__header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  flex-shrink: 0;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-panel__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-panel__summary {
  margin: 0;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-panel__loading {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  min-height: 8rem;
  color: var(--bs-secondary-color, #6c757d);
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-panel__loading[hidden] {
  display: none !important;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-panel__table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-table {
  width: 100%;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-table th,
body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-table td {
  vertical-align: middle;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-table th:last-child,
body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-table td:last-child {
  white-space: nowrap;
}

body.stcjmis-blast-compose-draft .stcjmis-blast-recipient-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--bs-body-bg);
}

.change-list #result_list.stcjmis-blast-messages-table {
  table-layout: auto;
  width: 100%;
}

.change-list #result_list.stcjmis-blast-messages-table tbody td {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}

.change-list #result_list.stcjmis-blast-messages-table tbody td.field-campus,
.change-list #result_list.stcjmis-blast-messages-table tbody td.field-sent_at,
.change-list #result_list.stcjmis-blast-messages-table tbody td.field-sent_by_display,
.change-list #result_list.stcjmis-blast-messages-table tbody td.field-recipient_count,
.change-list #result_list.stcjmis-blast-messages-table tbody td.field-status_badge {
  white-space: nowrap;
}

.change-list #result_list.stcjmis-blast-messages-table th.field-campus,
.change-list #result_list.stcjmis-blast-messages-table td.field-campus {
  width: 1%;
  white-space: nowrap;
  padding-right: 0.75rem;
}

.change-list #result_list.stcjmis-blast-messages-table th.field-audience_display,
.change-list #result_list.stcjmis-blast-messages-table td.field-audience_display {
  width: auto;
  max-width: 20rem;
  padding-right: 1rem;
}

.change-list #result_list.stcjmis-blast-messages-table th.field-status_badge,
.change-list #result_list.stcjmis-blast-messages-table td.field-status_badge {
  width: 1%;
  white-space: nowrap;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.change-list #result_list.stcjmis-blast-messages-table .stcjmis-sms-dispatch-status {
  width: auto;
  min-width: 5.25rem;
  max-width: 9.5rem;
}

.change-list #result_list.stcjmis-blast-messages-table th.field-recipient_count,
.change-list #result_list.stcjmis-blast-messages-table td.field-recipient_count {
  width: 1%;
  white-space: nowrap;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.change-list #result_list.stcjmis-blast-messages-table th.field-sent_at,
.change-list #result_list.stcjmis-blast-messages-table td.field-sent_at {
  width: 1%;
  white-space: nowrap;
  padding-left: 0.75rem;
}

.change-list #result_list.stcjmis-blast-messages-table th.field-sent_by_display,
.change-list #result_list.stcjmis-blast-messages-table td.field-sent_by_display {
  width: 1%;
  white-space: nowrap;
  padding-left: 0.75rem;
}

.change-list #result_list.stcjmis-blast-templates-table {
  table-layout: fixed;
  width: 100%;
}

.change-list #result_list.stcjmis-blast-templates-table th.field-sort_order,
.change-list #result_list.stcjmis-blast-templates-table td.field-sort_order {
  width: 6.75rem;
  white-space: nowrap;
  padding-left: 0.75rem;
  padding-right: 1rem;
}

.change-list #result_list.stcjmis-blast-templates-table th.field-label,
.change-list #result_list.stcjmis-blast-templates-table td.field-label {
  width: 12rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-right: 1rem;
}

.change-list #result_list.stcjmis-blast-templates-table th.field-audience_display,
.change-list #result_list.stcjmis-blast-templates-table td.field-audience_display {
  width: 7.5rem;
  white-space: nowrap;
  padding-right: 1rem;
}

.change-list #result_list.stcjmis-blast-templates-table th.field-template_preview,
.change-list #result_list.stcjmis-blast-templates-table td.field-template_preview {
  width: auto;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-right: 1.25rem;
}

.change-list #result_list.stcjmis-blast-templates-table th.field-is_active_display,
.change-list #result_list.stcjmis-blast-templates-table td.field-is_active_display {
  width: 6rem;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
  padding-left: 0.75rem;
  padding-right: 1rem;
}

.change-list #result_list.stcjmis-blast-templates-table th.field-updated_at_display,
.change-list #result_list.stcjmis-blast-templates-table td.field-updated_at_display {
  width: 12rem;
  white-space: nowrap;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.stcjmis-change-form.model-blastmessagetemplate .tab-pane.stcjmis-blast-template-message-shell-tab > .p-5 {
  padding: 0.75rem !important;
}

.stcjmis-blast-template-message-shell-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 42%);
  gap: 1rem;
  align-items: start;
  width: 100%;
}

.stcjmis-blast-template-message-shell-editor,
.stcjmis-blast-template-message-shell-reference {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}

.stcjmis-change-form.model-blastmessagetemplate .stcjmis-blast-template-message-shell-editor .form-group.field-template .row {
  max-width: none;
}

.stcjmis-change-form.model-blastmessagetemplate .stcjmis-blast-template-shell {
  width: 100%;
  max-width: none;
}

.stcjmis-change-form.model-blastmessagetemplate .stcjmis-blast-template-shell textarea,
.stcjmis-change-form.model-blastmessagetemplate
  .form-group.field-template
  .col-sm-9
  .stcjmis-blast-template-shell
  textarea.form-control,
.stcjmis-change-form.model-blastmessagetemplate
  .form-group.field-template
  .col-sm-9
  .stcjmis-blast-template-shell
  textarea.vTextField.form-control {
  display: block;
  width: 100%;
  max-width: 100%;
  height: var(--stcjmis-textarea-6-line-height);
  min-height: var(--stcjmis-textarea-6-line-height);
  max-height: var(--stcjmis-textarea-6-line-height);
  resize: none;
  overflow-y: auto;
  box-sizing: border-box;
  padding: 0.375rem 0.75rem;
  line-height: 1.5;
}

.stcjmis-change-form.model-blastmessagetemplate .stcjmis-blast-template-worst-case-length {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.stcjmis-change-form.model-blastmessagetemplate .stcjmis-blast-template-worst-case-length__label {
  color: var(--bs-secondary-color);
  font-size: 0.8125rem;
}

.stcjmis-change-form.model-blastmessagetemplate .stcjmis-blast-template-message-shell-reference .form-group.field-field_schema_display {
  margin: 0;
  width: 100%;
  max-width: none;
}

.stcjmis-change-form.model-blastmessagetemplate
  .stcjmis-blast-template-message-shell-reference
  .form-group.field-field_schema_display
  .col-sm-3 {
  display: none;
}

.stcjmis-change-form.model-blastmessagetemplate
  .stcjmis-blast-template-message-shell-reference
  .form-group.field-field_schema_display
  .row {
  width: 100%;
  max-width: none !important;
  margin-left: 0;
  margin-right: 0;
}

.stcjmis-change-form.model-blastmessagetemplate
  .stcjmis-blast-template-message-shell-reference
  .form-group.field-field_schema_display
  .col-sm-9 {
  flex: 0 0 100%;
  max-width: 100%;
  width: 100%;
}

.stcjmis-change-form.model-blastmessagetemplate
  .stcjmis-blast-template-message-shell-reference
  .form-group.field-field_schema_display
  .col-sm-9
  .readonly {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  width: 100%;
  max-width: none;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  box-shadow: none !important;
}

.stcjmis-change-form.model-blastmessagetemplate .stcjmis-blast-template-schema {
  width: 100%;
  max-width: 100%;
}

.stcjmis-change-form.model-blastmessagetemplate .stcjmis-blast-template-schema-heading {
  margin: 0 0 0.15rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--bs-body-color);
}

.stcjmis-change-form.model-blastmessagetemplate .stcjmis-blast-template-schema-note {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  color: var(--bs-secondary-color);
}

.stcjmis-change-form.model-blastmessagetemplate .stcjmis-blast-template-schema-panel {
  width: 100%;
  max-width: 100%;
}

.stcjmis-change-form.model-blastmessagetemplate .stcjmis-blast-template-schema-table {
  width: 100%;
  min-width: 0;
}

.stcjmis-change-form.model-blastmessagetemplate .stcjmis-blast-template-schema-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--bs-body-bg);
  white-space: nowrap;
}

.stcjmis-change-form.model-blastmessagetemplate .stcjmis-blast-template-schema-table tbody td {
  white-space: nowrap;
}

@media (max-width: 991.98px) {
  .stcjmis-blast-template-message-shell-layout {
    grid-template-columns: 1fr;
  }
}

.change-list #result_list.stcjmis-local-servers-table {
  table-layout: auto;
}

.change-list #result_list.stcjmis-local-servers-table th.field-deployed,
.change-list #result_list.stcjmis-local-servers-table td.field-deployed {
  width: 1%;
  white-space: nowrap;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.change-list #result_list.stcjmis-local-servers-table th.field-presence_status_badge,
.change-list #result_list.stcjmis-local-servers-table td.field-presence_status_badge,
.change-list #result_list.stcjmis-local-servers-table th.field-accounts_sync_status_badge,
.change-list #result_list.stcjmis-local-servers-table td.field-accounts_sync_status_badge,
.change-list #result_list.stcjmis-local-servers-table th.field-settings_sync_status_badge,
.change-list #result_list.stcjmis-local-servers-table td.field-settings_sync_status_badge,
.change-list #result_list.stcjmis-local-servers-table th.field-sms_dispatch_status_label,
.change-list #result_list.stcjmis-local-servers-table td.field-sms_dispatch_status_label {
  width: 1%;
  white-space: nowrap;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.change-list #result_list.stcjmis-local-servers-table th.field-last_sync_at_display,
.change-list #result_list.stcjmis-local-servers-table td.field-last_sync_at_display {
  width: 1%;
  min-width: 10rem;
  white-space: nowrap;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.change-list #result_list.stcjmis-local-servers-table tbody td.field-last_sync_at_display {
  overflow: visible;
  text-overflow: clip;
}

.change-list #result_list.stcjmis-local-servers-table th.field-software_version_display,
.change-list #result_list.stcjmis-local-servers-table td.field-software_version_display {
  width: 1%;
  white-space: nowrap;
  padding-left: 0.75rem;
}

.stcjmis-blast-send-preview-modal .modal-content {
  border: 1px solid var(--bs-border-color);
  border-radius: var(--stcjmis-control-radius);
  box-shadow: 0 0.5rem 1.5rem rgba(0, 11, 59, 0.12);
  overflow: hidden;
}

.stcjmis-blast-send-preview-modal .modal-header {
  border-bottom: 1px solid var(--bs-border-color);
  padding: 1rem 1.25rem;
}

.stcjmis-blast-send-preview-modal .modal-title {
  font-weight: 600;
  color: var(--stcjmis-primary);
}

.stcjmis-blast-send-preview-modal .modal-header .btn-close:focus {
  box-shadow: var(--stcjmis-control-focus-ring);
}

.stcjmis-blast-send-preview-modal .modal-body {
  padding: 1rem 1.25rem;
}

.stcjmis-blast-send-preview-modal__divider {
  margin: 0;
  border: 0;
  border-top: 1px solid var(--bs-border-color);
  opacity: 1;
}

.stcjmis-blast-send-preview-modal__footer {
  border-top: none;
  padding: 0.75rem 1.25rem;
  gap: 0.5rem;
}

.stcjmis-blast-send-preview-modal__footer .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--stcjmis-control-height);
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  border-radius: var(--stcjmis-control-radius);
}

.stcjmis-blast-send-preview-modal__intro {
  color: var(--bs-body-color);
}

.stcjmis-blast-send-preview-modal__summary dt {
  font-weight: 600;
  color: var(--bs-secondary-color);
}

.stcjmis-blast-send-preview-modal__summary dd {
  margin-bottom: 0.35rem;
}

.stcjmis-blast-send-preview-modal__label {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--bs-secondary-color);
}

.stcjmis-blast-send-preview-modal__message {
  white-space: pre-wrap;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--stcjmis-control-radius);
  background-color: var(--bs-secondary-bg);
  padding: 0.65rem 0.75rem;
  min-height: 3rem;
  max-height: 8rem;
  overflow: auto;
}

.stcjmis-blast-send-preview-modal__table-wrap {
  max-height: 16rem;
  overflow: auto;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--stcjmis-control-radius);
}

.stcjmis-blast-send-preview-modal__table thead th {
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid var(--bs-border-color);
  white-space: nowrap;
  vertical-align: middle;
}

.stcjmis-blast-send-preview-modal__table tbody td {
  padding: 0.65rem 0.75rem;
  vertical-align: middle;
}

.stcjmis-blast-send-preview-modal__warning {
  margin-top: 0.75rem;
  font-size: 0.875rem;
}

.stcjmis-personal-info-photo .field-photo_preview .readonly {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  width: 100%;
  max-width: 100%;
  box-shadow: none !important;
}

.stcjmis-change-form .stcjmis-plain-value {
  display: inline-block;
  max-width: 100%;
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--bs-body-font-weight);
  line-height: var(--bs-body-line-height);
  color: var(--bs-body-color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stcjmis-change-form .stcjmis-edge-device-panel .col-sm-9 .readonly {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  width: auto;
  max-width: none;
  box-shadow: none !important;
}

/* Syncing tab: compact HH:MM inputs aligned like other change-form fields. */
.stcjmis-fieldset-panel-note .stcjmis-syncing-schedule-notes {
  margin: 0;
  padding-left: 1.25rem;
  color: var(--bs-body-color);
}

.stcjmis-fieldset-panel-note .stcjmis-syncing-schedule-notes li + li {
  margin-top: 0.25rem;
}

.stcjmis-change-form .stcjmis-edge-syncing-panel .stcjmis-validation-glow-target {
  display: inline-block;
  width: auto;
  max-width: none;
}

.stcjmis-change-form .stcjmis-edge-syncing-panel .stcjmis-validation-glow-target.stcjmis-validation-glow {
  width: auto;
  max-width: none;
}

.stcjmis-change-form .stcjmis-edge-syncing-panel input[type="time"].stcjmis-time-input.form-control,
.stcjmis-change-form .stcjmis-edge-syncing-panel input.stcjmis-time-input.form-control {
  width: 100%;
  max-width: 12rem;
  min-height: var(--stcjmis-control-height);
  flex: 0 0 auto;
  box-sizing: border-box;
}

.stcjmis-change-form
  .stcjmis-edge-syncing-panel
  .stcjmis-validation-glow-target.stcjmis-validation-glow
  input[type="time"].stcjmis-time-input.form-control,
.stcjmis-change-form
  .stcjmis-edge-syncing-panel
  .stcjmis-validation-glow-target.stcjmis-validation-glow
  input.stcjmis-time-input.form-control {
  width: 100%;
  max-width: 12rem;
  min-height: var(--stcjmis-control-height);
}

.stcjmis-change-form .form-group.field-virtual_tap_controls .col-sm-9 .readonly {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  width: auto;
  max-width: none;
  box-shadow: none !important;
}

.stcjmis-change-form .stcjmis-virtual-tap-field {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.stcjmis-change-form .stcjmis-virtual-tap-field .stcjmis-virtual-tap-btn {
  background-color: #fff !important;
  box-shadow: none !important;
}

.stcjmis-change-form .stcjmis-virtual-tap-field .stcjmis-virtual-tap-btn:hover,
.stcjmis-change-form .stcjmis-virtual-tap-field .stcjmis-virtual-tap-btn:focus {
  background-color: var(--stcjmis-primary) !important;
  border-color: var(--stcjmis-primary) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.stcjmis-change-form .stcjmis-api-key-field {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}

.stcjmis-change-form.model-edgedevice .field-api_key_display .col-sm-9 .readonly {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  width: auto;
  max-width: none;
  box-shadow: none !important;
  overflow: visible !important;
  border-radius: 0 !important;
}

.stcjmis-change-form.model-edgedevice .field-api_key_display .stcjmis-provider-field__view {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  max-width: var(--stcjmis-change-form-row-max-width);
}

.stcjmis-change-form.model-edgedevice .field-api_key_display .stcjmis-provider-field__value {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

.stcjmis-change-form.model-edgedevice .field-api_key_display .stcjmis-provider-field__value--masked {
  font-family: var(--stcjmis-mono-font, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);
  letter-spacing: 0.04em;
}

.stcjmis-change-form.model-edgedevice .field-api_key_display .stcjmis-provider-field__change,
.stcjmis-change-form.model-edgedevice .field-api_key_display .stcjmis-copy-api-key {
  flex: 0 0 auto;
  white-space: nowrap;
  justify-self: start;
  min-height: var(--stcjmis-control-height);
  border-radius: var(--stcjmis-control-radius) !important;
  box-shadow: none !important;
}

.stcjmis-change-form .stcjmis-api-key-inline {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
}

.stcjmis-change-form .stcjmis-api-key-inline .stcjmis-api-key-reveal {
  word-break: break-all;
}

.stcjmis-change-form .stcjmis-api-key-inline .stcjmis-copy-api-key {
  flex-shrink: 0;
  margin-left: 0.75rem;
}

.stcjmis-change-form #jazzy-tabs {
  border-bottom: 1px solid var(--bs-border-color);
  gap: 0.25rem;
}

.stcjmis-change-form #jazzy-tabs .nav-link {
  color: var(--stcjmis-primary);
  border-radius: 0.375rem 0.375rem 0 0;
  margin-bottom: -1px;
  padding: 0.5rem 1rem;
}

.stcjmis-change-form #jazzy-tabs .nav-link:not(.active) {
  border-top: 1px solid var(--bs-border-color);
  border-right: 1px solid var(--bs-border-color);
  border-left: 0;
  border-bottom: 0;
  background-color: transparent;
}

.stcjmis-change-form #jazzy-tabs .nav-link:hover:not(.active) {
  color: var(--stcjmis-primary-hover);
  background-color: rgba(0, 11, 59, 0.06);
}

.stcjmis-change-form #jazzy-tabs .nav-link.stcjmis-tab-locked {
  pointer-events: none;
  opacity: 0.45;
  cursor: not-allowed;
}

.stcjmis-change-form #jazzy-tabs .nav-link.active {
  color: #fff;
  background-color: var(--stcjmis-primary);
  border: none;
  border-bottom: 1px solid var(--stcjmis-primary);
  position: relative;
  z-index: 1;
}

.stcjmis-change-form-actions {
  padding-top: 0.75rem;
  border-top: 1px solid var(--bs-border-color);
  overflow: visible;
}

.stcjmis-submit-row {
  width: 100%;
  gap: 0.75rem;
  overflow: visible;
}

.stcjmis-submit-row__constructive,
.stcjmis-submit-row__destructive,
.stcjmis-submit-row__secondary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.stcjmis-submit-row__secondary {
  margin-left: auto;
  overflow: visible;
}

.stcjmis-submit-row__destructive {
  margin-left: 0;
}

.stcjmis-save-split-button {
  display: inline-flex;
  align-items: stretch;
  gap: 0;
  vertical-align: middle;
}

/* Solid primary save CTA — overrides global outline button theme. */
.app-wrapper .stcjmis-save-split-button > .btn.btn-outline-primary:not(.dropdown-item),
.app-wrapper .stcjmis-save-split-button > .btn.btn-primary:not(.dropdown-item),
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-save-split-button__primary.btn-outline-primary:not(.dropdown-item),
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-save-split-button__primary.btn-primary:not(.dropdown-item) {
  min-height: var(--stcjmis-control-height);
  margin: 0;
  position: relative;
  background-color: var(--stcjmis-primary) !important;
  border: 1px solid var(--stcjmis-primary) !important;
  color: #fff !important;
  box-shadow: none;
}

.app-wrapper .stcjmis-save-split-button > .btn.btn-outline-primary:not(.dropdown-item):hover,
.app-wrapper .stcjmis-save-split-button > .btn.btn-primary:not(.dropdown-item):hover,
.app-wrapper .stcjmis-save-split-button > .btn.btn-outline-primary:not(.dropdown-item):focus-visible,
.app-wrapper .stcjmis-save-split-button > .btn.btn-primary:not(.dropdown-item):focus-visible,
.app-wrapper .stcjmis-save-split-button > .btn.btn-outline-primary:not(.dropdown-item):active,
.app-wrapper .stcjmis-save-split-button > .btn.btn-primary:not(.dropdown-item):active,
.app-wrapper .stcjmis-save-split-button > .btn.btn-outline-primary:not(.dropdown-item).show,
.app-wrapper .stcjmis-save-split-button > .btn.btn-primary:not(.dropdown-item).show,
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-save-split-button__primary.btn-outline-primary:not(.dropdown-item):hover,
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-save-split-button__primary.btn-primary:not(.dropdown-item):hover,
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-save-split-button__primary.btn-outline-primary:not(.dropdown-item):focus-visible,
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-save-split-button__primary.btn-primary:not(.dropdown-item):focus-visible,
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-save-split-button__primary.btn-outline-primary:not(.dropdown-item):active,
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-save-split-button__primary.btn-primary:not(.dropdown-item):active {
  background-color: var(--stcjmis-primary-hover) !important;
  border-color: var(--stcjmis-primary-hover) !important;
  color: #fff !important;
  z-index: 2;
}

.stcjmis-save-split-button > .btn + .btn {
  margin-left: -1px;
}

.stcjmis-save-split-button > .stcjmis-save-split-button__primary {
  font-weight: 600;
  padding-inline: 1rem;
  border-top-left-radius: var(--stcjmis-control-radius);
  border-bottom-left-radius: var(--stcjmis-control-radius);
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.stcjmis-save-split-button > .stcjmis-save-split-button__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  padding-inline: 0.625rem;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-right-radius: var(--stcjmis-control-radius);
  border-bottom-right-radius: var(--stcjmis-control-radius);
}

.stcjmis-save-split-button > .stcjmis-save-split-button__toggle::before {
  content: "";
  position: absolute;
  left: 0;
  top: 22%;
  bottom: 22%;
  width: 1px;
  background-color: rgba(255, 255, 255, 0.28);
  pointer-events: none;
}

.stcjmis-save-split-button > .stcjmis-save-split-button__toggle::after {
  margin-left: 0;
  vertical-align: 0;
  border-top-color: rgba(255, 255, 255, 0.92);
}

.stcjmis-submit-row__constructive > .stcjmis-save-split-button__primary {
  border-radius: var(--stcjmis-control-radius);
  font-weight: 600;
  padding-inline: 1rem;
}

/* Solid primary CTA for blast send — overrides global outline button theme. */
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-blast-send-btn.btn-outline-primary:not(.dropdown-item),
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-blast-send-btn.btn-primary:not(.dropdown-item),
.app-wrapper .stcjmis-blast-send-preview-modal__footer .stcjmis-blast-send-btn.btn-outline-primary:not(.dropdown-item),
.app-wrapper .stcjmis-blast-send-preview-modal__footer .stcjmis-blast-send-btn.btn-primary:not(.dropdown-item) {
  min-height: var(--stcjmis-control-height);
  margin: 0;
  background-color: var(--stcjmis-primary) !important;
  border: 1px solid var(--stcjmis-primary) !important;
  color: #fff !important;
  box-shadow: none;
  font-weight: 600;
  padding-inline: 1rem;
  border-radius: var(--stcjmis-control-radius);
}

.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-blast-send-btn.btn-outline-primary:not(.dropdown-item):hover,
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-blast-send-btn.btn-primary:not(.dropdown-item):hover,
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-blast-send-btn.btn-outline-primary:not(.dropdown-item):focus-visible,
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-blast-send-btn.btn-primary:not(.dropdown-item):focus-visible,
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-blast-send-btn.btn-outline-primary:not(.dropdown-item):active,
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-blast-send-btn.btn-primary:not(.dropdown-item):active,
.app-wrapper .stcjmis-blast-send-preview-modal__footer .stcjmis-blast-send-btn.btn-outline-primary:not(.dropdown-item):hover,
.app-wrapper .stcjmis-blast-send-preview-modal__footer .stcjmis-blast-send-btn.btn-primary:not(.dropdown-item):hover,
.app-wrapper .stcjmis-blast-send-preview-modal__footer .stcjmis-blast-send-btn.btn-outline-primary:not(.dropdown-item):focus-visible,
.app-wrapper .stcjmis-blast-send-preview-modal__footer .stcjmis-blast-send-btn.btn-primary:not(.dropdown-item):focus-visible,
.app-wrapper .stcjmis-blast-send-preview-modal__footer .stcjmis-blast-send-btn.btn-outline-primary:not(.dropdown-item):active,
.app-wrapper .stcjmis-blast-send-preview-modal__footer .stcjmis-blast-send-btn.btn-primary:not(.dropdown-item):active {
  background-color: var(--stcjmis-primary-hover) !important;
  border-color: var(--stcjmis-primary-hover) !important;
  color: #fff !important;
}

.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-blast-send-btn:disabled,
.app-wrapper .stcjmis-submit-row__constructive > .stcjmis-blast-send-btn[disabled],
.app-wrapper .stcjmis-blast-send-preview-modal__footer .stcjmis-blast-send-btn:disabled,
.app-wrapper .stcjmis-blast-send-preview-modal__footer .stcjmis-blast-send-btn[disabled] {
  opacity: 0.55;
  pointer-events: none;
  cursor: not-allowed;
}

.stcjmis-save-split-button__menu {
  min-width: 12.5rem;
}

.stcjmis-save-split-button__option {
  width: 100%;
  text-align: left;
  font-weight: 500;
}

.stcjmis-submit-row__secondary .stcjmis-submit-row__action.btn-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  box-sizing: border-box;
  min-height: var(--stcjmis-control-height);
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 400;
}

.app-wrapper .stcjmis-submit-row__secondary .stcjmis-history-toggle[aria-expanded="true"] {
  background-color: #fff !important;
  border-color: #6c757d !important;
  color: #6c757d !important;
  box-shadow: none;
}

.stcjmis-history-overlay-root {
  position: relative;
  flex-shrink: 0;
  overflow: visible;
}

.app-main,
.app-footer {
  transition: margin-right 0.25s ease-out;
}

body.stcjmis-history-drawer-open .app-main,
body.stcjmis-history-drawer-open .app-footer {
  margin-right: var(--stcjmis-history-drawer-width);
}

@media (max-width: 1199.98px) {
  body.stcjmis-history-drawer-open .app-main,
  body.stcjmis-history-drawer-open .app-footer {
    margin-right: 0;
  }
}

.stcjmis-history-overlay {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1020;
  width: 0;
  height: 0;
  overflow: visible;
  pointer-events: none;
}

.stcjmis-history-overlay__panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 1020;
  display: flex;
  flex-direction: column;
  width: min(var(--stcjmis-history-drawer-width), 100vw);
  max-width: 100vw;
  overflow: hidden;
  background: var(--bs-body-bg);
  border: 0;
  border-left: 1px solid var(--bs-border-color);
  border-radius: 0;
  box-shadow: -0.35rem 0 1rem rgba(0, 11, 59, 0.12);
  padding: var(--stcjmis-header-height) 0 0;
  pointer-events: auto;
  transform: translateX(100%);
  transition: transform 0.25s ease-out;
}

.stcjmis-history-overlay-open .stcjmis-history-overlay__panel {
  transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
  .app-main,
  .app-footer,
  .stcjmis-history-overlay__panel {
    transition: none;
  }
}

.stcjmis-history-overlay__header {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0;
  padding: 1.25rem 1.5rem 1rem;
}

.stcjmis-history-overlay__content {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 0 1.5rem 1.5rem;
}

.stcjmis-history-overlay__header h4 {
  color: var(--stcjmis-primary);
  font-weight: 600;
  font-size: 1rem;
}

.stcjmis-history-overlay__content .stcjmis-history-module > h4 {
  display: none;
}

.stcjmis-object-history-panel .stcjmis-history-module {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}

.stcjmis-object-history-panel h4 {
  color: var(--stcjmis-primary);
  font-weight: 600;
  font-size: 1rem;
}

.stcjmis-history-list {
  margin: 0;
  padding: 0;
}

.stcjmis-history-entry {
  display: flex;
  gap: 0.75rem;
  align-items: stretch;
}

.stcjmis-history-entry + .stcjmis-history-entry {
  margin-top: 0.75rem;
}

.stcjmis-history-entry__track {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 1rem;
  flex-shrink: 0;
}

.stcjmis-history-entry__line {
  flex: 1 1 auto;
  width: 1px;
  min-height: 0.1rem;
  background-color: var(--bs-border-color);
}

.stcjmis-history-entry:first-child .stcjmis-history-entry__line:first-child,
.stcjmis-history-entry:last-child .stcjmis-history-entry__line:last-child {
  flex: 0;
  min-height: 0;
  background-color: transparent;
}

.stcjmis-history-entry__body {
  min-width: 0;
  padding-bottom: 0.25rem;
}

.stcjmis-history-entry:last-child .stcjmis-history-entry__body {
  padding-bottom: 0;
}

.stcjmis-history-entry__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  margin: 0.15rem 0;
  border-radius: 50%;
  font-size: 0.5rem;
  flex-shrink: 0;
  color: #fff;
  background-color: var(--stcjmis-primary);
}

.stcjmis-history-entry__icon--success {
  background-color: var(--bs-success);
}

.stcjmis-history-entry__icon--warning {
  background-color: var(--bs-warning);
}

.stcjmis-history-entry__icon--danger {
  background-color: var(--bs-danger);
}

.stcjmis-history-entry__icon--info {
  background-color: var(--bs-info);
}

.stcjmis-history-entry__icon--primary {
  background-color: var(--stcjmis-primary);
}

.stcjmis-history-entry__icon--secondary {
  background-color: var(--bs-secondary);
}

.stcjmis-object-history-panel .stcjmis-history-date {
  display: block;
  margin-bottom: 0.15rem;
  color: var(--bs-secondary-color);
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.3;
}

.stcjmis-history-entry__text {
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--bs-body-color);
}

/* Tabular inlines (Guardians, Enrollments, Buildings, etc.) */
.stcjmis-change-form .stcjmis-inline-tabular td.original,
.stcjmis-change-form .stcjmis-inline-tabular th.original {
  display: none;
  width: 0;
  padding: 0;
  border: 0;
}

.stcjmis-change-form .stcjmis-building-inline .stcjmis-inline-table th.column-name,
.stcjmis-change-form .stcjmis-building-inline .stcjmis-inline-table td.field-name {
  width: 65%;
}

.stcjmis-change-form .stcjmis-building-inline .stcjmis-inline-table th.column-code,
.stcjmis-change-form .stcjmis-building-inline .stcjmis-inline-table td.field-code {
  width: 35%;
}

.stcjmis-change-form .stcjmis-gate-inline .stcjmis-inline-table th.column-building,
.stcjmis-change-form .stcjmis-gate-inline .stcjmis-inline-table td.field-building {
  width: 40%;
}

.stcjmis-change-form .stcjmis-gate-inline .stcjmis-inline-table th.column-name,
.stcjmis-change-form .stcjmis-gate-inline .stcjmis-inline-table td.field-name {
  width: 60%;
}

.stcjmis-change-form .stcjmis-enrollment-inline.inline-group {
  overflow-x: auto;
}

.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table {
  table-layout: auto;
  width: 100%;
}

.stcjmis-change-form .stcjmis-section-students-roster-tab-panel {
  width: 100%;
}

.stcjmis-change-form .tab-pane.stcjmis-section-students-roster-tab .form-group.field-students_roster,
.stcjmis-change-form .stcjmis-section-students-roster-tab-panel .form-group.field-students_roster {
  width: 100%;
  max-width: none;
}

.stcjmis-change-form.model-section .form-group.field-students_roster .col-sm-3 {
  display: none;
}

.stcjmis-change-form .tab-pane.stcjmis-section-students-roster-tab .form-group.field-students_roster .row,
.stcjmis-change-form .stcjmis-section-students-roster-tab-panel .form-group.field-students_roster .row,
.stcjmis-change-form.model-section .form-group.field-students_roster .row {
  width: 100%;
  max-width: none !important;
  margin-left: 0;
  margin-right: 0;
}

.stcjmis-change-form .tab-pane.stcjmis-section-students-roster-tab .form-group.field-students_roster .col-sm-9,
.stcjmis-change-form .stcjmis-section-students-roster-tab-panel .form-group.field-students_roster .col-sm-9,
.stcjmis-change-form.model-section .form-group.field-students_roster .col-sm-9 {
  flex: 0 0 100%;
  max-width: 100%;
  width: 100%;
}

.stcjmis-change-form .tab-pane.stcjmis-section-students-roster-tab .form-group.field-students_roster .col-sm-9 .readonly,
.stcjmis-change-form .stcjmis-section-students-roster-tab-panel .form-group.field-students_roster .col-sm-9 .readonly,
.stcjmis-change-form.model-section .form-group.field-students_roster .col-sm-9 .readonly {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  width: 100%;
  max-width: none;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  box-shadow: none !important;
}

.stcjmis-change-form .stcjmis-section-students-roster {
  width: 100%;
}

.stcjmis-change-form .stcjmis-section-school-id-export {
  width: 100%;
}

.stcjmis-school-id-export-btn--loading {
  pointer-events: none;
  opacity: 0.88;
}

/* Shared admin loading indicator (Font Awesome spinner; matches ID export). */
.stcjmis-loading-indicator {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--bs-secondary-color, #6c757d);
  font-size: 0.875rem;
  font-weight: 500;
}

.stcjmis-loading-indicator .fa-spinner {
  color: var(--stcjmis-primary);
}

.stcjmis-loading-indicator--panel .fa-spinner {
  font-size: 1.75rem;
  line-height: 1;
}

.stcjmis-change-form .stcjmis-school-id-export-btn.disabled {
  pointer-events: none;
}

.stcjmis-school-id-export-btn--loading .stcjmis-school-id-export-btn__label {
  display: none;
}

.stcjmis-school-id-export-btn--loading .stcjmis-school-id-export-btn__loading {
  display: inline-flex !important;
}

.stcjmis-change-form .stcjmis-section-students-roster-panel {
  width: 100%;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--stcjmis-control-radius);
  background-color: var(--bs-body-bg);
  overflow: hidden;
}

.stcjmis-change-form .stcjmis-section-students-roster-summary {
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--bs-border-color);
  background-color: var(--bs-secondary-bg);
}

.stcjmis-change-form .stcjmis-section-students-roster-summary__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.stcjmis-change-form .stcjmis-section-students-roster-summary__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  flex: 1 1 auto;
  min-width: 0;
}

.stcjmis-change-form .stcjmis-section-students-roster-summary__actions {
  flex: 0 0 auto;
  margin-left: auto;
}

.stcjmis-change-form .stcjmis-section-students-roster-summary__item {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: 0;
}

.stcjmis-change-form .stcjmis-section-students-roster-summary__item dt {
  margin: 0;
  font-weight: 600;
  color: var(--bs-secondary-color);
}

.stcjmis-change-form .stcjmis-section-students-roster-summary__item dd {
  margin: 0;
  font-variant-numeric: tabular-nums;
}

.stcjmis-change-form .stcjmis-section-students-roster-panel--empty .stcjmis-section-students-roster-summary {
  border-bottom: 0;
}

.stcjmis-change-form .stcjmis-section-students-roster-table {
  table-layout: fixed;
  width: 100%;
  margin-bottom: 0;
}

.stcjmis-change-form .stcjmis-section-students-roster-table thead th {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--bs-body-color);
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid var(--bs-border-color);
  white-space: nowrap;
  vertical-align: middle;
}

.stcjmis-change-form .stcjmis-section-students-roster-table tbody td {
  padding: 0.65rem 0.75rem;
  vertical-align: middle;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stcjmis-change-form .stcjmis-section-students-roster-table tbody tr.stcjmis-changelist-row--clickable {
  cursor: pointer;
}

.stcjmis-change-form .stcjmis-section-students-roster-table.table-striped > tbody > tr.stcjmis-changelist-row--clickable:hover > td {
  background-color: rgba(0, 11, 59, 0.06);
}

.stcjmis-change-form .stcjmis-section-students-roster-table tbody td:has(.stcjmis-boolean-indicator) {
  overflow: visible;
  text-overflow: clip;
}

.stcjmis-change-form .stcjmis-section-students-roster-table th.field-row_number,
.stcjmis-change-form .stcjmis-section-students-roster-table td.field-row_number {
  width: 2.75rem;
  min-width: 2.75rem;
  font-variant-numeric: tabular-nums;
}

.stcjmis-change-form .stcjmis-section-students-roster-table th.field-student_no,
.stcjmis-change-form .stcjmis-section-students-roster-table td.field-student_no {
  width: calc(8ch + 1.5rem);
  min-width: calc(8ch + 1.5rem);
  font-variant-numeric: tabular-nums;
}

.stcjmis-change-form .stcjmis-section-students-roster-table th.field-last_name,
.stcjmis-change-form .stcjmis-section-students-roster-table td.field-last_name {
  width: 18%;
}

.stcjmis-change-form .stcjmis-section-students-roster-table th.field-first_name,
.stcjmis-change-form .stcjmis-section-students-roster-table td.field-first_name {
  width: 18%;
}

.stcjmis-change-form .stcjmis-section-students-roster-table th.field-sex_code,
.stcjmis-change-form .stcjmis-section-students-roster-table td.field-sex_code {
  width: 4rem;
  min-width: 4rem;
}

.stcjmis-change-form .stcjmis-section-students-roster-table th.field-school_year,
.stcjmis-change-form .stcjmis-section-students-roster-table td.field-school_year {
  width: 9rem;
  min-width: 9rem;
}

.stcjmis-change-form .stcjmis-section-students-roster-table th.field-rfid_status,
.stcjmis-change-form .stcjmis-section-students-roster-table td.field-rfid_status {
  width: 3.25rem;
  min-width: 3.25rem;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

.stcjmis-change-form .stcjmis-section-students-roster-table th.field-enrolled,
.stcjmis-change-form .stcjmis-section-students-roster-table td.field-enrolled {
  width: 5rem;
  min-width: 5rem;
}

.stcjmis-change-form .stcjmis-section-students-roster-table th.field-photo_status,
.stcjmis-change-form .stcjmis-section-students-roster-table td.field-photo_status {
  width: 3.25rem;
  min-width: 3.25rem;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

.stcjmis-change-form .stcjmis-section-students-roster-panel--empty {
  background-color: var(--bs-secondary-bg);
  padding: 1.25rem 1rem;
}

.stcjmis-change-form .stcjmis-section-students-roster__empty {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: center;
  color: #6c757d;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-tab-panel {
  width: 100%;
}

.stcjmis-change-form .tab-pane.stcjmis-job-title-employees-roster-tab .form-group.field-employees_roster,
.stcjmis-change-form .stcjmis-job-title-employees-roster-tab-panel .form-group.field-employees_roster {
  width: 100%;
  max-width: none;
}

.stcjmis-change-form.model-jobtitle .form-group.field-employees_roster .col-sm-3 {
  display: none;
}

.stcjmis-change-form .tab-pane.stcjmis-job-title-employees-roster-tab .form-group.field-employees_roster .row,
.stcjmis-change-form .stcjmis-job-title-employees-roster-tab-panel .form-group.field-employees_roster .row,
.stcjmis-change-form.model-jobtitle .form-group.field-employees_roster .row {
  width: 100%;
  max-width: none !important;
  margin-left: 0;
  margin-right: 0;
}

.stcjmis-change-form .tab-pane.stcjmis-job-title-employees-roster-tab .form-group.field-employees_roster .col-sm-9,
.stcjmis-change-form .stcjmis-job-title-employees-roster-tab-panel .form-group.field-employees_roster .col-sm-9,
.stcjmis-change-form.model-jobtitle .form-group.field-employees_roster .col-sm-9 {
  flex: 0 0 100%;
  max-width: 100%;
  width: 100%;
}

.stcjmis-change-form .tab-pane.stcjmis-job-title-employees-roster-tab .form-group.field-employees_roster .col-sm-9 .readonly,
.stcjmis-change-form .stcjmis-job-title-employees-roster-tab-panel .form-group.field-employees_roster .col-sm-9 .readonly,
.stcjmis-change-form.model-jobtitle .form-group.field-employees_roster .col-sm-9 .readonly {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  width: 100%;
  max-width: none;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  box-shadow: none !important;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster {
  width: 100%;
}

.stcjmis-change-form .stcjmis-admin-roster-summary {
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--bs-border-color);
  background-color: var(--bs-secondary-bg);
}

.stcjmis-change-form .stcjmis-admin-roster-summary__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.stcjmis-change-form .stcjmis-admin-roster-summary__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  flex: 1 1 auto;
  min-width: 0;
}

.stcjmis-change-form .stcjmis-admin-roster-summary__actions {
  flex: 0 0 auto;
  margin-left: auto;
}

.stcjmis-change-form .stcjmis-admin-roster-summary__item {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: 0;
}

.stcjmis-change-form .stcjmis-admin-roster-summary__item dt {
  margin: 0;
  font-weight: 600;
  color: var(--bs-secondary-color);
}

.stcjmis-change-form .stcjmis-admin-roster-summary__item dd {
  margin: 0;
  font-variant-numeric: tabular-nums;
}

.stcjmis-change-form .stcjmis-section-students-roster-panel--empty .stcjmis-admin-roster-summary,
.stcjmis-change-form .stcjmis-job-title-employees-roster-panel--empty .stcjmis-admin-roster-summary {
  border-bottom: 0;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-panel {
  width: 100%;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--stcjmis-control-radius);
  background-color: var(--bs-body-bg);
  overflow: hidden;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table {
  table-layout: fixed;
  width: 100%;
  margin-bottom: 0;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table thead th {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--bs-body-color);
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid var(--bs-border-color);
  white-space: nowrap;
  vertical-align: middle;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table tbody td {
  padding: 0.65rem 0.75rem;
  vertical-align: middle;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table tbody tr.stcjmis-changelist-row--clickable {
  cursor: pointer;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table.table-striped > tbody > tr.stcjmis-changelist-row--clickable:hover > td {
  background-color: rgba(0, 11, 59, 0.06);
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table tbody td:has(.stcjmis-boolean-indicator) {
  overflow: visible;
  text-overflow: clip;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table th.field-row_number,
.stcjmis-change-form .stcjmis-job-title-employees-roster-table td.field-row_number {
  width: 3rem;
  min-width: 3rem;
  font-variant-numeric: tabular-nums;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table th.field-employee_number,
.stcjmis-change-form .stcjmis-job-title-employees-roster-table td.field-employee_number {
  width: calc(10ch + 1.5rem);
  min-width: calc(10ch + 1.5rem);
  font-variant-numeric: tabular-nums;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table th.field-last_name,
.stcjmis-change-form .stcjmis-job-title-employees-roster-table td.field-last_name {
  width: 18%;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table th.field-first_name,
.stcjmis-change-form .stcjmis-job-title-employees-roster-table td.field-first_name {
  width: 18%;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table th.field-sex_code,
.stcjmis-change-form .stcjmis-job-title-employees-roster-table td.field-sex_code {
  width: 4rem;
  min-width: 4rem;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table th.field-campus_code,
.stcjmis-change-form .stcjmis-job-title-employees-roster-table td.field-campus_code {
  width: 6rem;
  min-width: 6rem;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table th.field-rfid_card,
.stcjmis-change-form .stcjmis-job-title-employees-roster-table td.field-rfid_card {
  width: 11rem;
  min-width: 11rem;
  font-variant-numeric: tabular-nums;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table th.field-photo_status,
.stcjmis-change-form .stcjmis-job-title-employees-roster-table td.field-photo_status {
  width: 4.5rem;
  min-width: 4.5rem;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-table th.field-employed,
.stcjmis-change-form .stcjmis-job-title-employees-roster-table td.field-employed {
  width: 5rem;
  min-width: 5rem;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster-panel--empty {
  background-color: var(--bs-secondary-bg);
  padding: 1.25rem 1rem;
}

.stcjmis-change-form .stcjmis-job-title-employees-roster__empty {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: center;
  color: #6c757d;
}

.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table th.column-school_year,
.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table td.field-school_year {
  width: 7.5rem;
  min-width: 7.5rem;
}

.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table th.column-campus,
.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table td.field-campus {
  width: 7.5rem;
  min-width: 7.5rem;
}

.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table th.column-category,
.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table td.field-category {
  width: 5.5rem;
  min-width: 5.5rem;
}

.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table th.column-level,
.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table td.field-level {
  width: 5rem;
  min-width: 5rem;
}

.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table th.column-section,
.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table td.field-section {
  width: 7.5rem;
  min-width: 7.5rem;
}

.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table th.column-rfid_card,
.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table td.field-rfid_card {
  width: 7.5rem;
  min-width: 7.5rem;
}

.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table td select,
.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table td input.form-control {
  width: 100%;
  min-width: 0;
}

.stcjmis-change-form .stcjmis-inline-table tbody td p {
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stcjmis-change-form .stcjmis-inline-table {
  width: 100%;
  margin-bottom: 0.5rem;
  table-layout: fixed;
}

.stcjmis-change-form .stcjmis-inline-table th.column-actions,
.stcjmis-change-form .stcjmis-inline-table td.field-actions {
  width: 7rem;
}

.stcjmis-change-form .stcjmis-inline-table thead th {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--bs-body-color);
  border-bottom: 1px solid var(--bs-border-color);
  vertical-align: bottom;
}

.stcjmis-change-form .stcjmis-inline-table thead th .text-red {
  margin-left: 0.15rem;
}

.stcjmis-change-form .stcjmis-inline-table tbody td {
  vertical-align: middle;
  padding: 0.5rem 0.65rem;
}

.stcjmis-change-form .stcjmis-inline-table tbody tr.form-row {
  vertical-align: middle;
}

.stcjmis-change-form .stcjmis-inline-table input.form-control,
.stcjmis-change-form .stcjmis-inline-table select.form-control,
.stcjmis-change-form .stcjmis-inline-table select.vTextField,
.stcjmis-change-form .stcjmis-inline-table select:not([multiple]) {
  min-height: var(--stcjmis-control-height);
  box-sizing: border-box;
  font-size: var(--bs-body-font-size);
  line-height: var(--bs-body-line-height);
}

.stcjmis-change-form .stcjmis-inline-table input.form-control {
  padding: 0.375rem 0.5rem;
}

.stcjmis-change-form .stcjmis-inline-table select.form-control,
.stcjmis-change-form .stcjmis-inline-table select.vTextField,
.stcjmis-change-form .stcjmis-inline-table select:not([multiple]) {
  padding: 0.375rem 1.75rem 0.375rem 0.5rem;
}

.stcjmis-change-form .stcjmis-enrollment-inline th.column-is_active,
.stcjmis-change-form .stcjmis-enrollment-inline td.field-is_active {
  width: 4rem;
  min-width: 4rem;
  max-width: 4rem;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

.stcjmis-change-form .stcjmis-guardian-inline .stcjmis-inline-table th.column-slot,
.stcjmis-change-form .stcjmis-guardian-inline .stcjmis-inline-table td.field-slot {
  width: 8.75rem;
  min-width: 8.75rem;
  max-width: 8.75rem;
}

.stcjmis-change-form .stcjmis-guardian-inline .stcjmis-inline-table td.field-slot .stcjmis-sms-dispatch-status {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.stcjmis-change-form .stcjmis-guardian-inline .stcjmis-inline-table th.column-relationship,
.stcjmis-change-form .stcjmis-guardian-inline .stcjmis-inline-table td.field-relationship {
  width: 7.5rem;
  min-width: 7.5rem;
  max-width: 7.5rem;
}

.stcjmis-change-form .stcjmis-guardian-inline .stcjmis-inline-table th.column-contact_number,
.stcjmis-change-form .stcjmis-guardian-inline .stcjmis-inline-table td.field-contact_number {
  width: 12rem;
  min-width: 11rem;
  max-width: 12rem;
}

.stcjmis-change-form .stcjmis-guardian-inline .stcjmis-inline-table td.field-contact_number .stcjmis-ph-mobile-contact {
  width: 100%;
  max-width: 12rem;
}

.stcjmis-change-form .stcjmis-guardian-inline .stcjmis-inline-table th.column-sms_enabled,
.stcjmis-change-form .stcjmis-guardian-inline .stcjmis-inline-table td.field-sms_enabled {
  width: 4.25rem;
  min-width: 4.25rem;
  max-width: 4.25rem;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

.stcjmis-change-form .stcjmis-guardian-inline .stcjmis-inline-table th.column-sms_enabled,
.stcjmis-change-form .stcjmis-guardian-inline .stcjmis-inline-table td.field-sms_enabled,
.stcjmis-change-form .stcjmis-enrollment-inline th.column-is_active,
.stcjmis-change-form .stcjmis-enrollment-inline td.field-is_active {
  text-align: center;
}

.stcjmis-change-form .stcjmis-guardian-inline td.field-sms_enabled .stcjmis-inline-toggle-cell,
.stcjmis-change-form .stcjmis-enrollment-inline td.field-is_active .stcjmis-inline-toggle-cell {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.stcjmis-change-form .stcjmis-guardian-inline th.column-sms_enabled {
  font-size: 0.72rem;
  line-height: 1.2;
  white-space: nowrap;
}

.stcjmis-change-form .stcjmis-enrollment-inline th.column-is_active {
  font-size: 0.72rem;
  line-height: 1.2;
  white-space: nowrap;
}

.stcjmis-change-form .stcjmis-inline-table td .help-block.text-red:empty {
  display: none;
  margin: 0;
  padding: 0;
}

.stcjmis-change-form .stcjmis-inline-checkbox-cell {
  display: flex;
  align-items: center;
  justify-content: center;
}

.stcjmis-change-form .stcjmis-inline-actions {
  vertical-align: middle;
  padding: 0.5rem 0.65rem;
}

.stcjmis-change-form .stcjmis-inline-actions-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(1.5em + 0.5rem + 2px);
}

.stcjmis-change-form .stcjmis-inline-group a.inline-deletelink {
  display: none !important;
}

.stcjmis-change-form .stcjmis-inline-checkbox-cell input[type="checkbox"] {
  margin: 0;
  width: 1.125rem;
  height: 1.125rem;
  cursor: pointer;
}

.stcjmis-change-form .stcjmis-inline-checkbox-cell input[type="checkbox"]:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.stcjmis-change-form .stcjmis-inline-toggle-cell {
  display: flex;
  align-items: center;
  justify-content: center;
}

.stcjmis-change-form .stcjmis-inline-actions {
  white-space: nowrap;
}

.stcjmis-change-form .stcjmis-inline-delete-btn {
  min-width: 4.5rem;
  height: calc(1.5em + 0.5rem + 2px);
  margin: 0;
  float: none;
  line-height: 1.5;
  padding: 0.25rem 0.5rem;
  box-sizing: border-box;
}

.stcjmis-change-form .stcjmis-inline-delete-field {
  display: none !important;
}

.stcjmis-change-form .stcjmis-inline-row-removed {
  display: none !important;
}

.stcjmis-change-form .stcjmis-inline-group .tabular fieldset.module {
  background: transparent;
  border: 0;
  padding: 0;
}

.stcjmis-change-form .stcjmis-student-sms-enabled {
  margin-bottom: 0.75rem !important;
}

.stcjmis-change-form .stcjmis-guardian-inline-divider {
  margin: 0.75rem 0 1rem;
  border: 0;
  border-top: 1px solid var(--stcjmis-control-border);
  opacity: 1;
}

.stcjmis-change-form .stcjmis-inline-add-row td.stcjmis-inline-add-spacer {
  border-top: 0;
  padding-top: 0.15rem;
  padding-bottom: 0;
}

.stcjmis-change-form .stcjmis-inline-add-cell {
  vertical-align: middle;
  padding: 0.5rem 0.65rem;
}

.stcjmis-change-form .stcjmis-inline-add-cell .stcjmis-inline-actions-inner {
  min-height: calc(1.5em + 0.5rem + 2px);
}

.stcjmis-change-form .stcjmis-inline-add-btn {
  min-width: 4.5rem;
  height: calc(1.5em + 0.5rem + 2px);
  margin: 0;
  padding: 0.25rem 0.5rem;
  line-height: 1.5;
  box-sizing: border-box;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.stcjmis-change-form .stcjmis-inline-formset-errors {
  font-size: 0.875rem;
  padding: 0.5rem 0.75rem;
  margin-bottom: 0.75rem;
}

.stcjmis-change-form .stcjmis-inline-formset-errors ul.errorlist {
  margin: 0;
  padding: 0;
  list-style: none;
}

.stcjmis-change-form .stcjmis-inline-formset-errors ul.errorlist li {
  margin: 0;
}

/* Native <select> ignores box-shadow in most browsers; glow the wrapper instead. */
.stcjmis-change-form .stcjmis-validation-glow,
.stcjmis-change-form .stcjmis-validation-glow-target.stcjmis-validation-glow,
.stcjmis-change-form .stcjmis-field-has-error .stcjmis-toggle-field-inner.stcjmis-validation-glow {
  display: block;
  width: 100%;
  max-width: 100%;
  border-radius: var(--bs-border-radius, 0.375rem);
  box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.55) !important;
  outline: 2px solid rgba(220, 53, 69, 0.35);
  outline-offset: 0;
}

.stcjmis-change-form .stcjmis-inline-table .stcjmis-validation-glow-target.stcjmis-validation-glow {
  width: 100%;
}

.stcjmis-change-form .stcjmis-validation-glow-target.stcjmis-validation-glow input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.stcjmis-change-form .stcjmis-validation-glow-target.stcjmis-validation-glow select,
.stcjmis-change-form .stcjmis-validation-glow-target.stcjmis-validation-glow textarea {
  width: 100%;
  max-width: 100%;
}

.stcjmis-change-form .stcjmis-field-has-error input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not(.form-control),
.stcjmis-change-form .stcjmis-field-has-error textarea:not(.form-control) {
  border-color: #ced4da !important;
  box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.45) !important;
  outline: none !important;
}

.stcjmis-change-form .stcjmis-inline-table td .help-block.text-red {
  margin-top: 0.25rem;
  margin-bottom: 0;
  font-size: 0.75rem;
  line-height: 1.3;
}

.stcjmis-change-form .stcjmis-inline-table td .help-block.text-red ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.stcjmis-change-form .stcjmis-inline-table tr.stcjmis-inline-row--invalid td {
  vertical-align: middle;
}

.stcjmis-change-form .stcjmis-inline-message,
.stcjmis-change-form .stcjmis-inline-slot-message {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  line-height: 1.4;
}

.stcjmis-change-form .stcjmis-guardian-inline .stcjmis-inline-table td .help-block.text-red,
.stcjmis-change-form .stcjmis-enrollment-inline .stcjmis-inline-table td .help-block.text-red {
  display: none;
}

.stcjmis-change-form .stcjmis-inline-table td .errorlist,
.stcjmis-change-form .form-group .help-block.text-red ul.errorlist,
.stcjmis-change-form .form-group .help-block.red ul.errorlist {
  display: none !important;
  height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.stcjmis-change-form .form-group .help-block.text-red:empty,
.stcjmis-change-form .form-group .help-block.red:empty {
  display: none;
  margin: 0;
  padding: 0;
}

.stcjmis-change-form .stcjmis-inline-table tr.row-form-errors {
  display: none;
}

/* Delete confirmation: two-column list + sidebar counts/actions. */
.stcjmis-delete-page .stcjmis-delete-card {
  margin-bottom: 1.5rem;
}

.stcjmis-delete-page .stcjmis-delete-intro {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  line-height: 1.5;
}

.stcjmis-delete-page .stcjmis-delete-targets-title {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--bs-body-color);
}

.stcjmis-delete-page .stcjmis-delete-targets-list {
  padding: 0.75rem 1rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius, 0.375rem);
  background-color: #f8f9fb;
  max-height: 18rem;
  overflow: auto;
}

.stcjmis-delete-page .stcjmis-delete-targets-list ol {
  margin: 0;
  padding-left: 1.25rem;
}

.stcjmis-delete-page .stcjmis-delete-targets-list li + li {
  margin-top: 0.25rem;
}

.stcjmis-delete-page .stcjmis-delete-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media (min-width: 992px) {
  .stcjmis-delete-page .stcjmis-delete-sidebar {
    padding-left: 1rem;
    border-left: 1px solid var(--bs-border-color);
  }
}

.stcjmis-delete-page .stcjmis-delete-summary-title {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--bs-body-color);
}

.stcjmis-delete-page .stcjmis-delete-summary-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.stcjmis-delete-page .stcjmis-delete-summary-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius, 0.375rem);
  background-color: #fff;
}

.stcjmis-delete-page .stcjmis-delete-summary-count,
.stcjmis-delete-page .stcjmis-delete-summary-label {
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--stcjmis-primary, #000b3b);
}

.stcjmis-delete-page .stcjmis-delete-summary-count {
  min-width: 1.5rem;
}

.stcjmis-delete-page .stcjmis-delete-blocked-note {
  margin: 0.75rem 0 0;
  font-size: 0.875rem;
}

.stcjmis-delete-page .stcjmis-delete-cancel-actions {
  margin-top: 1rem;
  align-items: flex-start;
}

.stcjmis-delete-page .stcjmis-delete-cancel-actions .stcjmis-delete-back-btn {
  width: auto;
}

.stcjmis-delete-page .stcjmis-delete-form {
  margin: 0;
}

.stcjmis-delete-page .stcjmis-delete-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.app-wrapper .stcjmis-delete-page .stcjmis-delete-actions .btn {
  min-height: var(--stcjmis-control-height);
  border-radius: var(--stcjmis-control-radius);
  text-align: center;
  font-weight: 500;
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-card .card-body {
  padding: 0.75rem 1rem;
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-alert {
  font-size: 0.875rem;
  line-height: 1.45;
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-balance-panel {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(0, 11, 59, 0.12);
  border-radius: 0.375rem;
  background: linear-gradient(
    135deg,
    rgba(0, 11, 59, 0.05) 0%,
    rgba(0, 11, 59, 0.02) 100%
  );
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-balance__label {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--bs-secondary-color, #6c757d);
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-balance__value {
  font-size: 2.75rem;
  font-weight: 700;
  line-height: 1.05;
  color: var(--stcjmis-primary, #000b3b);
  font-variant-numeric: tabular-nums;
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-balance-panel--warning {
  border-color: rgba(255, 193, 7, 0.45);
  background: linear-gradient(
    135deg,
    rgba(255, 193, 7, 0.14) 0%,
    rgba(255, 193, 7, 0.05) 100%
  );
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-balance-panel--warning .stcjmis-sms-credits-balance__value {
  color: #664d03;
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-balance-panel--urgent {
  border-color: rgba(220, 53, 69, 0.45);
  background: linear-gradient(
    135deg,
    rgba(220, 53, 69, 0.12) 0%,
    rgba(220, 53, 69, 0.04) 100%
  );
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-balance-panel--urgent .stcjmis-sms-credits-balance__value {
  color: #842029;
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-balance-panel--unavailable {
  border-color: rgba(108, 117, 125, 0.35);
  background: linear-gradient(
    135deg,
    rgba(108, 117, 125, 0.08) 0%,
    rgba(108, 117, 125, 0.03) 100%
  );
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-balance-panel--unavailable .stcjmis-sms-credits-balance__value {
  color: #6c757d;
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-fetch-error__title {
  font-weight: 600;
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-fetch-error__hint {
  color: rgba(33, 37, 41, 0.72);
  font-size: 0.925rem;
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-details .col-form-label {
  font-weight: 600;
  color: var(--bs-body-color);
  padding-top: calc(0.375rem + 1px);
  padding-bottom: calc(0.375rem + 1px);
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-details .col-sm-9 {
  display: flex;
  align-items: center;
  min-height: var(--stcjmis-control-height);
}

.stcjmis-sms-credits-page .stcjmis-plain-value {
  display: inline-block;
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--bs-body-font-weight);
  line-height: var(--bs-body-line-height);
  color: var(--bs-body-color);
}

.stcjmis-sms-credits-page,
.app-gates.model-edgedevice,
.app-portal.model-blastmessage,
.app-portal.model-staffblastmessage,
.stcjmis-blast-readonly-page {
  --stcjmis-sms-dispatch-status-width: 8.75rem;
  --stcjmis-edge-sync-status-width: 8.75rem;
}

.app-portal.model-blastmessage,
.app-portal.model-staffblastmessage,
.stcjmis-blast-readonly-page {
  --stcjmis-blast-status-width: 10.5rem;
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-status,
.stcjmis-sms-credits-page .stcjmis-sms-dispatch-status,
.stcjmis-change-form .stcjmis-sms-dispatch-status,
.stcjmis-blast-readonly-page .stcjmis-sms-dispatch-status,
.app-gates.model-edgedevice .stcjmis-sms-dispatch-status,
.app-gates.model-edgedevice .stcjmis-edge-sync-status,
.app-portal.model-blastmessage .stcjmis-sms-dispatch-status,
.app-portal.model-staffblastmessage .stcjmis-sms-dispatch-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.75rem;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  box-sizing: border-box;
}

.stcjmis-sms-credits-page .stcjmis-sms-dispatch-status,
.app-gates.model-edgedevice .stcjmis-sms-dispatch-status,
.app-gates.model-edgedevice .stcjmis-edge-sync-status {
  width: var(--stcjmis-sms-dispatch-status-width);
  min-width: var(--stcjmis-sms-dispatch-status-width);
  max-width: 100%;
}

.stcjmis-change-form.model-blastmessage .stcjmis-sms-dispatch-status,
.stcjmis-blast-readonly-page .stcjmis-sms-dispatch-status {
  width: var(--stcjmis-blast-status-width);
  min-width: var(--stcjmis-blast-status-width);
}

.app-gates.model-edgedevice .stcjmis-edge-sync-status {
  width: var(--stcjmis-edge-sync-status-width);
  min-width: var(--stcjmis-edge-sync-status-width);
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-status--active,
.stcjmis-sms-credits-page .stcjmis-sms-dispatch-status--active,
.stcjmis-change-form .stcjmis-sms-dispatch-status--active,
.app-gates.model-edgedevice .stcjmis-sms-dispatch-status--active,
.app-gates.model-edgedevice .stcjmis-edge-sync-status--active,
.app-portal.model-blastmessage .stcjmis-sms-dispatch-status--active,
.app-portal.model-staffblastmessage .stcjmis-sms-dispatch-status--active,
.stcjmis-blast-readonly-page .stcjmis-sms-dispatch-status--active {
  color: var(--stcjmis-status-active-color);
  background-color: var(--stcjmis-status-active-bg);
  border: 1px solid var(--stcjmis-status-active-border);
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-status--inactive,
.stcjmis-sms-credits-page .stcjmis-sms-dispatch-status--inactive,
.stcjmis-change-form .stcjmis-sms-dispatch-status--inactive,
.app-gates.model-edgedevice .stcjmis-sms-dispatch-status--inactive,
.app-portal.model-blastmessage .stcjmis-sms-dispatch-status--inactive,
.app-portal.model-staffblastmessage .stcjmis-sms-dispatch-status--inactive,
.stcjmis-blast-readonly-page .stcjmis-sms-dispatch-status--inactive {
  color: #664d03;
  background-color: rgba(255, 193, 7, 0.14);
  border: 1px solid rgba(255, 193, 7, 0.35);
}

.app-gates.model-edgedevice .stcjmis-edge-sync-status--offline,
.stcjmis-change-form.model-edgedevice .stcjmis-edge-sync-status--offline {
  color: var(--stcjmis-status-disabled-color);
  background-color: var(--stcjmis-status-disabled-bg);
  border: 1px solid var(--stcjmis-status-disabled-border);
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-status--disabled,
.stcjmis-sms-credits-page .stcjmis-sms-dispatch-status--disabled,
.stcjmis-change-form .stcjmis-sms-dispatch-status--disabled,
.app-gates.model-edgedevice .stcjmis-sms-dispatch-status--disabled,
.app-portal.model-blastmessage .stcjmis-sms-dispatch-status--disabled,
.app-portal.model-staffblastmessage .stcjmis-sms-dispatch-status--disabled,
.stcjmis-blast-readonly-page .stcjmis-sms-dispatch-status--disabled {
  color: var(--stcjmis-status-disabled-color);
  background-color: var(--stcjmis-status-disabled-bg);
  border: 1px solid var(--stcjmis-status-disabled-border);
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-status--stale,
.stcjmis-sms-credits-page .stcjmis-sms-dispatch-status--stale,
.stcjmis-change-form .stcjmis-sms-dispatch-status--stale,
.app-gates.model-edgedevice .stcjmis-sms-dispatch-status--stale,
.app-gates.model-edgedevice .stcjmis-edge-sync-status--stale {
  color: #084298;
  background-color: rgba(13, 110, 253, 0.12);
  border: 1px solid rgba(13, 110, 253, 0.28);
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-status--unknown,
.stcjmis-sms-credits-page .stcjmis-sms-dispatch-status--unknown,
.stcjmis-change-form .stcjmis-sms-dispatch-status--unknown,
.app-gates.model-edgedevice .stcjmis-sms-dispatch-status--unknown,
.app-gates.model-edgedevice .stcjmis-edge-sync-status--unknown,
.app-portal.model-blastmessage .stcjmis-sms-dispatch-status--unknown,
.app-portal.model-staffblastmessage .stcjmis-sms-dispatch-status--unknown,
.stcjmis-blast-readonly-page .stcjmis-sms-dispatch-status--unknown {
  color: #495057;
  background-color: rgba(108, 117, 125, 0.12);
  border: 1px solid rgba(108, 117, 125, 0.25);
}

.app-gates.model-gate .stcjmis-f18-reader-status,
.stcjmis-change-form.model-gate .stcjmis-f18-reader-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.75rem;
  min-width: 8.75rem;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  box-sizing: border-box;
}

.app-gates.model-gate .stcjmis-f18-reader-status--active,
.stcjmis-change-form.model-gate .stcjmis-f18-reader-status--active {
  color: #0f5132;
  background-color: rgba(25, 135, 84, 0.12);
  border: 1px solid rgba(25, 135, 84, 0.25);
}

.app-gates.model-gate .stcjmis-f18-reader-status--offline,
.stcjmis-change-form.model-gate .stcjmis-f18-reader-status--offline {
  color: #842029;
  background-color: rgba(220, 53, 69, 0.12);
  border: 1px solid rgba(220, 53, 69, 0.28);
}

.app-gates.model-gate .stcjmis-f18-reader-status--unknown,
.stcjmis-change-form.model-gate .stcjmis-f18-reader-status--unknown {
  color: #495057;
  background-color: rgba(108, 117, 125, 0.12);
  border: 1px solid rgba(108, 117, 125, 0.25);
}

.stcjmis-sms-credits-page .stcjmis-sms-edge-devices-card .card-header {
  background-color: rgba(0, 11, 59, 0.03);
  border-bottom: 1px solid var(--bs-border-color);
}

.stcjmis-sms-credits-page .stcjmis-sms-edge-devices-card .card-header h5 {
  color: var(--stcjmis-primary, #000b3b);
}

.stcjmis-sms-credits-page .stcjmis-sms-edge-devices-table th {
  white-space: nowrap;
}

.dashboard table.table td:last-child {
  text-align: center;
}

.dashboard table.table td:last-child .btn-group {
  float: none;
  display: inline-flex;
  justify-content: center;
}

.stcjmis-sms-credits-page .stcjmis-sms-edge-devices-table th,
.stcjmis-sms-credits-page .stcjmis-sms-edge-devices-table td {
  text-align: left;
  vertical-align: middle;
}

.stcjmis-sms-credits-page .stcjmis-sms-edge-devices-table__dispatch-col {
  vertical-align: middle;
}

.stcjmis-sms-credits-page .stcjmis-sms-edge-device-row--stale {
  background-color: rgba(13, 110, 253, 0.04);
}

.stcjmis-sms-credits-page .stcjmis-sms-edge-dispatch-legend {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--bs-border-color);
}

.stcjmis-sms-credits-page .stcjmis-sms-edge-dispatch-legend__title {
  display: block;
  margin-bottom: 0.65rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--stcjmis-primary, #000b3b);
}

.stcjmis-sms-credits-page .stcjmis-sms-edge-dispatch-legend__list {
  display: grid;
  gap: 0.5rem;
  padding-left: 0;
  list-style: none;
}

.stcjmis-sms-credits-page .stcjmis-sms-edge-dispatch-legend__list li {
  display: grid;
  grid-template-columns: var(--stcjmis-sms-dispatch-status-width) 1fr;
  gap: 0.75rem;
  align-items: center;
}

.stcjmis-sms-credits-page .stcjmis-sms-edge-dispatch-legend__list .stcjmis-sms-dispatch-status {
  justify-self: stretch;
  width: 100%;
}

.stcjmis-sms-credits-page .stcjmis-sms-edge-dispatch-legend__text {
  font-size: 0.8125rem;
  color: var(--bs-secondary-color);
  line-height: 1.4;
}

@media (max-width: 575.98px) {
  .stcjmis-sms-credits-page .stcjmis-sms-edge-dispatch-legend__list li {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }
}

.stcjmis-sms-credits-page
  .stcjmis-sms-credits-status:not(.stcjmis-sms-credits-status--active):not(
    .stcjmis-sms-credits-status--inactive
  ):not(.stcjmis-sms-credits-status--disabled):not(.stcjmis-sms-credits-status--stale):not(
    .stcjmis-sms-credits-status--unknown
  ):not(.stcjmis-sms-dispatch-status--active):not(.stcjmis-sms-dispatch-status--inactive):not(
    .stcjmis-sms-dispatch-status--disabled
  ):not(.stcjmis-sms-dispatch-status--stale):not(.stcjmis-sms-dispatch-status--unknown) {
  color: var(--stcjmis-primary, #000b3b);
  background-color: rgba(0, 11, 59, 0.08);
  border: 1px solid rgba(0, 11, 59, 0.15);
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-card .card-header,
.stcjmis-sms-credits-page .stcjmis-sms-dispatch-card .card-header {
  background-color: rgba(0, 11, 59, 0.03);
  border-bottom: 1px solid var(--bs-border-color);
}

.stcjmis-sms-credits-page .stcjmis-sms-credits-card .card-header h5,
.stcjmis-sms-credits-page .stcjmis-sms-provider-card .card-header h5,
.stcjmis-sms-credits-page .stcjmis-sms-dispatch-card .card-header h5 {
  color: var(--stcjmis-primary, #000b3b);
  font-weight: 600;
}


.stcjmis-sms-credits-page .stcjmis-sms-history-source {
  color: var(--stcjmis-primary, #000b3b);
  font-weight: 600;
}

.stcjmis-sms-credits-page .stcjmis-sms-history-separator {
  color: var(--bs-secondary-color);
  margin: 0 0.35rem;
}

.stcjmis-sms-credits-page .stcjmis-sms-recheck-interval-form {
  max-width: 28rem;
}

.stcjmis-sms-settings-page .stcjmis-sms-credits-details .form-group .row {
  max-width: var(--stcjmis-change-form-row-max-width);
}

.stcjmis-sms-credits-page .stcjmis-sms-recheck-interval-control {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.stcjmis-sms-credits-page .stcjmis-sms-recheck-interval-control select {
  flex: 1 1 auto;
  min-width: 12rem;
  min-height: calc(1.5em + 0.75rem + 2px);
}

.stcjmis-sms-credits-page .stcjmis-sms-recheck-interval-save {
  flex: 0 0 auto;
  white-space: nowrap;
}

.stcjmis-sms-credits-page .stcjmis-provider-settings-rows .stcjmis-provider-field[data-provider-field="api-secret"] .col-sm-9,
.stcjmis-sms-settings-page .stcjmis-provider-field[data-provider-field="api-secret"] .col-sm-9 {
  display: grid;
  grid-template-columns: 14rem 5.5rem;
  column-gap: 0.75rem;
  row-gap: 0.5rem;
  align-items: center;
  width: calc(14rem + 0.75rem + 5.5rem);
  max-width: 100%;
}

.stcjmis-sms-credits-page .stcjmis-provider-settings-rows .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__view,
.stcjmis-sms-settings-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__view {
  display: contents;
}

.stcjmis-sms-credits-page .stcjmis-provider-settings-rows .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__edit,
.stcjmis-sms-settings-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__edit {
  display: contents;
}

.stcjmis-sms-credits-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__control,
.stcjmis-sms-settings-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__control {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: 14rem auto auto;
  align-items: center;
  gap: 0.75rem;
}

.stcjmis-sms-credits-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__value,
.stcjmis-sms-settings-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__value {
  grid-column: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stcjmis-sms-credits-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__value--masked,
.stcjmis-sms-settings-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__value--masked {
  font-family: var(--stcjmis-mono-font, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);
  letter-spacing: 0.04em;
}

.stcjmis-sms-credits-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__change,
.stcjmis-sms-settings-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__change {
  grid-column: 2;
  justify-self: start;
}

.stcjmis-sms-credits-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__control input.form-control,
.stcjmis-sms-settings-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__control input.form-control {
  min-width: 0;
  width: 100%;
  min-height: calc(1.5em + 0.75rem + 2px);
}

.stcjmis-sms-credits-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__change,
.stcjmis-sms-credits-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__save,
.stcjmis-sms-credits-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__cancel,
.stcjmis-sms-settings-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__change,
.stcjmis-sms-settings-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__save,
.stcjmis-sms-settings-page .stcjmis-provider-field[data-provider-field="api-secret"] .stcjmis-provider-field__cancel {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* Gate F18 Readers tab: SMS-dispatch row layout with fixed value/badge column. */
.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows {
  --stcjmis-f18-reader-value-width: 8.75rem;
}

.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .form-group .row {
  width: 100%;
  max-width: var(--stcjmis-change-form-row-max-width);
  margin-left: 0;
  margin-right: 0;
  --stcjmis-field-label-width: 15rem;
}

.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .form-group .row > label.col-sm-3 {
  flex: 0 0 var(--stcjmis-field-label-width);
  width: var(--stcjmis-field-label-width);
  max-width: var(--stcjmis-field-label-width);
  padding-right: 0.5rem;
  margin-bottom: 0;
  white-space: nowrap;
}

.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .form-group .row > .col-sm-9 {
  display: flex;
  align-items: center;
  flex: 1 1 0;
  min-width: 0;
  max-width: none;
  min-height: var(--stcjmis-control-height);
}

.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .stcjmis-provider-field .row > .col-sm-9 {
  display: block;
  flex: 0 1 auto;
  width: auto;
  max-width: calc(var(--stcjmis-f18-reader-value-width) + 0.75rem + 5.5rem);
}

.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .form-group:not(.stcjmis-provider-field) .row > .col-sm-9 {
  flex: 0 1 auto;
  width: var(--stcjmis-f18-reader-value-width);
  max-width: var(--stcjmis-f18-reader-value-width);
}

.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .stcjmis-provider-field__view,
.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .stcjmis-provider-field__control {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.75rem;
  width: fit-content;
  max-width: 100%;
}

.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .stcjmis-provider-field__value,
.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .stcjmis-f18-reader-status,
.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .stcjmis-provider-field__control input.form-control {
  flex: 0 0 var(--stcjmis-f18-reader-value-width);
  width: var(--stcjmis-f18-reader-value-width);
  min-width: var(--stcjmis-f18-reader-value-width);
  max-width: var(--stcjmis-f18-reader-value-width);
  box-sizing: border-box;
}

.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .stcjmis-provider-field__value {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .stcjmis-provider-field__control input.form-control {
  min-height: calc(1.5em + 0.75rem + 2px);
}

.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .stcjmis-provider-field__change,
.stcjmis-change-form.model-gate .stcjmis-f18-readers-rows .stcjmis-provider-field__cancel {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* Help Desk (RFID-146) */
.stcjmis-help-desk-page .stcjmis-help-categories-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
  margin-top: 1.25rem;
}

@media (min-width: 992px) {
  .stcjmis-help-desk-page .stcjmis-help-categories-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.stcjmis-help-desk-page .stcjmis-help-category-card {
  height: 100%;
}

.stcjmis-help-desk-page .stcjmis-change-form-card .card-header {
  background-color: rgba(0, 11, 59, 0.03);
  border-bottom: 1px solid var(--bs-border-color);
}

.stcjmis-help-desk-page .stcjmis-change-form-card .card-header h5 {
  color: var(--stcjmis-primary, #000b3b);
  font-weight: 600;
}

.stcjmis-help-desk-page .stcjmis-change-form-card .card-body {
  padding: 0.75rem 1rem;
}

.stcjmis-help-desk-page .stcjmis-help-intro {
  font-size: 0.9375rem;
  line-height: 1.5;
}

.stcjmis-help-desk-page .stcjmis-help-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 5.5rem;
  gap: 0.5rem;
  align-items: center;
  max-width: 28rem;
}

.stcjmis-help-desk-page .stcjmis-help-search-form:has(.stcjmis-help-search-clear) {
  grid-template-columns: minmax(0, 1fr) 5.5rem 5.5rem;
}

.stcjmis-help-desk-page .stcjmis-help-search-input {
  width: 100%;
  margin: 0;
}

.stcjmis-help-desk-page .stcjmis-help-search-btn,
.stcjmis-help-desk-page .stcjmis-help-search-clear,
.stcjmis-help-desk-page .stcjmis-help-back-btn {
  min-height: var(--stcjmis-control-height);
  border-radius: var(--stcjmis-control-radius);
  font-weight: 500;
  white-space: nowrap;
}

.stcjmis-help-desk-page .stcjmis-help-search-btn {
  background-color: var(--stcjmis-primary) !important;
  border-color: var(--stcjmis-primary) !important;
  color: #fff !important;
}

.stcjmis-help-desk-page .stcjmis-help-search-btn:hover,
.stcjmis-help-desk-page .stcjmis-help-search-btn:focus {
  background-color: var(--stcjmis-primary-hover) !important;
  border-color: var(--stcjmis-primary-hover) !important;
  color: #fff !important;
}

.stcjmis-help-desk-page .stcjmis-help-results-summary {
  font-size: 0.875rem;
  color: var(--bs-secondary-color);
}

.stcjmis-help-desk-page .stcjmis-help-article-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.stcjmis-help-desk-page .stcjmis-help-article-list__item + .stcjmis-help-article-list__item {
  margin-top: 0.5rem;
}

.stcjmis-help-desk-page .stcjmis-help-article-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--stcjmis-control-radius);
  background-color: var(--bs-body-bg);
  color: var(--stcjmis-primary, #000b3b);
  text-decoration: none;
  font-weight: 500;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.stcjmis-help-desk-page .stcjmis-help-article-link:hover,
.stcjmis-help-desk-page .stcjmis-help-article-link:focus {
  border-color: rgba(0, 11, 59, 0.22);
  background-color: rgba(0, 11, 59, 0.03);
  color: var(--stcjmis-primary-hover, #1a4da6);
  text-decoration: none;
  box-shadow: var(--stcjmis-control-focus-ring);
}

.stcjmis-help-desk-page .stcjmis-help-article-link__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  background-color: rgba(0, 11, 59, 0.08);
  color: var(--stcjmis-primary, #000b3b);
  flex: 0 0 auto;
}

.stcjmis-help-desk-page .stcjmis-help-article-link__label {
  flex: 1 1 auto;
  min-width: 0;
}

.stcjmis-help-desk-page .stcjmis-help-article-link__chevron {
  color: var(--bs-secondary-color);
  flex: 0 0 auto;
  font-size: 0.75rem;
}

.stcjmis-help-desk-page .stcjmis-help-empty-alert {
  margin-top: 1.25rem;
}

.stcjmis-help-desk-page .stcjmis-help-article-toolbar {
  margin: 0;
}

.stcjmis-help-desk-page .stcjmis-help-back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--stcjmis-primary-hover, #1a4da6);
  font-weight: 500;
  text-decoration: none;
}

.stcjmis-help-desk-page .stcjmis-help-back-link:hover,
.stcjmis-help-desk-page .stcjmis-help-back-link:focus {
  color: var(--stcjmis-primary, #000b3b);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  margin-bottom: -1px;
}

.stcjmis-help-desk-page .stcjmis-help-article__body {
  padding: 1rem 1.1rem;
}

.stcjmis-help-desk-page .stcjmis-help-article__body > :first-child {
  margin-top: 0;
}

.stcjmis-help-desk-page .stcjmis-help-article__body h2 {
  margin-top: 1.5rem;
  margin-bottom: 0.75rem;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--stcjmis-primary, #000b3b);
}

.stcjmis-help-desk-page .stcjmis-help-article__body h2:first-child {
  margin-top: 0;
}

.stcjmis-help-desk-page .stcjmis-help-article__body h3 {
  margin-top: 1.15rem;
  margin-bottom: 0.65rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--bs-body-color);
}

.stcjmis-help-desk-page .stcjmis-help-article__body p,
.stcjmis-help-desk-page .stcjmis-help-article__body ul,
.stcjmis-help-desk-page .stcjmis-help-article__body ol {
  margin-bottom: 0.75rem;
  line-height: 1.55;
}

.stcjmis-help-desk-page .stcjmis-help-article__body ul,
.stcjmis-help-desk-page .stcjmis-help-article__body ol {
  padding-left: 1.5rem;
}

.stcjmis-help-desk-page .stcjmis-help-article__body ol {
  list-style: decimal;
}

.stcjmis-help-desk-page .stcjmis-help-article__body ul li + li {
  margin-top: 0.65rem;
}

.stcjmis-help-desk-page .stcjmis-help-article__body ol li + li {
  margin-top: 0.65rem;
}

.stcjmis-help-desk-page .stcjmis-help-article__body ol li::marker {
  color: var(--stcjmis-primary, #000b3b);
  font-weight: 600;
}

.stcjmis-help-desk-page .stcjmis-help-article__body li + li {
  margin-top: 0.35rem;
}

.stcjmis-help-desk-page .stcjmis-help-article__body a {
  color: var(--stcjmis-primary-hover, #1a4da6);
  font-weight: 500;
}

.stcjmis-help-desk-page .stcjmis-help-article__body a:hover,
.stcjmis-help-desk-page .stcjmis-help-article__body a:focus {
  color: var(--stcjmis-primary, #000b3b);
}

.stcjmis-help-desk-page .stcjmis-help-article__body pre {
  background: rgba(0, 11, 59, 0.04);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--stcjmis-control-radius);
  padding: 0.75rem 1rem;
  overflow-x: auto;
}

.stcjmis-help-desk-page .stcjmis-help-article__body code {
  font-size: 0.9em;
}

.stcjmis-help-desk-page .stcjmis-help-article__body table {
  width: 100%;
  margin-bottom: 1rem;
  border-collapse: collapse;
}

.stcjmis-help-desk-page .stcjmis-help-article__body th,
.stcjmis-help-desk-page .stcjmis-help-article__body td {
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--bs-border-color);
  vertical-align: top;
}

.stcjmis-help-desk-page .stcjmis-help-article__body th {
  background-color: rgba(0, 11, 59, 0.04);
  color: var(--stcjmis-primary, #000b3b);
  font-weight: 600;
}

@media (max-width: 575.98px) {
  .stcjmis-help-desk-page .stcjmis-help-search-form,
  .stcjmis-help-desk-page .stcjmis-help-search-form:has(.stcjmis-help-search-clear) {
    grid-template-columns: 1fr;
    max-width: none;
  }

  .stcjmis-help-desk-page .stcjmis-help-search-btn,
  .stcjmis-help-desk-page .stcjmis-help-search-clear {
    width: 100%;
  }
}

/* SMS Blast read-only detail (sent/failed/partial) — mirror Help Desk page shell. */
.stcjmis-blast-readonly-page .stcjmis-blast-readonly-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
}

@media (min-width: 992px) {
  .stcjmis-blast-readonly-page .stcjmis-blast-readonly-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.stcjmis-blast-readonly-page .stcjmis-blast-readonly-card {
  height: 100%;
}

.stcjmis-blast-readonly-page .stcjmis-change-form-card .card-header {
  background-color: rgba(0, 11, 59, 0.03);
  border-bottom: 1px solid var(--bs-border-color);
}

.stcjmis-blast-readonly-page .stcjmis-change-form-card .card-header h5 {
  color: var(--stcjmis-primary, #000b3b);
  font-weight: 600;
}

.stcjmis-blast-readonly-page .stcjmis-change-form-card .card-body {
  padding: 0.75rem 1rem;
}

.stcjmis-blast-readonly-page .stcjmis-blast-readonly-row {
  display: grid;
  grid-template-columns: 10.5rem minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.08));
}

.stcjmis-blast-readonly-page .stcjmis-blast-readonly-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.stcjmis-blast-readonly-page .stcjmis-blast-readonly-row__label {
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: 600;
  line-height: var(--bs-body-line-height);
  color: var(--bs-body-color);
  padding-top: calc(0.375rem + 1px);
  padding-bottom: calc(0.375rem + 1px);
}

.stcjmis-blast-readonly-page .stcjmis-blast-readonly-row__value {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: var(--stcjmis-control-height);
  min-width: 0;
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  line-height: var(--bs-body-line-height);
  color: var(--bs-body-color);
  overflow-wrap: anywhere;
  word-break: break-word;
}

.stcjmis-blast-readonly-page .stcjmis-plain-value {
  display: block;
  max-width: 100%;
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--bs-body-font-weight);
  line-height: var(--bs-body-line-height);
  color: var(--bs-body-color);
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.stcjmis-blast-readonly-page .stcjmis-blast-readonly-body__text {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-family: inherit;
  font-size: inherit;
  line-height: 1.5;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.stcjmis-blast-readonly-page .stcjmis-blast-readonly-fields {
  display: grid;
  gap: 0.25rem;
}

.stcjmis-blast-readonly-page .stcjmis-blast-readonly-audience__list {
  margin: 0;
  padding-left: 1.25rem;
}

.stcjmis-blast-readonly-page .stcjmis-blast-last-error {
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--bs-danger-border-subtle, #f1aeb5);
  border-radius: var(--bs-border-radius, 0.375rem);
  background: var(--bs-danger-bg-subtle, #f8d7da);
  color: var(--bs-danger-text-emphasis, #58151c);
  white-space: pre-wrap;
}

/* Blast message audience: compact dropdown pickers aligned with change-form controls. */
.stcjmis-change-form .stcjmis-blast-audience-picker {
  position: relative;
  width: 100%;
  max-width: var(--stcjmis-change-form-row-max-width);
}

.stcjmis-change-form .stcjmis-blast-audience-picker > select,
.stcjmis-change-form .stcjmis-blast-audience-picker__native {
  display: none !important;
}

.stcjmis-change-form .stcjmis-blast-audience-picker__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: var(--stcjmis-control-height);
  max-height: var(--stcjmis-control-height);
  padding: 0.375rem 2rem 0.375rem 0.75rem;
  text-align: left;
  color: var(--bs-body-color);
  background-color: #fff;
  border: 1px solid var(--stcjmis-control-border);
  border-radius: var(--stcjmis-control-radius);
  box-shadow: none;
  cursor: pointer;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%236c757d' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 16px 12px;
}

.stcjmis-change-form .stcjmis-blast-audience-picker__trigger:focus {
  border-color: var(--stcjmis-primary);
  box-shadow: var(--stcjmis-control-focus-ring);
  outline: none;
}

.stcjmis-change-form .stcjmis-blast-audience-picker__label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stcjmis-change-form .stcjmis-blast-audience-picker--disabled .stcjmis-blast-audience-picker__trigger {
  background-color: var(--bs-secondary-bg);
  border-color: var(--bs-border-color);
  color: var(--bs-body-color);
  cursor: default;
  pointer-events: none;
}

.stcjmis-change-form .stcjmis-blast-audience-picker__panel {
  position: absolute;
  z-index: 1050;
  top: calc(100% + 0.25rem);
  left: 0;
  right: 0;
  max-height: 12rem;
  overflow-y: auto;
  background-color: #fff;
  border: 1px solid var(--stcjmis-control-border);
  border-radius: var(--stcjmis-control-radius);
  box-shadow: 0 0.5rem 1rem rgba(0, 11, 59, 0.12);
  padding: 0.25rem 0;
}

.stcjmis-change-form .stcjmis-blast-audience-picker__option {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0.375rem 0.75rem;
  cursor: pointer;
  font-weight: var(--bs-body-font-weight);
  color: var(--bs-body-color);
}

.stcjmis-change-form .stcjmis-blast-audience-picker__option:hover {
  background-color: rgba(0, 11, 59, 0.06);
}

.stcjmis-change-form .stcjmis-blast-audience-picker__option input[type="checkbox"] {
  margin: 0;
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
  cursor: pointer;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-card .card-header,
.stcjmis-feature-controls-page .stcjmis-portal-maintenance-card .card-header {
  background-color: rgba(0, 11, 59, 0.03);
  border-bottom: 1px solid var(--bs-border-color);
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-card .card-header h5,
.stcjmis-feature-controls-page .stcjmis-portal-maintenance-card .card-header h5 {
  color: var(--stcjmis-primary, #000b3b);
  font-weight: 600;
}

.stcjmis-feature-controls-page .stcjmis-portal-maintenance-card__header {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-card .card-body,
.stcjmis-feature-controls-page .stcjmis-portal-maintenance-card .card-body {
  padding: 0.75rem 1rem;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-intro {
  font-size: 0.9375rem;
  line-height: 1.5;
}

.stcjmis-feature-controls-page .stcjmis-portal-maintenance-section__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.5rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--stcjmis-status-warning-color, #856404);
  background-color: var(--stcjmis-status-warning-bg, rgba(255, 193, 7, 0.18));
  border: 1px solid var(--stcjmis-status-warning-border, rgba(255, 193, 7, 0.45));
}

.stcjmis-feature-controls-page .stcjmis-portal-maintenance-form .form-group .row {
  max-width: var(--stcjmis-change-form-row-max-width);
  --stcjmis-field-label-width: 6rem;
}

.stcjmis-feature-controls-page .stcjmis-portal-maintenance-enabled-control {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.stcjmis-feature-controls-page .stcjmis-portal-maintenance-enabled-control .stcjmis-feature-controls-save {
  flex: 0 0 auto;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-legend {
  padding: 0.75rem 0.875rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--stcjmis-control-radius, 0.375rem);
  background-color: rgba(0, 11, 59, 0.02);
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-legend__title {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-legend__items {
  display: grid;
  gap: 0.5rem;
  padding-left: 0;
  list-style: none;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-legend__items li {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-legend__text {
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--bs-body-color);
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-legend__note {
  margin-top: 0.65rem;
  font-size: 0.8125rem;
  color: var(--bs-secondary-color);
}

.stcjmis-feature-controls-page .stcjmis-portal-maintenance-message {
  display: block;
  width: 100%;
  max-width: none;
  height: var(--stcjmis-textarea-3-line-height);
  min-height: var(--stcjmis-textarea-3-line-height);
  max-height: var(--stcjmis-textarea-3-line-height);
  box-sizing: border-box;
  padding: 0.375rem 0.75rem;
  line-height: var(--bs-body-line-height);
  resize: none;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-table th {
  white-space: nowrap;
  font-weight: 600;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-table th,
.stcjmis-feature-controls-page .stcjmis-feature-controls-table td {
  text-align: left;
  vertical-align: middle;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-table__controls-col {
  width: 20rem;
  min-width: 20rem;
  padding-left: 2rem;
  white-space: nowrap;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-controls-head,
.stcjmis-feature-controls-page .stcjmis-feature-controls-controls {
  display: grid;
  grid-template-columns: 4.5rem 8.5rem 6.5rem;
  gap: 1.5rem;
  align-items: center;
  justify-items: center;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-controls-head span {
  font-weight: 600;
  text-align: center;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-controls__status,
.stcjmis-feature-controls-page .stcjmis-feature-controls-controls__mode,
.stcjmis-feature-controls-page .stcjmis-feature-controls-controls__action {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: var(--stcjmis-control-height);
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-controls__mode select {
  min-width: 8.5rem;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-controls__toggle .stcjmis-toggle-field-inner {
  min-height: var(--stcjmis-control-height);
  display: flex;
  align-items: center;
  justify-content: center;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-label {
  display: block;
  font-weight: 600;
  color: var(--stcjmis-primary, #000b3b);
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-key {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.8125rem;
  color: var(--bs-secondary-color);
  font-family: var(--bs-font-monospace);
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-modules {
  list-style: none;
  margin: 0;
  padding: 0;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-modules li {
  position: relative;
  padding-left: 0.85rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--bs-body-color);
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-modules li + li {
  margin-top: 0.2rem;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-modules li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--stcjmis-primary, #000b3b);
  font-weight: 700;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-group__header th {
  background-color: rgba(0, 11, 59, 0.04);
  border-top: 1px solid rgba(0, 11, 59, 0.08);
  color: var(--stcjmis-primary, #000b3b);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding-top: 0.85rem;
  padding-bottom: 0.55rem;
  text-transform: none;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-group:first-of-type .stcjmis-feature-controls-group__header th {
  border-top: 0;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-row--hidden {
  background-color: rgba(108, 117, 125, 0.04);
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-row--maintenance {
  background-color: rgba(255, 193, 7, 0.08);
}

.stcjmis-feature-controls-page .stcjmis-boolean-indicator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  box-sizing: border-box;
}

.stcjmis-feature-controls-page .stcjmis-boolean-indicator--on {
  color: var(--stcjmis-status-active-color);
  background-color: var(--stcjmis-status-active-bg);
  border: 1px solid var(--stcjmis-status-active-border);
}

.stcjmis-feature-controls-page .stcjmis-boolean-indicator--off {
  color: var(--stcjmis-status-disabled-color);
  background-color: var(--stcjmis-status-disabled-bg);
  border: 1px solid var(--stcjmis-status-disabled-border);
}

.stcjmis-feature-controls-page .stcjmis-boolean-indicator .fa-check,
.stcjmis-feature-controls-page .stcjmis-boolean-indicator .fa-times,
.stcjmis-feature-controls-page .stcjmis-boolean-indicator .fa-wrench {
  font-size: 0.625rem;
  line-height: 1;
}

.stcjmis-feature-controls-page .stcjmis-boolean-indicator--maintenance {
  color: var(--stcjmis-status-warning-color, #856404);
  background-color: var(--stcjmis-status-warning-bg, rgba(255, 193, 7, 0.18));
  border: 1px solid var(--stcjmis-status-warning-border, rgba(255, 193, 7, 0.45));
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-save {
  min-height: var(--stcjmis-control-height);
  border-radius: var(--stcjmis-control-radius);
  font-weight: 500;
  white-space: nowrap;
}

.stcjmis-feature-controls-page .stcjmis-feature-controls-empty {
  font-size: 0.9375rem;
}

.stcjmis-feature-maintenance-page .stcjmis-feature-maintenance-card {
  width: 100%;
}

.stcjmis-feature-maintenance-page .stcjmis-feature-maintenance-card__body {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 20rem;
  padding: 4rem 1.5rem;
}

.stcjmis-feature-maintenance-page .stcjmis-portal-error__icon {
  margin-bottom: 1rem;
}

.stcjmis-feature-maintenance-page .stcjmis-portal-error__icon .stcjmis-boolean-indicator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  box-sizing: border-box;
}

.stcjmis-feature-maintenance-page .stcjmis-portal-error__icon .stcjmis-boolean-indicator .fa-wrench {
  font-size: 1rem;
  line-height: 1;
}

.stcjmis-feature-maintenance-page .stcjmis-portal-error__icon .stcjmis-boolean-indicator--maintenance {
  color: var(--stcjmis-status-warning-color, #856404);
  background-color: var(--stcjmis-status-warning-bg, rgba(255, 193, 7, 0.18));
  border: 1px solid var(--stcjmis-status-warning-border, rgba(255, 193, 7, 0.45));
}
