@charset "UTF-8";
/*** Global ***/
.swal2-title {
  font-size: 2.4rem !important;
}

.swal2-content {
  font-size: 2rem !important;
  margin: 2rem !important;
}

.swal2-styled:focus {
  box-shadow: none !important;
}
.swal2-styled.swal2-confirm, .swal2-styled.swal2-cancel {
  font-size: 2rem !important;
}
.swal2-styled.swal2-confirm {
  background-color: #94c830 !important;
  border: 1px solid #94c830 !important;
}
.swal2-styled.swal2-cancel {
  background-color: #dc3a4d !important;
  border: 1px solid #dc3a4d !important;
}

/* The confirm button is brand green (above); recolour the success icon to the
   same green instead of SweetAlert2's pale sage so the two match on the "Done!"
   confirmations (home-page 1-2-3 wizard, and every other success modal). This
   file loads after sweetalert2.css and matches its selector specificity, so it
   wins on cascade order - no !important needed. */
.swal2-icon.swal2-success {
  border-color: #94c830;
  color: #94c830;
}
.swal2-icon.swal2-success .swal2-success-ring {
  border-color: rgba(148, 200, 48, 0.3);
}
.swal2-icon.swal2-success [class^=swal2-success-line] {
  background-color: #94c830;
}

/* Give the buttons a comfortable minimum tap target on phones (SweetAlert2 sets
   no min size, and it already clamps the popup to the viewport width itself). */
.swal2-styled.swal2-confirm,
.swal2-styled.swal2-cancel {
  min-width: 8rem;
  padding: 0.7em 1.8em;
}

.swal-wide {
  width: 60%;
  margin-left: -30%;
}

.tall-sa {
  box-sizing: border-box;
  max-height: 100% !important;
  overflow-y: auto !important;
  padding: 0 17px 17px !important;
  width: 512px;
}

.tall-sa:before {
  content: "";
  display: block;
  height: 17px;
  width: 0;
}

/* Close button: upper right, matching the security modal's red X, with a 44px
   tap target. sweetalert2.all.js injects its own styles at runtime, after this
   sheet, so the popup ancestor is needed to win. */
.swal2-popup .swal2-close {
  flex: 0 0 auto;
  width: 4.4rem;
  height: 4.4rem;
  font-size: 3.6rem;
  color: #dc3a4d;
}
.swal2-popup .swal2-close:hover {
  color: rgb(231.5409482759, 122.9590517241, 135.6939655172);
}
.swal2-popup .swal2-close:focus {
  box-shadow: none;
  outline: 2px solid #dc3a4d;
  outline-offset: 2px;
}

/*** Global ***/
/*** Global ***/
/**
 * Buttons
 **/
.btn:focus, .btn:active {
  color: #52595c;
}
.btn {
  transition: all ease 0.5s;
}

.btn-primary, a.btn-primary, .btn-success, a.btn-success {
  border: 1px solid #94c830;
  color: white;
}
.btn-primary:link, .btn-primary:visited, .btn-primary a:link, .btn-primary a:visited, a.btn-primary:link, a.btn-primary:visited, a.btn-primary a:link, a.btn-primary a:visited, .btn-success:link, .btn-success:visited, .btn-success a:link, .btn-success a:visited, a.btn-success:link, a.btn-success:visited, a.btn-success a:link, a.btn-success a:visited {
  color: white;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, a.btn-primary:hover, a.btn-primary:focus, a.btn-primary:active, .btn-success:hover, .btn-success:focus, .btn-success:active, a.btn-success:hover, a.btn-success:focus, a.btn-success:active {
  background-color: white;
  border: 1px solid #94c830;
  color: #94c830;
}
.btn-primary:hover.disabled, .btn-primary:hover[disabled], .btn-primary:focus.disabled, .btn-primary:focus[disabled], .btn-primary:active.disabled, .btn-primary:active[disabled], a.btn-primary:hover.disabled, a.btn-primary:hover[disabled], a.btn-primary:focus.disabled, a.btn-primary:focus[disabled], a.btn-primary:active.disabled, a.btn-primary:active[disabled], .btn-success:hover.disabled, .btn-success:hover[disabled], .btn-success:focus.disabled, .btn-success:focus[disabled], .btn-success:active.disabled, .btn-success:active[disabled], a.btn-success:hover.disabled, a.btn-success:hover[disabled], a.btn-success:focus.disabled, a.btn-success:focus[disabled], a.btn-success:active.disabled, a.btn-success:active[disabled] {
  color: white;
}

.btn-secondary, a.btn-secondary {
  color: white;
  background-color: #52595c;
  border: 1px solid #52595c;
}
.btn-secondary:link, .btn-secondary:visited, .btn-secondary a:link, .btn-secondary a:visited, a.btn-secondary:link, a.btn-secondary:visited, a.btn-secondary a:link, a.btn-secondary a:visited {
  color: white;
}
.btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active, a.btn-secondary:hover, a.btn-secondary:focus, a.btn-secondary:active {
  color: #52595c;
  background-color: white;
  border: 1px solid #52595c;
}
.btn-secondary:hover.disabled, .btn-secondary:hover[disabled], .btn-secondary:focus.disabled, .btn-secondary:focus[disabled], .btn-secondary:active.disabled, .btn-secondary:active[disabled], a.btn-secondary:hover.disabled, a.btn-secondary:hover[disabled], a.btn-secondary:focus.disabled, a.btn-secondary:focus[disabled], a.btn-secondary:active.disabled, a.btn-secondary:active[disabled] {
  color: white;
}

.btn-info {
  background-color: #006699;
  border: 1px solid #006699;
  color: white;
}
.btn-info:link, .btn-info:visited, .btn-info a:link, .btn-info a:visited {
  background-color: #006699;
  border: 1px solid #006699;
  color: white;
}
.btn-info:hover, .btn-info:active {
  background-color: white;
  border: 1px solid #006699;
  color: #006699;
}
.btn-info:hover.disabled, .btn-info:hover[disabled], .btn-info:active.disabled, .btn-info:active[disabled] {
  color: white;
}

.btn-danger, a.btn-danger {
  color: white;
  background: #dc3a4d;
  border: 1px solid #dc3a4d;
}
.btn-danger:link, .btn-danger:visited, .btn-danger a:link, .btn-danger a:visited, a.btn-danger:link, a.btn-danger:visited, a.btn-danger a:link, a.btn-danger a:visited {
  color: white;
  background: #dc3a4d;
  border: 1px solid #dc3a4d;
}
.btn-danger:hover, .btn-danger:focus, .btn-danger:active, a.btn-danger:hover, a.btn-danger:focus, a.btn-danger:active {
  background-color: white;
  color: #dc3a4d;
}
.btn-danger:hover.disabled, .btn-danger:hover[disabled], .btn-danger:focus.disabled, .btn-danger:focus[disabled], .btn-danger:active.disabled, .btn-danger:active[disabled], a.btn-danger:hover.disabled, a.btn-danger:hover[disabled], a.btn-danger:focus.disabled, a.btn-danger:focus[disabled], a.btn-danger:active.disabled, a.btn-danger:active[disabled] {
  color: white;
}

.btn-warning, a.btn-warning {
  color: white;
  background: #ff932e;
  border: 1px solid #ff932e;
}
.btn-warning:link, .btn-warning:visited, .btn-warning a:link, .btn-warning a:visited, a.btn-warning:link, a.btn-warning:visited, a.btn-warning a:link, a.btn-warning a:visited {
  color: white;
  background: #ff932e;
  border: 1px solid #ff932e;
}
.btn-warning:hover, .btn-warning:focus, .btn-warning:active, a.btn-warning:hover, a.btn-warning:focus, a.btn-warning:active {
  background-color: white;
  color: #ff932e;
}
.btn-warning:hover.disabled, .btn-warning:hover[disabled], .btn-warning:focus.disabled, .btn-warning:focus[disabled], .btn-warning:active.disabled, .btn-warning:active[disabled], a.btn-warning:hover.disabled, a.btn-warning:hover[disabled], a.btn-warning:focus.disabled, a.btn-warning:focus[disabled], a.btn-warning:active.disabled, a.btn-warning:active[disabled] {
  color: white;
}

/**
 * Navigation
 **/
.navbar-default img {
  display: block;
  height: 36px;
  width: auto;
  margin: 7px 0;
}
@media (max-width: 991px) {
  .navbar-default .navbar-header {
    margin-left: 0;
  }
}
.navbar-default .navbar-primary > li > .nav-staging {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  padding: 0 6px;
  font-size: 11px;
  line-height: 1;
}
.navbar-default .attention {
  color: #94c830 !important;
  font-weight: bold;
}
.navbar-default .badge:not(.clr-red) {
  position: relative;
  top: -0.125em;
}
.navbar-default .badge.clr-red {
  padding-left: 0;
  padding-right: 0;
  background-color: transparent;
  font-size: inherit;
  font-weight: normal;
  vertical-align: initial;
}

/*** Global ***/
.bkgd-light-green {
  background-color: rgb(221.3306451613, 238.8387096774, 187.6612903226) !important;
}

.clr-green {
  color: #94c830 !important;
}

.bkgd-light-red {
  background-color: rgb(246.9288793103, 209.5711206897, 213.9525862069) !important;
}

.clr-red {
  color: #dc3a4d !important;
}

.bkgd-light-dark-grey {
  background-color: rgb(171.724137931, 178.0603448276, 180.775862069) !important;
}

.clr-dark-grey {
  color: #52595c !important;
}

.bkgd-light-medium-grey {
  background-color: white !important;
}

.clr-medium-grey {
  color: #afafaf !important;
}

.bkgd-light-light-grey {
  background-color: white !important;
}

.clr-light-grey {
  color: #e5e5e5 !important;
}

.bkgd-light-orange {
  background-color: rgb(255, 239.2392344498, 224.5) !important;
}

.clr-orange {
  color: #ff932e !important;
}

.bkgd-light-purple {
  background-color: rgb(253.8175, 234.6825, 249.7325) !important;
}

.clr-purple {
  color: #f442ce !important;
}

.bkgd-light-yellow {
  background-color: rgb(255, 239.7, 178.5) !important;
}

.clr-yellow {
  color: #ffcc00 !important;
}

.bkgd-light-blue {
  background-color: rgb(76.5, 195.5, 255) !important;
}

.clr-blue {
  color: #006699 !important;
}

/*** Global ***/
.icon-legend {
  max-height: 600px;
}
@media only screen and (max-width : 1919px) {
  .icon-legend {
    max-height: 400px;
  }
}
.icon-legend {
  overflow: scroll;
  overflow-x: hidden;
}
.icon-legend table {
  max-width: 600px;
  margin: auto;
}
.icon-legend table th.first {
  text-align: right;
}
.icon-legend table td {
  vertical-align: middle !important;
}
.icon-legend .icon-holder {
  text-align: right;
}
.icon-legend .description {
  text-align: left;
}

#security_image_modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.9);
  z-index: 20000;
  text-align: center;
}
#security_image_modal.is-open {
  display: flex;
  align-items: center;
  justify-content: center;
}
#security_image_modal img {
  max-width: 95vw;
  max-height: 95vh;
}
#security_image_modal .security-image-modal-close {
  position: fixed;
  top: 20px;
  right: 30px;
  color: #dc3a4d;
  font-size: 42px;
  font-weight: bold;
  line-height: 1;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  z-index: 20001;
}
#security_image_modal .security-image-modal-close:hover, #security_image_modal .security-image-modal-close:focus {
  color: rgb(231.5409482759, 122.9590517241, 135.6939655172);
}

