/* Installation controls and theme-safe app viewport. */
body.cnf-mobile-app-page .rs-breadcrumbs,
body.cnf-mobile-app-page .rs-page-header,
body.cnf-mobile-app-page .rs-breadcrumb,
body.cnf-mobile-app-page .page-title-area,
body.cnf-mobile-app-page .page-title-wrap,
body.cnf-mobile-app-page .page-title-wrapper,
body.cnf-mobile-app-page .inner-banner,
body.cnf-mobile-app-page .page-banner,
body.cnf-mobile-app-page .breadcrumbs-area {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.cnf-public-install {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  margin-top: 18px;
  background: linear-gradient(135deg, #173f70, #27785d);
  box-shadow: 0 10px 22px rgba(23, 63, 112, .15);
}
.cnf-public-install-status {
  display: block;
  margin-top: 10px;
  color: var(--cnf-muted);
  font-size: 12px;
  line-height: 1.45;
}
.cnf-app-auth-form { min-width: 0; }
.cnf-app-auth-form .cnf-app-login-links { margin-top: 15px; }
.cnf-auth-alert {
  margin-bottom: 14px;
  padding: 12px 14px;
  border-radius: 11px;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.45;
}
.cnf-auth-alert.error { border: 1px solid #efc8cc; background: #fff1f2; color: #9a3340; }
.cnf-auth-alert.success { border: 1px solid #bfe3d0; background: #edf9f3; color: #1e694d; }
.cnf-auth-button {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 11px 16px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--cnf-blue), #2b9a88);
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 900;
}
.cnf-remember label { display: flex !important; align-items: center; gap: 8px; font-weight: 700 !important; }
.cnf-remember input { width: 18px; height: 18px; margin: 0; }
.cnf-install-gate {
  position: fixed;
  z-index: 100000;
  inset: 0;
  display: grid;
  place-items: center;
  overflow-y: auto;
  padding: 20px;
  background: rgba(8, 35, 58, .84);
  backdrop-filter: blur(9px);
  overscroll-behavior: contain;
}
.cnf-install-gate[hidden] { display: none !important; }
.cnf-install-card {
  width: min(520px, 100%);
  margin: auto;
  padding: clamp(26px, 5vw, 42px);
  border-radius: 24px;
  background: #fff;
  color: var(--cnf-ink);
  text-align: center;
  box-shadow: 0 28px 90px rgba(0, 0, 0, .34);
}
.cnf-install-card > img { width: 88px; height: 88px; margin-bottom: 13px; }
.cnf-install-card > span {
  display: block;
  color: var(--cnf-blue);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .17em;
}
.cnf-install-card h2 {
  margin: 8px 0 10px;
  color: var(--cnf-navy);
  font-size: clamp(28px, 5vw, 40px);
  line-height: 1.06;
}
.cnf-install-card > p { margin: 0 auto 18px; max-width: 420px; color: var(--cnf-muted); line-height: 1.5; }
.cnf-install-card ol {
  margin: 0 0 20px;
  padding: 16px 20px 16px 40px;
  border-radius: 14px;
  background: #f1f7fb;
  color: #31506d;
  text-align: left;
  line-height: 1.65;
}
.cnf-install-card .cnf-install-primary,
.cnf-install-card .cnf-install-check {
  width: 100%;
  min-height: 50px;
  border-radius: 12px;
}
.cnf-install-card .cnf-install-check {
  margin-top: 9px;
  border: 1px solid #cbdbe8;
  background: #fff;
  color: var(--cnf-navy);
  font-weight: 850;
  cursor: pointer;
}
.cnf-install-card > small { display: block; margin-top: 12px; color: var(--cnf-muted); line-height: 1.45; }
.cnf-app-install-required { overflow: hidden !important; }
.cnf-app-install-required .cnf-app-shell,
.cnf-app-install-required .cnf-app-portal { pointer-events: none; user-select: none; }
.cnf-app-install-required .cnf-install-gate,
.cnf-app-install-required .cnf-install-gate * { pointer-events: auto; user-select: auto; }
.cnf-app-installed .cnf-app-install { display: none !important; }
.cnf-ios-help {
  position: fixed;
  z-index: 100001;
  right: 18px;
  bottom: 18px;
  width: min(390px, calc(100vw - 36px));
  padding: 20px;
  border-radius: 16px;
  background: #fff;
  color: var(--cnf-ink);
  text-align: left;
  box-shadow: 0 18px 60px rgba(8, 35, 58, .28);
}
.cnf-ios-help[hidden] { display: none !important; }
.cnf-ios-help p { color: var(--cnf-muted); }
.cnf-ios-help button {
  min-height: 38px;
  padding: 8px 14px;
  border: 0;
  border-radius: 9px;
  background: var(--cnf-navy);
  color: #fff;
  font-weight: 850;
}

@media (max-width: 520px) {
  .cnf-app-guest .cnf-app-hero-copy { padding: 24px 18px 20px; }
  .cnf-app-guest .cnf-app-hero h1 { margin: 9px 0; font-size: 36px; }
  .cnf-app-guest .cnf-app-hero p { font-size: 14px; line-height: 1.45; }
  .cnf-app-guest .cnf-app-hero-art { display: none; }
  .cnf-app-guest .cnf-app-login-card { margin-top: 12px; padding: 19px 17px; }
  .cnf-app-guest .cnf-app-login-card form { margin-top: 15px; }
  .cnf-install-gate { place-items: start center; padding: 12px; }
  .cnf-install-card { margin: 8px auto; padding: 24px 19px; border-radius: 19px; }
  .cnf-install-card > img { width: 72px; height: 72px; }
  .cnf-install-card h2 { font-size: 29px; }
  .cnf-install-card ol { padding-left: 34px; }
}