/*** Global ***/
.alert-warning {
  /* Design system section 5.5: one warning treatment for every screen. */
  --warn-bg: #FEF5CF;
  --warn-border: #DFCB88;
  --warn-text: #634400;
  --warn-icon: #634400;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: var(--warn-bg);
  border: 1px solid var(--warn-border);
  color: var(--warn-text);
  border-radius: 8px;
  padding-block: 14px;
  padding-inline: 16px;
  margin: 32px 0;
  font-family: "Open Sans", sans-serif;
  font-size: 16px;
  line-height: 1.5;
}
.alert-warning.alert-warning p {
  margin: 0;
  line-height: inherit;
}
.alert-warning strong {
  font-weight: 700;
}
.alert-warning .icon {
  flex: none;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  fill: none;
  stroke: var(--warn-icon);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 600px) {
  .alert-warning {
    margin: 24px 0;
  }
}
/*** Global ***/
.login-container {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #94c830;
  color: white;
}
.login-container div.hr {
  height: 1px;
  border-bottom: 2px solid white;
  width: 10vw;
  margin-top: 2vh;
  margin-bottom: 5vh;
}
.login-container .flex-row {
  flex: 1 1 auto;
  width: 100%;
}
.login-container .flex-row.flex {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.login-container .flex-row.flex h1, .login-container .flex-row.flex h2 {
  text-align: center;
  font-weight: 100;
}
.login-container .flex-row.flex h1 {
  font-size: 56px;
}
.login-container .flex-row.flex h2 {
  font-size: 20px;
  margin-top: 10px;
  margin-bottom: 10px;
}
.login-container .flex-row.flex h2 i {
  font-size: 12px;
  position: relative;
  top: -3px;
  padding-left: 5px;
  padding-right: 5px;
}
.login-container .container {
  max-width: 35vw;
}
.login-container .control-label {
  font-weight: 700;
  margin-bottom: 5px;
}
.login-container .form-group.center {
  text-align: center;
}
.login-container .form-group a, .login-container .form-group a:hover {
  color: white;
  text-decoration: underline;
}
.login-container .btn-primary {
  border: 1px solid white;
  width: 49%;
  font-weight: 700;
  color: white;
}
@media only screen and (max-width : 599px) {
  .login-container .btn-primary {
    width: inherit;
  }
}
.login-container .btn-primary:focus, .login-container .btn-primary:active {
  border: 1px solid white;
  width: 49%;
  font-weight: 700;
}
.login-container .btn-primary:hover {
  border: 1px solid white;
  text-decoration: none;
  color: #94c830;
}
.login-container .btn-primary:hover:link {
  color: #94c830;
}

/*
 * Auth shell (login / two-factor / forgot / reset / create password)
 * Visual system per the "Mezure Login: Final Handoff" design.
 * Tokens and sizing are matched directly against the client's
 * "Mezure Login: Dark Green Icons" mockup where it has a corresponding
 * element; panels the mockup doesn't cover (2FA, OTP, radio, alerts)
 * keep their prior values.
 * All rules are scoped under .auth-body / .auth-shell to avoid touching
 * the rest of the (Bootstrap 3) admin styles.
 */
.auth-body,
.auth-body *,
.auth-body *::before,
.auth-body *::after {
  box-sizing: border-box;
}

.auth-body {
  --auth-green: oklch(76.8% .185 126.5);
  --auth-green-d: oklch(68% .17 127);
  --auth-green-i: oklch(35% .055 141);
  --auth-ink: oklch(18% .014 142);
  --auth-slate: oklch(49% .014 150);
  --auth-mid: oklch(66% .01 150);
  --auth-field: oklch(97.2% .006 143);
  --auth-mist: oklch(95.5% .007 195);
  --auth-paper: oklch(98.9% .002 127);
  --auth-line: oklch(87% .012 148);
  --auth-red: oklch(58.5% .185 20);
  --auth-form: 440px;
  --auth-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  --auth-out: cubic-bezier(.16, 1, .3, 1);
  margin: 0;
  font-family: "Open Sans", system-ui, sans-serif !important;
  background: var(--auth-paper);
  color: var(--auth-ink);
}
.auth-body a:link, .auth-body a:visited {
  color: var(--auth-green-i);
}
.auth-body a:hover {
  color: var(--auth-ink);
}

.auth-shell {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  min-height: 100vh;
  background: var(--auth-paper);
}
.auth-shell > * {
  min-width: 0;
}

/* Left panel: brand + form */
.auth-left {
  display: grid;
  grid-template-rows: 1fr auto;
  padding: 43.37px 77.5px 25.11px;
  background: #fff;
  text-align: center;
  min-width: 0;
}

.auth-core {
  align-self: center;
  justify-self: center;
  width: min(100%, var(--auth-form));
}

.auth-brand {
  display: grid;
  justify-items: center;
  gap: 12.5px;
  margin-bottom: 31.96px;
}
.auth-brand img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.auth-tag {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0;
  font-size: 13.13px;
  font-weight: 700;
  letter-spacing: 0.16em;
  line-height: 1.35;
  text-transform: uppercase;
  white-space: nowrap;
  color: oklch(24% 0.02 150deg);
}
.auth-tag i {
  display: inline-block;
  flex: 0 0 auto;
  width: 0.75em;
  height: 0.75em;
  border-radius: 50%;
  background: var(--auth-green);
}

.auth-heading {
  margin: 0 0 18px;
  font-size: 3rem;
  font-weight: 600;
  color: var(--auth-ink);
  text-align: left;
}

.auth-subtext {
  margin: -8px 0 18px;
  font-size: 1.25rem;
  color: var(--auth-slate);
  text-align: left;
}

/* Fields */
.auth-fields {
  display: grid;
  gap: 12.5px;
  text-align: left;
}

.auth-field {
  position: relative;
  display: block;
}
.auth-field .auth-field-icon {
  position: absolute;
  left: 15px;
  top: 31.5px;
  transform: translateY(-50%);
  color: var(--auth-green-i);
  pointer-events: none;
  font-size: 15px;
}
.auth-field input {
  width: 100%;
  height: 63px;
  padding: 5px 42.5px 5px 45px;
  border: 1.5px solid var(--auth-line);
  border-radius: 1rem;
  background: var(--auth-field);
  color: var(--auth-ink);
  outline: 0;
  font-size: 1.25rem;
  transition: 0.18s var(--auth-out);
  box-shadow: none;
}
.auth-field input::-moz-placeholder {
  color: var(--auth-mid);
}
.auth-field input::placeholder {
  color: var(--auth-mid);
}
.auth-field input:hover {
  border-color: oklch(84% 0.012 172deg);
}
.auth-field input:focus {
  background: var(--auth-paper);
  border-color: var(--auth-green-d);
  box-shadow: 0 0 0 4px oklch(76.8% 0.185 126.5deg / 0.18);
}
.auth-field.auth-field--no-icon input {
  padding-left: 16px;
}
.auth-field.has-error input {
  border-color: var(--auth-red);
}
.auth-field.has-error input:focus {
  border-color: var(--auth-red);
  box-shadow: 0 0 0 4px oklch(58.5% 0.185 20deg / 0.18);
}

.auth-error {
  display: block;
  margin-top: 6px;
  color: var(--auth-red);
  font-size: 1.25rem;
}
.auth-error.auth-error--center {
  margin: 0;
  text-align: center;
}

.auth-eye {
  position: absolute;
  right: 0.75rem;
  top: 31.5px;
  transform: translateY(-50%);
  width: 3rem;
  height: 3rem;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 0.75rem;
  background: transparent;
  color: var(--auth-green-i);
  font-size: 1.5rem;
  cursor: pointer;
}
.auth-eye:hover {
  background: var(--auth-mist);
  color: var(--auth-ink);
}
.auth-eye:focus-visible {
  outline: 2px solid var(--auth-ink);
  outline-offset: 3px;
}

.auth-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
  color: var(--auth-slate);
  font-size: 1.25rem;
}
.auth-row.auth-row--center {
  justify-content: center;
}

.auth-check {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-weight: 400;
}
.auth-check input {
  margin: 0;
  accent-color: var(--auth-green-d);
}

.auth-link {
  color: var(--auth-green-i);
  font-weight: 600;
  text-decoration: none;
}
.auth-link:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.auth-primary {
  width: 100%;
  min-height: 57px;
  padding-block: 0.375rem;
  margin-top: 22px;
  border: 0;
  border-radius: 999px;
  background: var(--auth-green);
  color: oklch(15% 0.018 132deg);
  font-size: 1.25rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.18s var(--auth-out), color 0.18s var(--auth-out);
}
.auth-primary:hover {
  background: var(--auth-green-d);
  color: var(--auth-paper);
}
.auth-primary:focus-visible {
  outline: 2px solid var(--auth-ink);
  outline-offset: 3px;
}
.auth-primary:disabled {
  background: var(--auth-mist);
  color: var(--auth-mid);
  cursor: not-allowed;
}

.auth-secondary {
  width: 100%;
  min-height: 47.5px;
  margin-top: 12px;
  border: 1.5px solid var(--auth-line);
  border-radius: 999px;
  background: var(--auth-paper);
  color: var(--auth-ink);
  font-weight: 600;
  cursor: pointer;
}
.auth-secondary:hover {
  border-color: var(--auth-green-d);
  color: var(--auth-green-i);
}

.auth-invite {
  margin-top: 17px;
  color: var(--auth-slate);
  font-size: 1.25rem;
}

.auth-radio-group {
  display: grid;
  gap: 10px;
  margin-top: 18px;
  text-align: left;
}

.auth-radio {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border: 1.5px solid var(--auth-line);
  border-radius: 13px;
  background: var(--auth-field);
  cursor: pointer;
  transition: 0.18s var(--auth-out);
}
.auth-radio input {
  margin-top: 3px;
  accent-color: var(--auth-green);
}
.auth-radio:hover {
  border-color: oklch(84% 0.012 172deg);
}
.auth-radio:has(input:checked) {
  border-color: var(--auth-green-d);
  background: var(--auth-paper);
  box-shadow: 0 0 0 3px oklch(76.8% 0.185 126.5deg / 0.16);
}

.auth-radio-copy {
  display: grid;
  gap: 2px;
}
.auth-radio-copy strong {
  font-size: 1.25rem;
  color: var(--auth-ink);
  font-weight: 600;
}
.auth-radio-copy small {
  font-size: 1.25rem;
  color: var(--auth-slate);
}

.auth-alert {
  margin-top: 12px;
  margin-bottom: 16px;
  padding: 11px 14px;
  border-radius: 10px;
  font-size: 1.25rem;
  text-align: left;
}
.auth-alert.auth-alert--success {
  background: oklch(95% 0.04 145deg);
  color: var(--auth-green-i);
}
.auth-alert.auth-alert--error {
  background: oklch(95% 0.03 20deg);
  color: var(--auth-red);
}

.auth-legal {
  display: grid;
  gap: 5px;
  margin-top: 51px;
  color: var(--auth-mid);
  font-size: 10px;
  line-height: 1.5;
}
.auth-legal a {
  color: var(--auth-mid);
  text-decoration: underline;
}

/* Two-factor / recovery / passkey panels */
.auth-account {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 18px;
  padding: 9px 11px;
  border: 1px solid var(--auth-line);
  border-radius: 10px;
  background: var(--auth-field);
  font-size: 1.25rem;
  color: var(--auth-slate);
  text-align: left;
}
.auth-account b {
  color: var(--auth-ink);
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.auth-account a {
  margin-left: auto;
  white-space: nowrap;
}

.auth-prompt {
  margin-bottom: 15px;
  color: var(--auth-slate);
  font-size: 1.25rem;
  text-align: left;
}

.auth-otp {
  display: flex;
  justify-content: center;
  gap: 8px;
}
.auth-otp input {
  width: 48px;
  height: 58px;
  padding: 0;
  text-align: center;
  border: 1.5px solid var(--auth-line);
  border-radius: 11px;
  background: var(--auth-paper);
  color: var(--auth-ink);
  outline: 0;
  font: 500 1.25rem var(--auth-mono);
}
.auth-otp input:focus {
  border-color: var(--auth-ink);
  box-shadow: 0 0 0 3px oklch(76.8% 0.185 126.5deg / 0.24);
}

.auth-timer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 13px;
  color: var(--auth-slate);
  font: 500 0.625rem var(--auth-mono);
}
.auth-timer b {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--auth-green);
}

.auth-panel + .auth-panel {
  margin-top: 4px;
}

/* Right panel: editorial artwork + testimonials */
.auth-right {
  position: relative;
  overflow: hidden;
  background: oklch(35% 0.055 141deg) url("/images/mezure-login-editorial.png") center/cover no-repeat;
}

.auth-veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, oklch(25% 0.048 141deg / 0.58), oklch(25% 0.048 141deg / 0.4) 35%, transparent 82%);
}

.auth-qwin {
  position: absolute;
  inset: 0;
  padding: 0 51.84px;
}
.auth-qwin::before, .auth-qwin::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  z-index: 3;
  height: 22%;
  pointer-events: none;
}
.auth-qwin::before {
  top: 0;
  background: linear-gradient(to bottom, oklch(35% 0.055 141deg) 0, transparent 100%);
}
.auth-qwin::after {
  bottom: 0;
  background: linear-gradient(to top, oklch(35% 0.055 141deg) 0, transparent 100%);
}

.auth-pause {
  position: absolute;
  right: 2rem;
  bottom: 2rem;
  z-index: 3;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 1px solid var(--auth-green);
  border-radius: 50%;
  background: var(--auth-green-i);
  color: var(--auth-green);
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  cursor: pointer;
}
.auth-pause svg {
  /* Safari below 16 ignores grid and flex on <button>, so the glyph is
     offset into place rather than centred by the button's own layout. */
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1rem;
  height: 1rem;
  transform: translate(-50%, -50%);
  shape-rendering: crispEdges;
}
.auth-pause .auth-play-icon {
  display: none;
}
.auth-pause.is-paused .auth-pause-icon {
  display: none;
}
.auth-pause.is-paused .auth-play-icon {
  display: block;
}

.auth-quotes {
  display: grid;
  animation: auth-scroll 205.065s linear infinite;
}

.auth-quotes--paused {
  animation-play-state: paused;
}

@keyframes auth-scroll {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-50%);
  }
}
.auth-quote {
  display: grid;
  gap: 17.5px;
  max-width: 46ch;
  padding: 36.52px 0 50.22px;
  font-family: "IBM Plex Sans", "Open Sans", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.auth-quote blockquote {
  margin: 0;
  border: 0;
  padding: 0;
  color: oklch(97% 0.008 128deg);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.38;
  letter-spacing: -0.008em;
  text-wrap: pretty;
}
.auth-quote blockquote::before, .auth-quote blockquote::after {
  color: var(--auth-green);
  font-weight: 600;
  font-size: 1.55em;
  line-height: 0;
  position: relative;
  top: 0.12em;
}
.auth-quote blockquote::before {
  content: "“";
}
.auth-quote blockquote::after {
  content: "”";
}
.auth-quote figcaption {
  display: grid;
  gap: 2px;
}
.auth-quote strong {
  color: oklch(91% 0.014 140deg);
  font-size: 13.75px;
  font-weight: 600;
}
.auth-quote span {
  color: oklch(79% 0.03 138deg);
  font-size: 11.25px;
  line-height: 1.28;
}

@media (min-width: 1600px) {
  .auth-shell {
    grid-template-columns: 1fr 1.6fr;
  }
}
@media (max-width: 991px) {
  .auth-right {
    display: none;
  }
  .auth-shell {
    grid-template-columns: 1fr;
  }
  .auth-left {
    padding: 34px 24px 24px;
  }
}
@media (max-width: 767px) {
  .auth-otp {
    gap: 5px;
  }
  .auth-otp input {
    width: 42px;
    height: 54px;
  }
  .auth-row {
    align-items: flex-start;
  }
  .auth-tag {
    gap: 0.5rem;
    font-size: 0.75rem;
    letter-spacing: 0.1em;
  }
  .auth-tag i {
    width: 0.73em;
    height: 0.73em;
  }
}
@media (prefers-reduced-motion: reduce) {
  .auth-quotes {
    animation-duration: 0.001ms;
    transform: none !important;
  }
}
/*
 * Single-column variant (used by the new-user "set password" page only,
 * see layouts/auth.blade.php's $isCreatePassword check). Everything here
 * is scoped under .auth-shell--single so the two-column login/register/
 * reset pages are unaffected.
 */
.auth-shell--single {
  grid-template-columns: 1fr;
}
.auth-shell--single .auth-left {
  background: var(--auth-paper);
  padding: 48px 24px;
}
.auth-shell--single .auth-core {
  width: 100%;
  max-width: 720px;
  background: #fff;
  border: 1px solid var(--auth-line);
  border-radius: 16px;
  padding: 40px 48px;
}
.auth-shell--single .auth-brand img {
  width: 60%;
}
.auth-shell--single .auth-legal {
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
}

.auth-heading--center {
  text-align: center;
}

.auth-subtext--center {
  text-align: center;
}

.auth-step {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 20px 0 10px;
  text-align: left;
}
.auth-step.auth-step--with-action {
  justify-content: space-between;
  gap: 16px;
}
.auth-step.auth-step--with-action > span:first-child {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.auth-step-badge {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--auth-green);
  color: #fff;
  font-size: 0.9rem;
  font-weight: 700;
}

.auth-step-label {
  font-weight: 600;
  color: var(--auth-ink);
  font-size: 1.25rem;
}

.auth-secondary--inline {
  width: auto;
  min-height: auto;
  margin-top: 0;
  padding: 10px 18px;
}

.auth-alert--warning {
  background: oklch(96% 0.05 95deg);
  border: 1px solid oklch(85% 0.1 95deg);
  text-align: center;
}
.auth-alert--warning strong {
  display: block;
  color: var(--auth-ink);
}
.auth-alert--warning p {
  margin: 4px 0 10px;
  color: var(--auth-slate);
}

@media (max-width: 767px) {
  .auth-shell--single .auth-left {
    padding: 24px 16px;
  }
  .auth-shell--single .auth-core {
    padding: 24px 20px;
  }
  .auth-step--with-action {
    flex-direction: column;
    align-items: flex-start;
  }
  .auth-step--with-action .auth-secondary--inline {
    width: 100%;
  }
}
/*** Global ***/
.panel-padding {
  padding-top: 20px;
  padding-bottom: 20px;
}

.panel-body-container {
  text-align: center;
  padding: 40px 0 40px 0;
}
.panel-body-container .easy-1-2-3 {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.panel-body-container .easy-1-2-3 .list-container {
  margin-left: auto;
  margin-right: auto;
}
.panel-body-container .easy-1-2-3 p {
  font-size: 36px;
  font-weight: 700;
  margin-bottom: 50px;
  line-height: 36px;
}
.panel-body-container .easy-1-2-3 ol {
  font-weight: 100;
  font-size: 28px;
  text-align: left;
  margin-bottom: 50px;
}
.panel-body-container .easy-1-2-3 ol li {
  margin-bottom: 10px;
}
.panel-body-container .option-row {
  margin-bottom: 15px;
}
.panel-body-container .main-option {
  font-size: 32px;
  font-weight: 100;
}

.entity-invite-value {
  word-break: break-word;
  overflow-wrap: anywhere;
}

@media (max-width: 991px) {
  .entity-invite-label,
  .entity-invite-value {
    margin-bottom: 4px;
  }
}
.panel-heading .header-action {
  font-size: 16px;
  font-weight: 400;
  margin-left: 20px;
}
.panel-heading .header-action--end {
  float: right;
}
@media (max-width: 767px) {
  .panel-heading .header-action {
    display: inline-block;
    margin: 10px 0 2px;
    font-size: 15px;
    white-space: normal;
  }
  .panel-heading .header-action--end {
    float: none;
  }
}

.btn-rs {
  width: 40px;
  font-size: 16px;
}

.action-icons {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  gap: 4px;
}
.action-icons.icon-count-4 {
  display: grid;
  grid-template-columns: repeat(2, auto);
  justify-items: center;
}

.panel-body.user-adoption {
  max-height: 450px;
  overflow-y: scroll;
}
.panel-body h4 {
  font-weight: bold;
  text-align: right;
  line-height: 15px;
  margin: 0;
}
.panel-body p {
  text-align: left;
  line-height: 15px;
  margin: 0;
}
.panel-body .row {
  margin-bottom: 10px;
}
@media (max-width: 991px) {
  .panel-body h4,
  .panel-body p {
    text-align: left;
    line-height: 1.4;
  }
  .panel-body h4 {
    margin-bottom: 2px;
  }
}

.security-status {
  display: inline-block;
  text-align: left;
}
.security-status .security-status-row {
  display: flex;
  align-items: baseline;
}
.security-status .security-status-row + .security-status-row {
  margin-top: 10px;
}
.security-status .security-status-label {
  flex: 0 0 auto;
  width: 190px;
  text-align: left;
  margin-right: 8px;
  white-space: nowrap;
}
.security-status .security-status-value {
  flex: 1 0 auto;
  text-align: left;
}

.invite-msg {
  font-size: 16px;
  line-height: 18px;
}
.invite-msg p {
  text-align: left;
  font-size: 16px;
  line-height: 18px;
  margin-bottom: 10px;
}
.invite-msg ol, .invite-msg ul {
  margin-top: 10px;
}
.invite-msg ol li, .invite-msg ul li {
  margin-top: 5px;
  text-align: left;
}
.invite-msg b {
  text-align: left;
}

.invite-help {
  color: #94c830;
}
.invite-help:hover:before, .invite-help:focus:before {
  content: "\f29c";
}

.org-settings {
  /* Brand green comes straight from $green in common/variables.scss (#94c830)
     so this screen can never drift from the rest of MEZURE. --org-green-h is
     the hover-only darkening; nothing else deviates from brand. */
  --org-green: #94c830;
  --org-green-h: rgb(123.6516129032, 167.0967741935, 40.1032258065);
  --org-green-tint: oklch(96.5% .035 130);
  --org-ink: oklch(18% .014 142);
  --org-slate: oklch(46% .014 150);
  --org-mid: oklch(64% .01 150);
  --org-line: oklch(88% .008 150);
  --org-line-soft: oklch(93% .006 150);
  --org-bar: oklch(97.5% .003 150);
  --org-muted-bg: oklch(97% .003 150);
  --org-red: oklch(55% .175 24);
  --org-red-bg: oklch(96% .028 24);
  --org-amber: oklch(72% .14 78);
  --org-amber-bg: oklch(97% .05 92);
  --org-amber-ink: oklch(42% .09 70);
  --org-out: cubic-bezier(.16, 1, .3, 1);
  --org-gutter: 36px;
  --org-page: #e5e5e5;
  flex: 1 1 auto;
  min-width: 0;
  background: #fff;
  color: var(--org-ink);
  font-family: "Open Sans", system-ui, sans-serif;
}
.org-settings *,
.org-settings *::before,
.org-settings *::after {
  box-sizing: border-box;
}

/* Header bar */
.org-header {
  padding: 22px 0;
  background: var(--org-bar);
  border-bottom: 1px solid var(--org-line);
  /* Page-gray strip above the bar so it never sits flush against the app
     header's gray - the space other Mezure screens get from .panel-padding. */
  border-top: 20px solid var(--org-page);
}
.org-header h1 {
  /* Same centered column as .org-form, so the title lines up over the
     section labels instead of hanging off the viewport edge. */
  width: min(100% - var(--org-gutter) * 2, 1240px);
  margin: 0 auto;
  /* Scales itself down on narrow screens without a media query. */
  font-size: clamp(1.5rem, 1.15rem + 1.6vw, 2.125rem);
  font-weight: 400;
  line-height: 1.25;
  color: var(--org-ink);
  text-wrap: balance;
}
.org-header h1 b {
  font-weight: 700;
}

/* Content column. min() handles 320px -> 4K with no breakpoint. */
.org-form {
  width: min(100% - var(--org-gutter) * 2, 1240px);
  margin: 0 auto;
  padding-bottom: 56px;
}

/* Sections: 212px label column, then content */
.org-section {
  display: grid;
  grid-template-columns: 212px minmax(0, 1fr);
  gap: 40px;
  padding: 40px 0;
}
.org-section + .org-section {
  border-top: 1px solid var(--org-line-soft);
}

.org-section-label {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--org-ink);
  text-wrap: balance;
}

.org-section-body {
  min-width: 0;
}

/* Fields */
.org-field + .org-field {
  margin-top: 22px;
}

.org-field label {
  display: block;
  margin-bottom: 7px;
  font-size: 15px;
  font-weight: 700;
  color: var(--org-ink);
}
.org-field label .org-optional {
  font-weight: 400;
  color: var(--org-mid);
}

.org-field input,
.org-field select {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid var(--org-line);
  border-radius: 7px;
  background: #fff;
  color: var(--org-ink);
  /* 16px floor: anything smaller makes iOS Safari zoom the page on focus. */
  font-size: 16px;
  font-family: inherit;
  line-height: 1.4;
  outline: 0;
  transition: border-color 0.15s var(--org-out), box-shadow 0.15s var(--org-out);
}
.org-field input::-moz-placeholder, .org-field select::-moz-placeholder {
  color: var(--org-mid);
}
.org-field input::placeholder,
.org-field select::placeholder {
  color: var(--org-mid);
}
.org-field input:hover,
.org-field select:hover {
  border-color: oklch(80% 0.01 150deg);
}
.org-field input:focus,
.org-field select:focus {
  border-color: var(--org-green);
  box-shadow: 0 0 0 3px rgba(148, 200, 48, 0.32);
}

/* iOS renders its own select control otherwise, ignoring radius and height. */
.org-field select {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  padding-right: 42px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 16px 16px;
}

/* 2FA status line */
.org-status {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  border: 1px solid var(--org-line);
  border-radius: 8px;
  background: var(--org-bar);
}
.org-status .org-status-icon {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  margin-top: 1px;
  color: var(--org-green);
}
.org-status p {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--org-ink);
  text-wrap: pretty;
}

/* Numbered steps */
.org-step {
  margin-top: 34px;
}
.org-step.org-step--second {
  margin-top: 64px;
}

.org-step-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.org-step-num {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--org-green);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 26px;
  text-align: center;
}

.org-step-title {
  margin: 0;
  padding-top: 2px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--org-ink);
  text-wrap: balance;
}

/* Indented to sit under the heading text, not the number. */
.org-step-note {
  margin: 9px 0 0;
  padding-left: 40px;
  font-size: 15px;
  line-height: 1.55;
  color: var(--org-slate);
  text-wrap: pretty;
}

/* Method list */
.org-methods {
  margin-top: 18px;
  border: 1px solid var(--org-line);
  border-radius: 8px;
  overflow: hidden;
}

.org-method {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin: 0;
  padding: 16px 18px;
  font-weight: 400;
  cursor: pointer;
  /* iPad Safari paints a gray flash over the whole row without this. */
  -webkit-tap-highlight-color: transparent;
  transition: background-color 0.12s var(--org-out);
}
.org-method + .org-method {
  border-top: 1px solid var(--org-line-soft);
}
.org-method {
  /* Hover tint never fires on touch, so it stays decoration only - the
     checkbox + bordered row + dividers are what read as tappable. */
}
@media (hover: hover) {
  .org-method:hover {
    background: var(--org-green-tint);
  }
}
.org-method:active {
  background: oklch(94.5% 0.04 130deg);
}
.org-method.org-method--disabled {
  background: var(--org-muted-bg);
  cursor: not-allowed;
}
.org-method.org-method--disabled .org-method-name,
.org-method.org-method--disabled .org-method-desc {
  color: var(--org-mid);
}
@media (hover: hover) {
  .org-method.org-method--disabled:hover {
    background: var(--org-muted-bg);
  }
}
.org-method.org-method--disabled:active {
  background: var(--org-muted-bg);
}

.org-method input[type=checkbox] {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  margin: 2px 0 0;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--org-mid);
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  transition: background-color 0.12s var(--org-out), border-color 0.12s var(--org-out);
}
.org-method input[type=checkbox]:checked {
  border-color: var(--org-green);
  background: var(--org-green);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3.2L13 5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 14px 14px;
}
.org-method input[type=checkbox]:focus-visible {
  outline: 2px solid var(--org-green);
  outline-offset: 2px;
}
.org-method input[type=checkbox]:disabled {
  background: oklch(94% 0.004 150deg);
  border-color: var(--org-line);
  cursor: not-allowed;
}

/* Basis 0 rather than auto: the copy block has to shrink to share the row with
   the checkbox, otherwise its intrinsic width pushes it onto its own line once
   flex-wrap is enabled at phone widths. */
.org-method-copy {
  flex: 1 1 0;
  min-width: 0;
}

.org-method-name {
  display: block;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--org-ink);
}

.org-method-desc {
  display: block;
  margin-top: 2px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--org-slate);
  text-wrap: pretty;
}

.org-pill {
  flex: 0 0 auto;
  align-self: center;
  padding: 5px 12px;
  border-radius: 999px;
  background: oklch(92% 0.004 150deg);
  color: var(--org-slate);
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

/* Two-factor policy: a bordered list of three mutually-exclusive radio rows,
   styled like .org-methods above it but with a left accent bar + checkmark
   on the selected row instead of a leading checkbox look. */
.org-policies {
  margin-top: 18px;
  border: 1px solid var(--org-line);
  border-radius: 8px;
  overflow: hidden;
}

.org-policy {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin: 0;
  padding: 16px 18px 16px 22px;
  border-left: 4px solid transparent;
  font-weight: 400;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 0.12s var(--org-out), border-color 0.12s var(--org-out);
}
.org-policy + .org-policy {
  border-top: 1px solid var(--org-line-soft);
}
@media (hover: hover) {
  .org-policy:hover {
    background: var(--org-green-tint);
  }
}
.org-policy.org-policy--selected {
  border-left-color: var(--org-green);
  background: var(--org-green-tint);
}

.org-policy input[type=radio] {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  margin: 2px 0 0;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--org-mid);
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  transition: background-color 0.12s var(--org-out), border-color 0.12s var(--org-out);
}
.org-policy input[type=radio]:checked {
  border-width: 6px;
  border-color: var(--org-green);
}
.org-policy input[type=radio]:focus-visible {
  outline: 2px solid var(--org-green);
  outline-offset: 2px;
}

.org-policy-copy {
  flex: 1 1 0;
  min-width: 0;
}

.org-policy-name {
  display: block;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--org-ink);
}

.org-policy-desc {
  display: block;
  margin-top: 2px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--org-slate);
  text-wrap: pretty;
}

.org-policy-check {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: 3px;
  color: var(--org-green);
  visibility: hidden;
}

.org-policy--selected .org-policy-check {
  visibility: visible;
}

/* Conditional callouts */
.org-callout {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 16px;
  padding: 14px 16px;
  border: 1px solid;
  border-radius: 8px;
  font-size: 15px;
  line-height: 1.55;
  text-wrap: pretty;
}
.org-callout[hidden] {
  display: none;
}
.org-callout .org-callout-icon {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: 2px;
}
.org-callout p {
  margin: 0;
}
.org-callout.org-callout--warn {
  border-color: oklch(85% 0.09 88deg);
  background: var(--org-amber-bg);
  color: var(--org-amber-ink);
}
.org-callout.org-callout--error {
  border-color: oklch(84% 0.09 24deg);
  background: var(--org-red-bg);
  color: var(--org-red);
}

/* Buttons */
.org-actions {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-top: 44px;
}

.org-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 48px;
  padding: 10px 26px;
  border: 0;
  border-radius: 7px;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  font-family: inherit;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 0.15s var(--org-out), transform 0.08s var(--org-out);
}
.org-btn i {
  color: #fff;
}
.org-btn:focus-visible {
  outline: 2px solid var(--org-ink);
  outline-offset: 3px;
}
.org-btn:active {
  transform: translateY(1px);
}
.org-btn {
  /* Beat the global `a:link/:visited { color: $green }` rule. */
}
.org-btn.org-btn--save:link, .org-btn.org-btn--save:visited, .org-btn.org-btn--save:hover, .org-btn.org-btn--save:focus, .org-btn.org-btn--cancel:link, .org-btn.org-btn--cancel:visited, .org-btn.org-btn--cancel:hover, .org-btn.org-btn--cancel:focus {
  color: #fff;
  text-decoration: none;
}
.org-btn.org-btn--save {
  /* Darkened from brand green so white label text clears contrast. */
  background: var(--org-green);
}
.org-btn.org-btn--save:hover {
  background: var(--org-green-h);
}
.org-btn.org-btn--save:disabled {
  background: oklch(88% 0.01 150deg);
  color: oklch(60% 0.01 150deg);
  cursor: not-allowed;
  transform: none;
}
.org-btn.org-btn--save:disabled i {
  color: oklch(60% 0.01 150deg);
}
.org-btn.org-btn--cancel {
  background: oklch(56% 0.175 24deg);
}
.org-btn.org-btn--cancel:hover {
  background: oklch(50% 0.175 24deg);
}

.org-error {
  margin: 16px 0 0;
  color: var(--org-red);
  font-size: 15px;
  font-weight: 700;
}

/* Slightly roomier rows on touch, without loosening desktop density. */
@media (pointer: coarse) {
  .org-method {
    padding-block: 19px;
  }
}
/*
 * iPad portrait (768, 834) and anything narrower: the 212px label column plus
 * the 40px gap leaves too little room for readable content, so the section
 * grid collapses to one column.
 */
@media only screen and (max-width: 1023px) {
  .org-settings {
    --org-gutter: 24px;
  }
}
@media only screen and (max-width: 759px) {
  .org-settings {
    --org-gutter: 16px;
  }
}
@media only screen and (max-width: 1023px) {
  .org-section {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    padding: 32px 0;
  }
}
@media only screen and (max-width: 519px) {
  /* Only the pill drops to its own line; the checkbox stays beside the copy. */
  .org-method {
    flex-wrap: wrap;
  }
  .org-method .org-pill {
    flex-basis: 100%;
    align-self: flex-start;
    margin-left: 34px;
  }
  .org-actions {
    flex-direction: column;
  }
  .org-btn {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .org-settings *,
  .org-settings *::before,
  .org-settings *::after {
    transition: none !important;
  }
}
.mz-home {
  --mz-home-ink: oklch(18% .014 142);
  --mz-home-line: oklch(88% .008 150);
  --mz-home-rail: #e2e6e8;
  --mz-home-num-ring: #52595c;
  --mz-home-num-ink: #1a1d1f;
  --mz-home-start: #94c830;
  --mz-home-start-pressed: #78a326;
  --mz-home-start-ink: #1a1d1f;
  --mz-home-start-focus: #4d6b12;
  --mz-home-rail-w: clamp(99.2px, 7.75vw + 52.7px, 271.25px);
  --mz-home-icon-size: clamp(44.8px, 3.5vw + 23.8px, 122.5px);
  background: #fff;
  border: 1px solid var(--mz-home-line);
  border-radius: 6px;
  padding: clamp(35.84px, 2.8vw + 19.04px, 98px) clamp(15.36px, 1.2vw + 8.16px, 42px) clamp(40.96px, 3.2vw + 21.76px, 112px);
}
.mz-home *,
.mz-home *::before,
.mz-home *::after {
  box-sizing: border-box;
}

.mz-home-inner {
  width: min(100%, clamp(448px, 35vw + 238px, 1225px));
  margin: 0 auto;
  text-align: center;
}

.mz-home-mark {
  display: block;
  width: clamp(42.24px, 3.3vw + 22.44px, 115.5px);
  height: auto;
  margin: clamp(3.84px, 0.3vw + 2.04px, 10.5px) auto clamp(19.2px, 1.5vw + 10.2px, 52.5px);
}

.mz-home-title {
  margin: 0 0 clamp(25.6px, 2vw + 13.6px, 70px);
  font-size: clamp(1.12rem, 1.4vw + 0.595rem, 3.0625rem);
  font-weight: 700;
  color: var(--mz-home-ink);
  text-wrap: balance;
}

.mz-home-steps {
  width: min(100%, clamp(320px, 25vw + 170px, 875px));
  list-style: none;
  margin: 0 auto clamp(20.48px, 1.6vw + 10.88px, 56px);
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(10.24px, 0.8vw + 5.44px, 28px);
}

.mz-home-step {
  position: relative;
  display: flex;
  align-items: center;
  min-height: clamp(61.44px, 4.8vw + 32.64px, 168px);
  border: 1px solid var(--mz-home-line);
  overflow: hidden;
  /* Two-tone rail: light on the icon side, white under the copy. The numeral
     medallion below is centered exactly on the seam between the two. */
  background: linear-gradient(to right, var(--mz-home-rail) 0 var(--mz-home-rail-w), #fff var(--mz-home-rail-w) 100%);
  text-align: left;
}

.mz-home-step-icon {
  flex: 0 0 var(--mz-home-rail-w);
  display: flex;
  align-items: center;
  justify-content: center;
}
.mz-home-step-icon img {
  /* Same box for all three icons on purpose: the play glyph is drawn
     smaller within its canvas so the three read at equal optical weight -
     normalizing this would fight the supplied artwork. */
  width: var(--mz-home-icon-size);
  height: var(--mz-home-icon-size);
}

.mz-home-step-num {
  position: absolute;
  left: var(--mz-home-rail-w);
  top: 50%;
  transform: translate(-50%, -50%);
  width: clamp(37.12px, 2.9vw + 19.72px, 101.5px);
  height: clamp(37.12px, 2.9vw + 19.72px, 101.5px);
  border: 1.5px solid var(--mz-home-num-ring);
  border-radius: 50%;
  background: #fff;
  color: var(--mz-home-num-ink);
  font-size: clamp(12.8px, 1vw + 6.8px, 35px);
  font-weight: 600;
  line-height: 1;
  display: grid;
  place-items: center;
}

.mz-home-step-label {
  padding: 0 clamp(15.36px, 1.2vw + 8.16px, 42px) 0 clamp(35.84px, 2.8vw + 19.04px, 98px);
  font-size: clamp(11.52px, 0.9vw + 6.12px, 31.5px);
  font-weight: 700;
  color: var(--mz-home-ink);
}

.mz-home-start-row {
  display: flex;
  justify-content: center;
}

.mz-home-start {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(179.2px, 14vw + 95.2px, 490px);
  max-width: 100%;
  min-width: 0;
  min-height: max(44px, clamp(28.16px, 2.2vw + 14.96px, 77px));
  padding: clamp(6.4px, 0.5vw + 3.4px, 17.5px) clamp(15.36px, 1.2vw + 8.16px, 42px);
  border: 0;
  border-radius: 6px;
  background: var(--mz-home-start);
  color: var(--mz-home-start-ink);
  font-size: clamp(10.24px, 0.8vw + 5.44px, 28px);
  font-weight: 600;
  line-height: 1.4;
  white-space: normal;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
  cursor: pointer;
  transition: background-color 150ms, box-shadow 150ms;
}
.mz-home-start:link, .mz-home-start:visited, .mz-home-start:hover, .mz-home-start:active, .mz-home-start:focus {
  color: var(--mz-home-start-ink);
  text-decoration: none;
}
@media (hover: hover) {
  .mz-home-start:hover {
    background: var(--mz-home-start-pressed);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  }
}
.mz-home-start:active {
  background: var(--mz-home-start-pressed);
  box-shadow: none;
}
.mz-home-start:focus {
  outline: none;
}
.mz-home-start:focus-visible {
  outline: 2px solid var(--mz-home-start-focus);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .mz-home-start {
    transition: none;
  }
}
@media (forced-colors: active) {
  .mz-home-start {
    border: 1px solid ButtonText;
  }
}

@media only screen and (max-width: 599px) {
  .mz-home {
    padding: 40px 16px 48px;
    --mz-home-rail-w: 96px;
    --mz-home-icon-size: 49px;
  }
  .mz-home-step-num {
    width: 40px;
    height: 40px;
    font-size: 15px;
  }
  .mz-home-step-label {
    padding-left: 32px;
    font-size: 16px;
  }
  .mz-home-start {
    width: 280px;
    padding: 10px 24px;
    font-size: 16px;
  }
}
/*** Global ***/
.checkout {
  width: 100%;
  margin-top: 10rem;
}
.checkout h4 {
  text-align: left;
}

.purchase-card h4 {
  text-align: center;
  font-weight: 100;
  margin-bottom: 10px;
}
.purchase-card {
  border: 1px #e5e5e5 solid;
}

/**
 * The CSS shown here will not be introduced in the Quickstart guide, but shows
 * how you can use CSS to style your Element's container.
 */
.StripeElement {
  box-sizing: border-box;
  height: 40px;
  padding: 10px 12px;
  border: 1px solid transparent;
  border-radius: 4px;
  background-color: white;
  box-shadow: 0 1px 3px 0 #e6ebf1;
  transition: box-shadow 150ms ease;
}

.StripeElement--focus {
  box-shadow: 0 1px 3px 0 #cfd7df;
}

.StripeElement--invalid {
  border-color: #fa755a;
}

.StripeElement--webkit-autofill {
  background-color: #fefde5 !important;
}

/*** Global ***/
.two-factor p {
  font-size: 16px;
  line-height: 1.7;
  margin: 0 0 10px;
}
.two-factor .well {
  margin-top: 37px;
}
.two-factor .well > div {
  line-height: 1.9;
}

/*** Global ***/
.security-keys .security-keys-intro {
  margin: 0 0 32px;
  font-size: 16px;
  line-height: 1.7;
}
.security-keys .security-keys-register {
  margin-top: 0;
}
.security-keys .table {
  margin-bottom: 32px;
}

@media (max-width: 600px) {
  .security-keys .security-keys-intro {
    margin-bottom: 24px;
  }
}
/*** Global ***/
/* My User Settings — three sections, one pattern:
     1. User Details        editable  (green bar, action buttons)
     2. Two-Factor Auth     editable  (green bar, action buttons, status marker)
     3. Role & Permissions  READ ONLY (green bar, VIEW ONLY eyebrow, no buttons)
   Read-only is communicated three ways at once: the eyebrow label, the lock
   glyph, and the structural absence of the action-button column. Brand green
   comes straight from $green (#94c830) so this screen can't drift from the
   rest of MEZURE; the neutral/status tones are independently tuned OKLCH,
   matching the color approach used on .org-settings. Type is sized in px
   here, like .org-settings: the admin layout loads Bootstrap 3, which sets
   html { font-size: 10px }, so rem on this screen is 10px-based and can't be
   reasoned about as "16 x rem". Type floor: nothing that's meant to be read
   (not decorative) stays at/above 15px, matching .org-settings' body-copy
   floor - it reserves 13px for a purely decorative pill, never for a label
   someone has to read. */
.mus-settings {
  --mus-green: #94c830;
  --mus-green-hover: rgb(132.7822580645, 179.435483871, 43.064516129);
  --mus-green-press: rgb(120.6080645161, 162.9838709677, 39.1161290323);
  --mus-green-focus: oklch(54% .160 126);
  --mus-ink-on-green: oklch(27% .052 132);
  --mus-green-deep: oklch(42% .115 130);
  --mus-bar: oklch(94% .065 126.5);
  --mus-bar-line: oklch(86% .070 126.5);
  --mus-ink-strong: oklch(27% .019 221);
  --mus-ink: oklch(37% .018 221);
  --mus-muted: oklch(57% .014 221);
  --mus-line: oklch(88.5% .012 221);
  --mus-line-soft: oklch(93% .010 221);
  --mus-space-md: 16px;
  --mus-space-lg: 24px;
  --mus-space-xl: 32px;
  --mus-space-2xl: 52px;
  --mus-action-col: 292px;
  --mus-ease: cubic-bezier(.22, 1, .36, 1);
  width: min(1064px, 100%);
  margin: 0 auto;
  padding-bottom: 56px;
  color: var(--mus-ink);
  font-family: "Open Sans", system-ui, sans-serif;
  font-size: 16px;
}
.mus-settings *,
.mus-settings *::before,
.mus-settings *::after {
  box-sizing: border-box;
}

/* Section shell. The 52px gap between sections is the primary grouping
   signal; don't reduce it below 40px. */
.mus-section {
  border: 1px solid var(--mus-line);
  background: #fff;
  box-shadow: 0 8px 24px oklch(32% 0.016 221deg / 0.055);
}
.mus-section + .mus-section {
  margin-top: var(--mus-space-2xl);
}

.mus-section-head {
  min-height: 78px;
  padding: var(--mus-space-md) var(--mus-space-xl);
  background: var(--mus-bar);
  border-bottom: 1px solid var(--mus-bar-line);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 18px;
  /* Read-only heads stack the eyebrow above the title. */
}
.mus-section-head.mus-section-head--eyebrow {
  display: block;
}

.mus-section-title {
  margin: 0;
  /* Same clamp as .org-header h1, so this title and that sibling screen's
     title scale and cap identically across viewport widths. */
  font-size: clamp(1.5rem, 1.15rem + 1.6vw, 2.125rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.018em;
  color: var(--mus-ink-strong);
  text-wrap: balance;
}

/* Read-only signal. Sits above the title so it's read first. */
.mus-eyebrow {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 5px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--mus-green-deep);
}
.mus-eyebrow i {
  font-size: 13px;
}

/* 2FA status marker. Must be derived from enrolled methods, never hardcoded —
   see UserController@edit ($hasTotp / $hasPasskeys / $twoFactorMethodLabel). */
.mus-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--mus-green-deep);
  /* Neither method is allowed for this account — nothing for the user to
     act on, so this stays neutral/muted rather than the green used when
     2FA is actionable (on or off but available). */
}
.mus-status.is-unavailable {
  color: var(--mus-muted);
}

/* Same green ring for on/off — only the glyph (check vs times, set in the
   blade) tells them apart. Keeps the page from reaching for red/amber. */
.mus-status-mark {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  color: currentColor;
  box-shadow: inset 0 0 0 2px currentColor;
  font-size: 13px;
}

.mus-status-method {
  font-weight: 600;
  color: var(--mus-ink);
}

.mus-rows {
  padding: 0 var(--mus-space-xl);
}

.mus-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--mus-action-col);
  align-items: center;
  gap: 48px;
  min-height: 124px;
  padding: 22px 0;
}
.mus-row + .mus-row {
  border-top: 1px solid var(--mus-line-soft);
}

.mus-row-label {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  color: var(--mus-ink);
}

.mus-row-value {
  margin: 3px 0 0;
  font-size: 16px;
  overflow-wrap: anywhere;
}
.mus-row-value.is-hidden {
  color: var(--mus-muted);
}

.mus-method-name {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--mus-ink-strong);
}

.mus-method-note {
  margin: 4px 0 0;
  max-width: 68ch;
  font-size: 15px;
  color: var(--mus-muted);
  text-wrap: pretty;
}

.mus-method-state {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 9px 0 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--mus-muted);
}
.mus-method-state::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: oklch(72% 0.01 221deg);
}
.mus-method-state.is-active {
  color: var(--mus-green-deep);
}
.mus-method-state.is-active::before {
  background: var(--mus-green);
}

/* One button style across the whole screen. Fixed width on desktop so the
   right edge is a single vertical line; full width on mobile. */
.mus-btn {
  width: var(--mus-action-col);
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 18px;
  border: 0;
  border-radius: 3px;
  background: var(--mus-green);
  color: var(--mus-ink-on-green);
  font: 600 16px/1.25 "Open Sans", sans-serif;
  cursor: pointer;
  touch-action: manipulation;
  transition: background 0.13s var(--mus-ease), transform 0.13s var(--mus-ease), box-shadow 0.13s var(--mus-ease);
}
.mus-btn:link, .mus-btn:visited {
  color: var(--mus-ink-on-green);
  text-decoration: none;
}
.mus-btn:hover, .mus-btn:focus {
  background: var(--mus-green-hover);
  color: var(--mus-ink-on-green);
  transform: translateY(-1px);
  box-shadow: 0 5px 12px oklch(50% 0.08 126deg / 0.14);
  text-decoration: none;
}
.mus-btn:active {
  background: var(--mus-green-press);
  transform: none;
  box-shadow: none;
}
.mus-btn:focus-visible {
  outline: 3px solid var(--mus-green-focus);
  outline-offset: 3px;
}
.mus-btn {
  /* Rendered as a plain <span>, not an <a> — genuinely not clickable, not
     just visually dimmed. Used when the account doesn't allow this 2FA
     method at all. */
}
.mus-btn.mus-btn--disabled {
  background: oklch(91% 0.006 221deg);
  color: var(--mus-muted);
  cursor: not-allowed;
}
.mus-btn.mus-btn--disabled:hover, .mus-btn.mus-btn--disabled:focus, .mus-btn.mus-btn--disabled:active {
  background: oklch(91% 0.006 221deg);
  color: var(--mus-muted);
  transform: none;
  box-shadow: none;
}

/* Role & Permissions (read only). No action column at all — that structural
   absence is deliberate: it's the fastest read of "nothing to do here." */
.mus-access {
  padding: 26px var(--mus-space-xl) var(--mus-space-xl);
}

.mus-access-intro {
  max-width: 70ch;
  margin: 0;
  font-size: 15px;
  color: var(--mus-muted);
  text-wrap: pretty;
}

.mus-role {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  align-items: baseline;
  gap: 8px 24px;
  margin: var(--mus-space-lg) 0 0;
  padding-bottom: var(--mus-space-lg);
  border-bottom: 1px solid var(--mus-line);
}
.mus-role dt {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.09em;
  color: var(--mus-ink-strong);
}
.mus-role dd {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--mus-ink-strong);
}

.mus-permissions-title {
  margin: var(--mus-space-lg) 0 var(--mus-space-md);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.09em;
  color: var(--mus-ink-strong);
}

/* auto-fit reflows 1 to 2 columns on its own, so any number of granted
   permissions lays out cleanly without extra breakpoints. */
.mus-permissions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
  gap: 14px 48px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.mus-permissions li {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  font-size: 15px;
  line-height: 1.45;
  color: var(--mus-ink);
}
.mus-permissions i {
  flex: 0 0 auto;
  margin-top: 3px;
  color: var(--mus-green-deep);
}

.mus-permissions-empty {
  margin: 0;
  font-size: 15px;
  color: var(--mus-muted);
}

/* Not a shrink: rows go single column, buttons go full width, the label /
   value / state stack keeps its reading order. */
@media only screen and (max-width: 700px) {
  .mus-section {
    box-shadow: none;
  }
  .mus-section + .mus-section {
    margin-top: 40px;
  }
  .mus-section-head {
    min-height: 68px;
    padding: 14px 18px;
    gap: 8px 12px;
  }
  .mus-section-title {
    font-size: 20px;
  }
  .mus-status {
    font-size: 15px;
  }
  .mus-rows {
    padding: 0 18px;
  }
  .mus-row {
    grid-template-columns: 1fr;
    gap: var(--mus-space-md);
    min-height: 0;
    padding: var(--mus-space-lg) 0;
  }
  .mus-row-label,
  .mus-method-name {
    font-size: 16px;
  }
  .mus-row-value {
    font-size: 15px;
  }
  .mus-btn {
    width: 100%;
    min-height: 52px;
    font-size: 16px;
  }
  .mus-access {
    padding: 22px 18px var(--mus-space-lg);
  }
  .mus-role {
    grid-template-columns: 1fr;
    gap: 2px;
  }
  .mus-role dd {
    font-size: 18px;
  }
  .mus-permissions {
    grid-template-columns: 1fr;
    gap: 13px;
  }
}
/* Edge-to-edge panels: on a phone, side gutters waste scarce width. */
@media only screen and (max-width: 390px) {
  .mus-settings {
    width: 100%;
    margin: 0;
  }
  .mus-section {
    border-left: 0;
    border-right: 0;
  }
  .mus-section + .mus-section {
    margin-top: 32px;
  }
  .mus-section-head {
    flex-direction: column;
    align-items: flex-start;
    padding: 16px;
  }
  .mus-section-head.mus-section-head--eyebrow {
    display: block;
  }
  .mus-rows {
    padding: 0 16px;
  }
  .mus-access {
    padding: 20px 16px var(--mus-space-md);
  }
  .mus-status-method {
    white-space: normal;
  }
}
@media (prefers-reduced-motion: reduce) {
  .mus-settings *,
  .mus-settings *::before,
  .mus-settings *::after {
    transition: none !important;
  }
}
.mus-settings > .alert-warning {
  justify-content: center;
}

.test-session-page {
  background-color: #EFEFEF;
  color: #405263;
}
.test-session-page .panel {
  background-color: #FFFFFF;
  border-color: #D4D4D4;
}
.test-session-page .panel-heading {
  background-color: #F5F5F5;
  border-bottom: 1px solid #E7E7E7;
  color: #405263;
  font-size: 18px;
}
.test-session-page .control-label {
  color: #405263;
}
.test-session-page hr {
  border-top-color: #D4D4D4;
}
.test-session-page .form-control {
  border-color: #C6C6C6;
}
.test-session-page select.form-control {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23555555' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 30px;
}
.test-session-page .btn-primary {
  background-color: #A2C62E;
  border-color: #91B526;
  color: #FFFFFF;
}
.test-session-page .btn-primary:hover, .test-session-page .btn-primary:focus, .test-session-page .btn-primary:active {
  background-color: #91B526;
  border-color: #91B526;
  color: #FFFFFF;
}
.test-session-page .btn-danger {
  background-color: #C74450;
  border-color: #C74450;
  color: #FFFFFF;
}
.test-session-page .btn-danger:hover, .test-session-page .btn-danger:focus, .test-session-page .btn-danger:active {
  background-color: #b53a45;
  border-color: #b53a45;
  color: #FFFFFF;
}
.test-session-page .mz-battery-buttons {
  display: flex;
  margin-bottom: 15px;
}
.test-session-page .mz-battery-buttons .mz-battery-btn {
  flex: 1 1 0;
  padding: 8px 12px;
  background-color: #FFFFFF;
  border: 1px solid #91B526;
  border-radius: 0;
  color: #567510;
  font-weight: bold;
  cursor: pointer;
}
.test-session-page .mz-battery-buttons .mz-battery-btn:not(:first-child) {
  border-left: none;
}
.test-session-page .mz-battery-buttons .mz-battery-btn:first-child {
  border-radius: 3px 0 0 3px;
}
.test-session-page .mz-battery-buttons .mz-battery-btn:last-child {
  border-radius: 0 3px 3px 0;
}
.test-session-page .mz-battery-buttons .mz-battery-btn:hover {
  background-color: #E5F3C5;
}
.test-session-page .mz-battery-buttons .mz-battery-btn.active {
  background-color: #A2C62E;
  color: #152000;
}
.test-session-page .mz-module-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.test-session-page .mz-module-group {
  border: 1px solid #D8DFD0;
  border-radius: 4px;
  overflow: hidden;
}
.test-session-page .mz-section-bar {
  background-color: #E5F3C5;
  border-bottom: 1px solid #C9DDA0;
  color: #26370B;
  font-weight: bold;
  padding: 6px 10px;
}
.test-session-page .mz-section-body {
  padding: 8px 12px;
}
.test-session-page .checkbox label {
  padding-left: 0;
}
.test-session-page .mz-checkbox-row label {
  display: flex;
  align-items: flex-start;
  width: 100%;
  font-weight: normal;
}
.test-session-page .mz-checkbox-row input.module-checkbox {
  flex: 0 0 auto;
  margin-top: 2px;
}
.test-session-page .mz-checkbox-row:not(.completed):not(.cancelled) label {
  color: #638A16;
  font-weight: bold;
}
.test-session-page input.module-checkbox,
.test-session-page input.practice-checkbox {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  position: static;
  float: none;
  width: 16px;
  height: 16px;
  margin: 0 6px 0 0;
  vertical-align: middle;
  border: 1px solid #8A8A8A;
  border-radius: 2px;
  background-color: #FFFFFF;
  background-repeat: no-repeat;
  background-position: center;
  cursor: pointer;
}
.test-session-page input.module-checkbox:checked,
.test-session-page input.practice-checkbox:checked {
  background-color: #638A16;
  border-color: #638A16;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23FFFFFF' d='M6.4 11.2 3 7.8l1.4-1.4 2 2 5.2-5.2 1.4 1.4z'/%3E%3C/svg%3E");
}
.test-session-page input.module-checkbox:disabled,
.test-session-page input.practice-checkbox:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.test-session-page .mz-select-actions {
  margin-top: 20px;
}
.test-session-page .mz-select-actions .mz-select-btn {
  margin-right: 8px;
  background-color: #FFFFFF;
  border: 1px solid #91B526;
  color: #567510;
  font-weight: bold;
}
.test-session-page .mz-select-actions .mz-select-btn:hover, .test-session-page .mz-select-actions .mz-select-btn:focus, .test-session-page .mz-select-actions .mz-select-btn:active {
  background-color: #A2C62E;
  border-color: #91B526;
  color: #152000;
}
@media (max-width: 991px) {
  .test-session-page .mz-battery-buttons .mz-battery-btn {
    padding: 12px 10px;
  }
  .test-session-page .mz-checkbox-row {
    margin-top: 0;
    margin-bottom: 0;
  }
  .test-session-page .mz-checkbox-row label {
    min-height: 44px;
    padding: 10px 4px;
    align-items: flex-start;
  }
  .test-session-page .mz-practice-row label {
    min-height: 44px;
    padding: 10px 4px;
  }
}

.demo-page .mz-demo-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.demo-page .mz-demo-title {
  margin: 0;
  font-size: 32px;
  font-weight: 400;
  color: #6C7A89;
}
.demo-page .mz-demo-graphs-btn {
  display: inline-block;
  padding: 9px 20px;
  background-color: #A2C62E;
  border: 1px solid #91B526;
  border-radius: 3px;
  color: #152000;
  font-weight: bold;
  text-decoration: none;
}
.demo-page .mz-demo-graphs-btn:hover, .demo-page .mz-demo-graphs-btn:focus {
  background-color: #91B526;
  color: #152000;
  text-decoration: none;
}
.demo-page .mz-demo-card {
  background-color: #FFFFFF;
  border: 1px solid #D4D4D4;
  border-radius: 4px;
  overflow: hidden;
}
.demo-page .mz-demo-table {
  width: 100%;
  border-collapse: collapse;
}
.demo-page .mz-demo-table th {
  padding: 12px 18px;
  border-bottom: 1px solid #D4D4D4;
  text-align: left;
  font-weight: bold;
  color: #333333;
}
.demo-page .mz-demo-table tbody tr:not(.mz-demo-section-row) {
  border-bottom: 1px solid #EBEBEB;
}
.demo-page .mz-demo-table tbody tr:not(.mz-demo-section-row):last-child {
  border-bottom: none;
}
.demo-page .mz-demo-table tbody td {
  padding: 12px 18px;
  vertical-align: middle;
}
.demo-page .mz-demo-table .mz-demo-section-row td {
  background-color: #A2C62E;
  color: #152000;
  font-weight: bold;
  padding: 8px 18px;
}
.demo-page .mz-demo-lang-btn {
  display: inline-block;
  margin: 3px 6px 3px 0;
  padding: 6px 14px;
  background-color: #E5F3C5;
  border-radius: 3px;
  color: #26370B;
  font-weight: bold;
  text-decoration: none;
}
.demo-page .mz-demo-lang-btn:hover, .demo-page .mz-demo-lang-btn:focus, .demo-page .mz-demo-lang-btn:active {
  background-color: #A2C62E;
  color: #152000;
  text-decoration: none;
}

/*** Global ***/
/* New-user agreements screen: the fixed 450/600px blocks and the row/column
   markup they sat in overflowed narrow screens, so widths are capped instead. */
.agreements-docs {
  max-width: 600px;
  margin: 0 auto;
  font-size: 20px;
}

.form-horizontal .control-label.agreements-accept {
  display: block;
  max-width: 450px;
  margin: 0 auto;
  text-align: left;
}

.agreements-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  max-width: 450px;
  margin: 0 auto;
}

body {
  font-family: "Open Sans" !important;
  background-color: #e5e5e5;
}

a {
  cursor: pointer;
}
a:link, a:visited {
  color: #94c830;
}
a:hover {
  color: #52595c;
}

.pointer {
  cursor: pointer !important;
}

h1.logo {
  text-transform: uppercase;
  text-shadow: -1px -1px 0 white, 1px -1px 0 white, -1px 1px 0 white, 1px 1px 0 white;
  font-weight: bold;
  color: #52595c;
}
h1 sup {
  font-size: 20px;
  text-decoration: none;
  position: relative;
  top: -30px;
}

.right {
  float: right;
}

.col-center {
  float: none;
  margin-left: auto;
  margin-right: auto;
}

/**
 * Data Table
 */
.datatable-custom p {
  font-size: 12px;
  margin-top: 10px;
}
.datatable-custom p.green {
  color: #94c830;
}
.datatable-custom p.red {
  color: #dc3a4d;
}
.datatable-custom .collapser i {
  transition: all ease 0.5s;
  transform: rotate(0deg);
}
.datatable-custom .collapser i.open {
  transform: rotate(180deg);
}

.footer {
  padding: 2%;
  color: #1a1d1f;
  background-color: #94c830;
}

.footer .copyright {
  font-size: 0.8em;
}
.footer .copyright p {
  text-align: center;
}
.footer .copyright a,
.footer .copyright a:link,
.footer .copyright a:visited,
.footer .copyright a:hover,
.footer .copyright a:active,
.footer .copyright a:focus {
  color: #1a1d1f;
  text-decoration: underline;
}
.footer .copyright a:hover {
  text-decoration-thickness: 2px;
}
.footer .copyright a:focus-visible {
  outline: 2px solid #1a1d1f;
  outline-offset: 2px;
}

.site {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .site {
    height: 100vh;
  }
}

.site-content {
  flex: 1 1 auto;
  display: flex;
}
.site-content > * {
  min-width: 0;
}

.pagination > .active > a, .pagination > .active > a:focus, .pagination > .active > a:hover, .pagination > .active > span, .pagination > .active > span:focus, .pagination > .active > span:hover {
  background-color: #94c830;
}

.completed {
  color: #94c830;
}
.completed input, .completed label {
  font-weight: bold;
}

.cancelled {
  color: #dc3a4d;
}
.cancelled input, .cancelled label {
  font-weight: bold;
}

#no-js, .intro-audio {
  height: 100vh;
  width: 100vw;
  position: absolute;
  background: white;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 10000;
}

.btn-result {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: #94c830;
  position: fixed;
  top: 50%;
  margin-top: -25px;
  z-index: 1;
}

.next.btn-result {
  right: 5px;
}

.next.btn-result:before {
  -webkit-transform: rotate(-44deg);
}

.next.btn-result:after {
  -webkit-transform: rotate(44deg);
}

.back.btn-result {
  left: 5px;
}

.back.btn-result:before {
  -webkit-transform: rotate(44deg);
}

.back.btn-result:after {
  -webkit-transform: rotate(-44deg);
}

/*
 * Results Graphs
 */
h4.subtitle {
  font-size: 16px;
  font-weight: 100;
}

table.results-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: auto;
  text-align: center;
  margin-bottom: 20px;
}
table.results-menu tbody,
table.results-menu tr {
  display: contents;
}
table.results-menu th {
  display: block;
}
table.results-menu .btn-sm {
  font-size: 14px;
}
table.results-menu tr {
  width: 100%;
  height: 100%;
  position: relative;
}
table.results-menu tr th {
  position: relative;
  text-align: center;
  margin: 5px 10px;
}
table.results-menu tr th a {
  background-color: #afafaf;
  border-color: #afafaf;
}
table.results-menu tr th a:hover {
  background-color: #94c830;
  border-color: #94c830;
  color: white;
  text-decoration: none;
}
table.results-menu tr th a.current {
  background-color: #94c830;
  border-color: #94c830;
}
table.results-menu tr th a.current:hover {
  background-color: #94c830;
  border-color: #94c830;
}

.control-label em {
  color: #dc3a4d;
}

.checkbox input[type=checkbox] {
  cursor: pointer;
}

.mz-check {
  accent-color: #94c830;
}

.m-0 {
  margin: 0rem !important;
}

.mr-0 {
  margin-right: 0rem !important;
}

.ml-0 {
  margin-left: 0rem !important;
}

.mt-0 {
  margin-top: 0rem !important;
}

.mb-0 {
  margin-bottom: 0rem !important;
}

.mx-0 {
  margin-left: 0rem !important;
  margin-right: 0rem !important;
}

.my-0 {
  margin-top: 0rem !important;
  margin-bottom: 0rem !important;
}

.p-0 {
  padding: 0rem !important;
}

.pr-0 {
  padding-right: 0rem !important;
}

.pl-0 {
  padding-left: 0rem !important;
}

.pt-0 {
  padding-top: 0rem !important;
}

.pb-0 {
  padding-bottom: 0rem !important;
}

.px-0 {
  padding-left: 0rem !important;
  padding-right: 0rem !important;
}

.py-0 {
  padding-top: 0rem !important;
  padding-bottom: 0rem !important;
}

.m-1 {
  margin: 0.25rem !important;
}

.mr-1 {
  margin-right: 0.25rem !important;
}

.ml-1 {
  margin-left: 0.25rem !important;
}

.mt-1 {
  margin-top: 0.25rem !important;
}

.mb-1 {
  margin-bottom: 0.25rem !important;
}

.mx-1 {
  margin-left: 0.25rem !important;
  margin-right: 0.25rem !important;
}

.my-1 {
  margin-top: 0.25rem !important;
  margin-bottom: 0.25rem !important;
}

.p-1 {
  padding: 0.25rem !important;
}

.pr-1 {
  padding-right: 0.25rem !important;
}

.pl-1 {
  padding-left: 0.25rem !important;
}

.pt-1 {
  padding-top: 0.25rem !important;
}

.pb-1 {
  padding-bottom: 0.25rem !important;
}

.px-1 {
  padding-left: 0.25rem !important;
  padding-right: 0.25rem !important;
}

.py-1 {
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important;
}

.m-2 {
  margin: 0.5rem !important;
}

.mr-2 {
  margin-right: 0.5rem !important;
}

.ml-2 {
  margin-left: 0.5rem !important;
}

.mt-2 {
  margin-top: 0.5rem !important;
}

.mb-2 {
  margin-bottom: 0.5rem !important;
}

.mx-2 {
  margin-left: 0.5rem !important;
  margin-right: 0.5rem !important;
}

.my-2 {
  margin-top: 0.5rem !important;
  margin-bottom: 0.5rem !important;
}

.p-2 {
  padding: 0.5rem !important;
}

.pr-2 {
  padding-right: 0.5rem !important;
}

.pl-2 {
  padding-left: 0.5rem !important;
}

.pt-2 {
  padding-top: 0.5rem !important;
}

.pb-2 {
  padding-bottom: 0.5rem !important;
}

.px-2 {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

.py-2 {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

.m-3 {
  margin: 0.75rem !important;
}

.mr-3 {
  margin-right: 0.75rem !important;
}

.ml-3 {
  margin-left: 0.75rem !important;
}

.mt-3 {
  margin-top: 0.75rem !important;
}

.mb-3 {
  margin-bottom: 0.75rem !important;
}

.mx-3 {
  margin-left: 0.75rem !important;
  margin-right: 0.75rem !important;
}

.my-3 {
  margin-top: 0.75rem !important;
  margin-bottom: 0.75rem !important;
}

.p-3 {
  padding: 0.75rem !important;
}

.pr-3 {
  padding-right: 0.75rem !important;
}

.pl-3 {
  padding-left: 0.75rem !important;
}

.pt-3 {
  padding-top: 0.75rem !important;
}

.pb-3 {
  padding-bottom: 0.75rem !important;
}

.px-3 {
  padding-left: 0.75rem !important;
  padding-right: 0.75rem !important;
}

.py-3 {
  padding-top: 0.75rem !important;
  padding-bottom: 0.75rem !important;
}

.m-4 {
  margin: 1rem !important;
}

.mr-4 {
  margin-right: 1rem !important;
}

.ml-4 {
  margin-left: 1rem !important;
}

.mt-4 {
  margin-top: 1rem !important;
}

.mb-4 {
  margin-bottom: 1rem !important;
}

.mx-4 {
  margin-left: 1rem !important;
  margin-right: 1rem !important;
}

.my-4 {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
}

.p-4 {
  padding: 1rem !important;
}

.pr-4 {
  padding-right: 1rem !important;
}

.pl-4 {
  padding-left: 1rem !important;
}

.pt-4 {
  padding-top: 1rem !important;
}

.pb-4 {
  padding-bottom: 1rem !important;
}

.px-4 {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}

.py-4 {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

.m-5 {
  margin: 1.25rem !important;
}

.mr-5 {
  margin-right: 1.25rem !important;
}

.ml-5 {
  margin-left: 1.25rem !important;
}

.mt-5 {
  margin-top: 1.25rem !important;
}

.mb-5 {
  margin-bottom: 1.25rem !important;
}

.mx-5 {
  margin-left: 1.25rem !important;
  margin-right: 1.25rem !important;
}

.my-5 {
  margin-top: 1.25rem !important;
  margin-bottom: 1.25rem !important;
}

.p-5 {
  padding: 1.25rem !important;
}

.pr-5 {
  padding-right: 1.25rem !important;
}

.pl-5 {
  padding-left: 1.25rem !important;
}

.pt-5 {
  padding-top: 1.25rem !important;
}

.pb-5 {
  padding-bottom: 1.25rem !important;
}

.px-5 {
  padding-left: 1.25rem !important;
  padding-right: 1.25rem !important;
}

.py-5 {
  padding-top: 1.25rem !important;
  padding-bottom: 1.25rem !important;
}

.mt {
  margin-top: 34px;
}

/*** Global ***/
.maintenance-container {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: white;
  color: #94c830;
}
.maintenance-container h2 {
  font-size: clamp(26px, 5vw, 60px);
}
