/* Rispondimi UI — Bootstrap 5 premium theme */

:root {
  --rm-graphite-950: #14233c;
  --rm-graphite-900: #203b62;
  --rm-graphite-800: #315f95;
  --rm-graphite-700: #4581bd;
  --rm-ivory-50: #fbfcff;
  --rm-ivory-100: #f2f7ff;
  --rm-ivory-200: #e4eefb;
  --rm-ink: #1f2d44;
  --rm-muted: #71809a;
  --rm-indigo: #4581bd;
  --rm-indigo-dark: #315f95;
  --rm-violet: #93aee6;
  --rm-plum: #b77ae9;
  --rm-sky: #78abd5;
  --rm-emerald: #059669;
  --rm-amber: #d97706;
  --rm-danger: #dc2626;
  --rm-info: #4581bd;
  --rm-border: rgba(69, 129, 189, 0.16);
  --rm-control-border: rgba(69, 129, 189, 0.34);
  --rm-focus: #93aee6;
  --rm-border-inverse: rgba(255, 255, 255, 0.12);
  --rm-brand-gradient: linear-gradient(135deg, #4581bd 0%, #78abd5 48%, #b77ae9 100%);
  --rm-brand-gradient-deep: linear-gradient(135deg, #315f95 0%, #4581bd 58%, #b77ae9 100%);
  --rm-shadow-sm: 0 1px 2px rgba(42, 83, 129, 0.03), 0 12px 32px rgba(69, 129, 189, 0.07);
  --rm-shadow-lg: 0 28px 80px rgba(69, 129, 189, 0.16);
  --rm-radius-sm: 0.75rem;
  --rm-radius: 1.1rem;
  --rm-radius-lg: 1.65rem;
  --rm-sidebar-width: 17.5rem;
  --rm-sidebar-collapsed: 5.5rem;
  --rm-transition: 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
  --bs-primary: #4581bd;
  --bs-primary-rgb: 69, 129, 189;
  --bs-link-color: #4581bd;
  --bs-link-hover-color: #315f95;
  --bs-border-color: rgba(69, 129, 189, 0.16);
  --bs-focus-ring-color: rgba(183, 122, 233, 0.32);
  --bs-body-font-family: "Nunito", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bs-body-color: var(--rm-ink);
  --bs-body-bg: var(--rm-ivory-50);
  --bs-border-radius: var(--rm-radius-sm);
  --bs-border-radius-lg: var(--rm-radius);
}

html {
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  background:
    radial-gradient(circle at 8% 0%, rgba(69, 129, 189, 0.1), transparent 28rem),
    radial-gradient(circle at 92% 6%, rgba(183, 122, 233, 0.08), transparent 30rem),
    var(--rm-ivory-50);
  color: var(--rm-ink);
  font-feature-settings: "kern" 1;
  text-rendering: optimizeLegibility;
}

/* Safety net: keeps Bootstrap modals interactive even if CDN CSS/JS is unavailable locally. */
.modal { position: fixed; inset: 0; z-index: 1055; display: none; width: 100%; height: 100%; overflow-x: hidden; overflow-y: auto; outline: 0; }
.modal.show { display: block; }
.modal-dialog { position: relative; width: auto; margin: 0.5rem; pointer-events: none; }
.modal-dialog-centered { display: flex; align-items: center; min-height: calc(100% - 1rem); }
.modal-dialog-scrollable { height: calc(100% - 1rem); }
.modal-dialog-scrollable .modal-content { max-height: 100%; overflow: hidden; }
.modal-dialog-scrollable .modal-body { overflow-y: auto; }
.modal-content { position: relative; display: flex; width: 100%; flex-direction: column; pointer-events: auto; background-color: #fff; background-clip: padding-box; outline: 0; }
.modal-backdrop { position: fixed; inset: 0; z-index: 1050; background-color: #14233c; }
.modal-backdrop.fade { opacity: 0; }
.modal-backdrop.show { opacity: 0.42; }
.modal-open { overflow: hidden; }
.btn-close { box-sizing: content-box; width: 1em; height: 1em; padding: 0.25em; border: 0; border-radius: 0.375rem; background: transparent; color: currentColor; opacity: 0.65; }
.btn-close::before { content: "×"; display: block; font-size: 1.6rem; line-height: 0.72; }
.btn-close:hover { opacity: 1; }
@media (min-width: 576px) {
  .modal-dialog { max-width: 500px; margin: 1.75rem auto; }
  .modal-dialog-scrollable { height: calc(100% - 3.5rem); }
  .modal-dialog-centered { min-height: calc(100% - 3.5rem); }
}
@media (min-width: 1200px) {
  .modal-xl { max-width: 1140px; }
}

a {
  color: var(--rm-indigo);
  text-underline-offset: 0.2em;
}

a:hover {
  color: var(--rm-indigo-dark);
}

:focus-visible {
  outline: 3px solid rgba(131, 122, 219, 0.46) !important;
  outline-offset: 3px;
}

.skip-link {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 2000;
  transform: translateY(-160%);
  padding: 0.7rem 1rem;
  border-radius: 0.75rem;
  background: #fff;
  color: var(--rm-ink);
  box-shadow: var(--rm-shadow-lg);
  transition: transform var(--rm-transition);
}

.skip-link:focus {
  transform: translateY(0);
}

.text-balance {
  text-wrap: balance;
}

.min-w-0 {
  min-width: 0 !important;
}

.text-rm-muted {
  color: var(--rm-muted) !important;
}

.text-gradient {
  color: var(--rm-indigo);
  background: linear-gradient(120deg, var(--rm-indigo-dark) 8%, var(--rm-sky) 38%, var(--rm-violet) 67%, var(--rm-plum) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.bg-rm-ivory {
  background: var(--rm-ivory-50) !important;
}

.rm-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.42rem 0.72rem;
  border: 1px solid rgba(59, 128, 189, 0.18);
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(54, 147, 199, 0.11), rgba(166, 84, 227, 0.08));
  color: var(--rm-indigo-dark);
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.rm-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  color: inherit;
  font-size: 1.12rem;
  font-weight: 600;
  letter-spacing: 0;
  text-decoration: none;
}

.rm-brand:hover {
  color: inherit;
}

.rm-brand-mark {
  position: relative;
  display: inline-grid;
  width: 2.35rem;
  height: 2.35rem;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 0.95rem;
  background: var(--rm-brand-gradient);
  box-shadow: 0 12px 30px rgba(70, 103, 181, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.28);
  color: #fff;
}

.rm-brand-mark::before,
.rm-brand-mark::after {
  position: absolute;
  content: "";
  border: 2px solid rgba(255, 255, 255, 0.92);
  border-radius: 999px;
}

.rm-brand-mark::before {
  width: 1.18rem;
  height: 1.18rem;
  border-width: 2px;
  transform: translate(-0.08rem, -0.02rem);
}

.rm-brand-mark::after {
  width: 0.66rem;
  height: 0.66rem;
  border: 0;
  background: #fff;
  clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%);
}

.rm-brand-wordmark {
  white-space: nowrap;
}

.rm-brand-wordmark span {
  color: var(--rm-indigo-dark);
}

.rm-brand-wordmark small {
  margin-left: 0.08rem;
  color: var(--rm-sky);
  font-size: 0.68em;
  font-weight: 600;
  letter-spacing: 0;
}

.btn {
  --bs-btn-padding-y: 0.72rem;
  --bs-btn-padding-x: 1.08rem;
  --bs-btn-font-weight: 500;
  --bs-btn-border-radius: 0.82rem;
  letter-spacing: 0;
  transition: transform var(--rm-transition), box-shadow var(--rm-transition), background-color var(--rm-transition), border-color var(--rm-transition);
}

.btn:hover:not(:disabled) {
  transform: translateY(-1px);
}

.btn-primary {
  --bs-btn-bg: var(--rm-indigo-dark);
  --bs-btn-border-color: var(--rm-indigo-dark);
  --bs-btn-hover-bg: #2f6fa9;
  --bs-btn-hover-border-color: #2f6fa9;
  --bs-btn-active-bg: var(--rm-indigo-dark);
  --bs-btn-active-border-color: var(--rm-indigo-dark);
  background-image: var(--rm-brand-gradient-deep);
  box-shadow: 0 12px 28px rgba(32, 63, 120, 0.22);
}

.btn-primary:hover:not(:disabled) {
  box-shadow: 0 16px 36px rgba(32, 63, 120, 0.32);
}

.btn-dark {
  --bs-btn-bg: var(--rm-graphite-900);
  --bs-btn-border-color: var(--rm-graphite-900);
  --bs-btn-hover-bg: var(--rm-graphite-800);
  --bs-btn-hover-border-color: var(--rm-graphite-800);
}

.btn-soft {
  border: 1px solid rgba(59, 128, 189, 0.14);
  background: linear-gradient(135deg, rgba(54, 147, 199, 0.1), rgba(111, 121, 219, 0.08));
  color: var(--rm-indigo-dark);
}

.btn-soft:hover {
  border-color: rgba(59, 128, 189, 0.26);
  background: linear-gradient(135deg, rgba(54, 147, 199, 0.16), rgba(166, 84, 227, 0.1));
  color: var(--rm-indigo-dark);
}

.form-control,
.form-select,
.input-group-text {
  min-height: 3rem;
  border-color: var(--rm-control-border);
  border-radius: 0.85rem;
  background-color: rgba(255, 255, 255, 0.88);
}

.form-control:focus,
.form-select:focus {
  border-color: var(--rm-focus);
  box-shadow: 0 0 0 0.25rem rgba(131, 122, 219, 0.16), 0 10px 24px rgba(32, 63, 120, 0.08);
}

.form-label {
  margin-bottom: 0.48rem;
  color: #29476f;
  font-size: 0.85rem;
  font-weight: 500;
}

.form-text {
  color: var(--rm-muted);
}

.rm-navbar {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1030;
  border-bottom: 1px solid transparent;
  background: rgba(248, 251, 255, 0.78);
  backdrop-filter: blur(18px) saturate(140%);
  transition: background-color var(--rm-transition), border-color var(--rm-transition), box-shadow var(--rm-transition);
}

.rm-navbar.is-scrolled {
  border-bottom-color: var(--rm-border);
  background: rgba(248, 251, 255, 0.94);
  box-shadow: 0 10px 34px rgba(32, 63, 120, 0.08);
}

.rm-navbar .nav-link {
  position: relative;
  color: #514c59;
  font-size: 0.9rem;
  font-weight: 600;
}

.rm-navbar .nav-link:hover,
.rm-navbar .nav-link.active {
  color: var(--rm-indigo);
}

.rm-hero {
  position: relative;
  isolation: isolate;
  min-height: 46rem;
  padding: 10rem 0 5rem;
  overflow: clip;
}

.rm-hero::before {
  position: absolute;
  z-index: -2;
  inset: 0;
  content: "";
  background:
    radial-gradient(circle at 10% 15%, rgba(99, 102, 241, 0.18), transparent 32rem),
    radial-gradient(circle at 88% 20%, rgba(147, 51, 234, 0.15), transparent 30rem),
    linear-gradient(180deg, #fbfaf7, #f6f2fb 55%, #fbfaf7);
}

.rm-hero::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  opacity: 0.36;
  background-image: linear-gradient(rgba(79, 70, 229, 0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(79, 70, 229, 0.08) 1px, transparent 1px);
  background-size: 3rem 3rem;
  mask-image: linear-gradient(to bottom, black, transparent 80%);
}

.rm-display {
  max-width: 16ch;
  margin-inline: auto;
  font-size: clamp(2.75rem, 7vw, 5.6rem);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 0.98;
}

.rm-lead {
  max-width: 42rem;
  color: var(--rm-muted);
  font-size: clamp(1.05rem, 2.2vw, 1.25rem);
  line-height: 1.7;
}

.rm-trust-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem 1.25rem;
  color: #625c69;
  font-size: 0.82rem;
  font-weight: 500;
}

.rm-trust-row i {
  color: var(--rm-emerald);
}

.rm-hero-console {
  position: relative;
  max-width: 67rem;
  margin: 4.5rem auto 0;
  padding: 0.6rem;
  border: 1px solid rgba(255, 255, 255, 0.68);
  border-radius: 1.9rem;
  background: rgba(255, 255, 255, 0.5);
  box-shadow: 0 38px 110px rgba(61, 45, 104, 0.22);
  backdrop-filter: blur(18px);
}

.rm-console-window {
  overflow: hidden;
  border: 1px solid var(--rm-border-inverse);
  border-radius: 1.45rem;
  background: var(--rm-graphite-950);
  color: #f7f4fb;
}

.rm-console-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 3.2rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--rm-border-inverse);
  background: rgba(255, 255, 255, 0.03);
}

.rm-window-dots {
  display: inline-flex;
  gap: 0.38rem;
}

.rm-window-dots span {
  width: 0.62rem;
  height: 0.62rem;
  border-radius: 50%;
  background: #514e5b;
}

.rm-window-dots span:first-child { background: #f87171; }
.rm-window-dots span:nth-child(2) { background: #fbbf24; }
.rm-window-dots span:last-child { background: #34d399; }

.rm-console-body {
  padding: clamp(1.1rem, 3vw, 2rem);
  background:
    radial-gradient(circle at 92% 0, rgba(124, 58, 237, 0.2), transparent 22rem),
    var(--rm-graphite-950);
}

.rm-live-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  padding: 0.36rem 0.65rem;
  border: 1px solid rgba(52, 211, 153, 0.2);
  border-radius: 999px;
  background: rgba(52, 211, 153, 0.08);
  color: #6ee7b7;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.rm-live-pill::before {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: #34d399;
  box-shadow: 0 0 0 0.28rem rgba(52, 211, 153, 0.1);
  content: "";
}

.rm-transcript {
  padding: 1rem;
  border: 1px solid var(--rm-border-inverse);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.04);
}

.rm-message {
  max-width: 92%;
  padding: 0.75rem 0.9rem;
  border-radius: 0.95rem 0.95rem 0.95rem 0.25rem;
  background: rgba(255, 255, 255, 0.08);
  color: #ddd8e4;
  font-size: 0.87rem;
  line-height: 1.55;
}

.rm-message.is-ai {
  margin-left: auto;
  border: 1px solid rgba(129, 140, 248, 0.2);
  border-radius: 0.95rem 0.95rem 0.25rem;
  background: rgba(79, 70, 229, 0.2);
  color: #eeecff;
}

.rm-data-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.72rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.84rem;
}

.rm-data-row:last-child {
  border-bottom: 0;
}

.rm-data-row span:first-child {
  color: #9e98a8;
}

.rm-section {
  position: relative;
  padding: clamp(4.5rem, 8vw, 7.5rem) 0;
}

.rm-section-soft {
  background: var(--rm-ivory-100);
}

.rm-section-dark {
  overflow: hidden;
  background:
    radial-gradient(circle at 75% -20%, rgba(124, 58, 237, 0.28), transparent 32rem),
    var(--rm-graphite-950);
  color: #fff;
}

.rm-section-title {
  font-size: clamp(2rem, 5vw, 3.6rem);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.05;
}

.rm-card {
  height: 100%;
  border: 1px solid var(--rm-border);
  border-radius: var(--rm-radius-lg);
  background: rgba(255, 255, 255, 0.78);
  box-shadow: var(--rm-shadow-sm);
  transition: transform var(--rm-transition), box-shadow var(--rm-transition), border-color var(--rm-transition);
}

.rm-card:hover {
  transform: translateY(-3px);
  border-color: rgba(79, 70, 229, 0.2);
  box-shadow: var(--rm-shadow-lg);
}

.rm-icon-box {
  display: inline-grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border: 1px solid rgba(79, 70, 229, 0.13);
  border-radius: 0.95rem;
  background: rgba(79, 70, 229, 0.08);
  color: var(--rm-indigo);
  font-size: 1.2rem;
}

.rm-flow {
  position: relative;
}

.rm-flow-step {
  position: relative;
  padding: 1.2rem;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.055);
  backdrop-filter: blur(10px);
}

.rm-flow-step.is-primary {
  border-color: rgba(129, 140, 248, 0.32);
  background: rgba(79, 70, 229, 0.21);
}

.rm-flow-step.is-success {
  border-color: rgba(52, 211, 153, 0.25);
  background: rgba(5, 150, 105, 0.16);
}

.rm-flow-arrow {
  display: grid;
  height: 2.4rem;
  place-items: center;
  color: rgba(255, 255, 255, 0.45);
}

.rm-pricing-card {
  position: relative;
  overflow: hidden;
}

.rm-pricing-card.is-featured {
  border-color: rgba(79, 70, 229, 0.38);
  box-shadow: 0 24px 60px rgba(79, 70, 229, 0.16);
}

.rm-price {
  font-size: 2.6rem;
  font-weight: 600;
  letter-spacing: 0;
}

.rm-cta-panel {
  position: relative;
  overflow: hidden;
  padding: clamp(2rem, 7vw, 5rem);
  border-radius: 2rem;
  background: linear-gradient(135deg, #312e81, var(--rm-indigo) 48%, var(--rm-violet));
  box-shadow: 0 30px 80px rgba(67, 56, 202, 0.28);
  color: #fff;
}

.rm-cta-panel::after {
  position: absolute;
  width: 28rem;
  height: 28rem;
  right: -10rem;
  bottom: -17rem;
  border: 5rem solid rgba(255, 255, 255, 0.06);
  border-radius: 50%;
  content: "";
}

.rm-footer {
  border-top: 1px solid var(--rm-border);
  background: var(--rm-ivory-100);
}

/* Authentication */
.rm-auth-shell {
  display: grid;
  min-height: 100vh;
  background: #f8fbff;
}

.rm-auth-visual {
  position: relative;
  isolation: isolate;
  display: none;
  overflow: hidden;
  padding: 3rem;
  background:
    linear-gradient(150deg, rgba(54, 147, 199, 0.2), rgba(96, 126, 207, 0.16) 45%, rgba(183, 101, 229, 0.14) 100%),
    var(--rm-graphite-950);
  color: #fff;
}

.rm-auth-visual::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(115deg, rgba(255, 255, 255, 0.12), transparent 38%),
    linear-gradient(180deg, rgba(11, 18, 38, 0), rgba(11, 18, 38, 0.72));
  content: "";
}

.rm-auth-visual::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: 0.18;
  background-image: linear-gradient(rgba(255, 255, 255, 0.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px);
  background-size: 3.5rem 3.5rem;
  content: "";
}

.rm-auth-visual-inner {
  display: flex;
  width: 100%;
  min-height: calc(100vh - 6rem);
  max-width: 41rem;
  margin: auto;
  flex-direction: column;
}

.rm-auth-visual-title {
  max-width: 14ch;
  font-size: clamp(3.2rem, 6vw, 5.6rem);
  font-weight: 600;
  line-height: 0.98;
  letter-spacing: 0;
}

.rm-auth-visual-copy {
  max-width: 35rem;
  color: #c7d2e8;
  font-size: 1.18rem;
  line-height: 1.72;
}

.rm-auth-flow {
  display: grid;
  gap: 0.7rem;
  padding: 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 1.2rem;
  background: rgba(255, 255, 255, 0.055);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 22px 54px rgba(0, 0, 0, 0.16);
  backdrop-filter: blur(18px);
}

.rm-auth-flow-step {
  display: grid;
  grid-template-columns: 2.2rem 1fr;
  column-gap: 0.75rem;
  row-gap: 0.12rem;
  padding: 0.8rem;
  border-radius: 0.9rem;
  background: rgba(255, 255, 255, 0.055);
}

.rm-auth-flow-step span {
  grid-row: span 2;
  display: inline-grid;
  width: 2.1rem;
  height: 2.1rem;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  color: #d7e8ff;
  font-size: 0.78rem;
  font-weight: 600;
}

.rm-auth-flow-step div {
  color: #fff;
  font-weight: 500;
}

.rm-auth-flow-step small {
  color: #9faac0;
  line-height: 1.45;
}

.rm-auth-quote {
  margin-top: auto;
  padding-top: 4rem;
}

.rm-auth-quote-title {
  color: #fff;
  font-weight: 500;
}

.rm-auth-panel {
  display: flex;
  min-width: 0;
  padding: clamp(1rem, 4vw, 3rem);
  align-items: center;
  justify-content: center;
}

.rm-auth-card {
  width: 100%;
  max-width: 34rem;
  padding: clamp(1.2rem, 4.5vw, 2.6rem);
}

.rm-auth-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: clamp(1.25rem, 4vw, 2rem);
}

.rm-auth-back-link,
.rm-link-action {
  color: var(--rm-indigo-dark);
  font-weight: 500;
  text-decoration: none;
}

.rm-auth-back-link {
  font-size: 0.88rem;
  color: #5c6780;
}

.rm-auth-back-link:hover,
.rm-link-action:hover {
  color: var(--rm-indigo);
}

.rm-auth-tabs-wrap {
  padding: 0.36rem;
  border: 1px solid rgba(32, 63, 120, 0.1);
  border-radius: 1.15rem;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(248, 251, 255, 0.72)),
    rgba(255, 255, 255, 0.84);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), 0 18px 42px rgba(32, 63, 120, 0.075);
}

.rm-auth-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem;
}

.rm-auth-tabs .nav-link {
  display: flex;
  min-height: 2.8rem;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  border-radius: 0.86rem;
  color: #516078;
  font-weight: 500;
  transition: color var(--rm-transition), background-color var(--rm-transition), box-shadow var(--rm-transition), transform var(--rm-transition);
}

.rm-auth-tabs .nav-link:hover {
  background: rgba(54, 147, 199, 0.08);
  color: var(--rm-indigo-dark);
}

.rm-auth-tabs .nav-link.active {
  color: #fff;
  background: var(--rm-brand-gradient-deep);
  box-shadow: 0 12px 28px rgba(32, 63, 120, 0.22);
}

.rm-auth-title {
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.04;
}

.rm-auth-form-head {
  margin-bottom: 1.15rem;
}

.rm-auth-signal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
  margin-bottom: 1.35rem;
}

.rm-auth-signal {
  display: flex;
  min-width: 0;
  min-height: 4.5rem;
  padding: 0.78rem;
  align-items: center;
  gap: 0.55rem;
  border: 1px solid rgba(32, 63, 120, 0.08);
  border-radius: 0.95rem;
  background: rgba(248, 251, 255, 0.74);
  color: #34466b;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.25;
}

.rm-auth-signal i {
  display: inline-grid;
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  place-items: center;
  border-radius: 0.7rem;
  background: linear-gradient(135deg, rgba(54, 147, 199, 0.12), rgba(183, 101, 229, 0.1));
  color: var(--rm-indigo-dark);
}

.rm-auth-icon-field,
.rm-auth-password-field {
  overflow: hidden;
  align-items: stretch;
  border: 1px solid var(--rm-control-border);
  border-radius: 0.95rem;
  background:
    linear-gradient(135deg, rgba(248, 251, 255, 0.96), rgba(255, 255, 255, 0.88)),
    #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 12px 26px rgba(32, 63, 120, 0.06);
  transition: border-color var(--rm-transition), box-shadow var(--rm-transition), background-color var(--rm-transition);
}

.rm-auth-icon-field:focus-within,
.rm-auth-password-field:focus-within {
  border-color: var(--rm-focus);
  box-shadow: 0 0 0 0.25rem rgba(131, 122, 219, 0.16), 0 14px 28px rgba(32, 63, 120, 0.1);
}

.rm-auth-icon-field.is-invalid,
.rm-auth-password-field.is-invalid {
  border-color: var(--rm-danger);
}

.rm-auth-icon-field .input-group-text,
.rm-auth-password-field .input-group-text {
  min-height: 3.2rem;
  padding-inline: 1rem 0.65rem;
  border: 0;
  background: transparent;
  color: #526987;
  font-size: 1rem;
}

.rm-auth-icon-field .input-group-text i,
.rm-auth-password-field .input-group-text i {
  display: inline-grid;
  width: 2.05rem;
  height: 2.05rem;
  place-items: center;
  border-radius: 0.72rem;
  background: linear-gradient(135deg, rgba(54, 147, 199, 0.14), rgba(183, 101, 229, 0.12));
  color: var(--rm-indigo-dark);
}

.rm-auth-icon-field .form-control,
.rm-auth-password-field .form-control {
  min-height: 3.2rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.rm-auth-icon-field .form-control:focus,
.rm-auth-password-field .form-control:focus {
  box-shadow: none;
}

.rm-auth-icon-field .form-control.is-invalid,
.rm-auth-password-field .form-control.is-invalid {
  background-image: none;
}

.rm-auth-password-field .rm-password-toggle {
  display: grid;
  width: 3.25rem;
  min-height: 3.2rem;
  place-items: center;
  border: 0;
  border-left: 1px solid rgba(32, 63, 120, 0.08);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.42);
  color: #526987;
}

.rm-auth-password-field .rm-password-toggle:hover {
  background: rgba(54, 147, 199, 0.09);
  color: var(--rm-indigo-dark);
}

.rm-auth-icon-field .invalid-feedback,
.rm-auth-password-field .invalid-feedback {
  width: 100%;
  padding: 0 1rem 0.78rem 3.45rem;
  margin-top: -0.15rem;
}

.rm-captcha-box {
  display: grid;
  grid-template-columns: auto minmax(5rem, 1fr);
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--rm-control-border);
  border-radius: 0.95rem;
  background:
    linear-gradient(135deg, rgba(248, 251, 255, 0.96), rgba(255, 255, 255, 0.88)),
    #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 12px 26px rgba(32, 63, 120, 0.06);
}

.rm-captcha-question {
  display: flex;
  min-height: 3.2rem;
  padding-inline: 1rem;
  align-items: center;
  border-right: 1px solid rgba(32, 63, 120, 0.08);
  color: var(--rm-indigo-dark);
  font-weight: 600;
}

.rm-captcha-box .form-control {
  min-height: 3.2rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.rm-captcha-box .invalid-feedback {
  grid-column: 1 / -1;
  padding: 0 1rem 0.78rem;
}

.rm-divider {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  color: #8b8490;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
}

.rm-divider::before,
.rm-divider::after {
  flex: 1;
  height: 1px;
  background: var(--rm-border);
  content: "";
}

.rm-password-toggle {
  border-color: rgba(28, 27, 34, 0.13);
  background: #fff;
  color: #6f6876;
}

.rm-password-toggle:hover {
  color: var(--rm-indigo);
}

/* Dashboard */
.rm-dashboard {
  min-height: 100vh;
  background: #f6f4ef;
}

.rm-sidebar {
  position: fixed;
  z-index: 1040;
  inset: 0 auto 0 0;
  display: flex;
  width: var(--rm-sidebar-width);
  flex-direction: column;
  overflow: hidden;
  border-right: 1px solid var(--rm-border-inverse);
  background:
    radial-gradient(circle at 25% 0, rgba(99, 102, 241, 0.23), transparent 16rem),
    var(--rm-graphite-950);
  color: #fff;
  transition: width var(--rm-transition), transform var(--rm-transition);
}

.rm-sidebar-head {
  display: flex;
  min-height: 5rem;
  padding: 1rem 1.2rem;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--rm-border-inverse);
}

.rm-sidebar-nav {
  padding: 1rem 0.75rem;
  overflow-y: auto;
}

.rm-sidebar-label {
  display: block;
  padding: 0.7rem 0.75rem 0.35rem;
  color: #756f80;
  font-size: 0.67rem;
  font-weight: 600;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.rm-sidebar-link {
  display: flex;
  min-height: 3rem;
  margin-bottom: 0.25rem;
  padding: 0.72rem 0.85rem;
  align-items: center;
  gap: 0.85rem;
  border: 1px solid transparent;
  border-radius: 0.85rem;
  color: #b9b3c2;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  transition: color var(--rm-transition), background-color var(--rm-transition), border-color var(--rm-transition);
}

.rm-sidebar-link i {
  width: 1.25rem;
  color: #817a8c;
  font-size: 1.08rem;
  text-align: center;
  transition: color var(--rm-transition);
}

.rm-sidebar-link:hover {
  border-color: rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.055);
  color: #fff;
}

.rm-sidebar-link.active {
  border-color: rgba(129, 140, 248, 0.22);
  background: linear-gradient(90deg, rgba(79, 70, 229, 0.3), rgba(124, 58, 237, 0.12));
  color: #fff;
  box-shadow: inset 3px 0 #818cf8;
}

.rm-sidebar-link.active i {
  color: #a5b4fc;
}

.rm-sidebar-link.is-disabled {
  opacity: 0.5;
}

.rm-sidebar-foot {
  margin-top: auto;
  padding: 1rem;
  border-top: 1px solid var(--rm-border-inverse);
}

.rm-dashboard-main {
  min-width: 0;
  margin-left: var(--rm-sidebar-width);
  transition: margin-left var(--rm-transition);
}

.rm-topbar {
  position: sticky;
  z-index: 1020;
  top: 0;
  display: flex;
  min-height: 5rem;
  padding: 0.85rem clamp(1rem, 3vw, 2rem);
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid var(--rm-border);
  background: rgba(246, 244, 239, 0.88);
  backdrop-filter: blur(18px) saturate(140%);
}

.rm-page-title {
  margin: 0;
  font-size: clamp(1.15rem, 2.5vw, 1.55rem);
  font-weight: 600;
  letter-spacing: 0;
}

.rm-dashboard-content {
  width: min(100%, 96rem);
  margin-inline: auto;
  padding: clamp(1rem, 3vw, 2rem);
}

.rm-credit-chip {
  display: flex;
  min-height: 2.8rem;
  padding: 0.38rem 0.85rem 0.38rem 0.42rem;
  align-items: center;
  gap: 0.65rem;
  border: 1px solid var(--rm-border);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.76);
  box-shadow: var(--rm-shadow-sm);
}

.rm-credit-icon {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 50%;
  background: rgba(79, 70, 229, 0.1);
  color: var(--rm-indigo);
}

.rm-avatar {
  display: inline-grid;
  width: 2.65rem;
  height: 2.65rem;
  place-items: center;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  background: linear-gradient(145deg, #ddd6fe, #c7d2fe);
  box-shadow: var(--rm-shadow-sm);
  color: #3730a3;
  font-size: 0.88rem;
  font-weight: 600;
}

.rm-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rm-status-dot {
  display: inline-block;
  width: 0.48rem;
  height: 0.48rem;
  margin-right: 0.35rem;
  border-radius: 50%;
  background: #94a3b8;
}

.rm-status-dot.is-active {
  background: #10b981;
  box-shadow: 0 0 0 0.24rem rgba(16, 185, 129, 0.11);
}

.rm-kpi-card {
  position: relative;
  overflow: hidden;
  min-height: 9.5rem;
  padding: 1.25rem;
  border: 1px solid var(--rm-border);
  border-radius: var(--rm-radius);
  background: rgba(255, 255, 255, 0.86);
  box-shadow: var(--rm-shadow-sm);
}

.rm-kpi-card::after {
  position: absolute;
  width: 7rem;
  height: 7rem;
  right: -3rem;
  bottom: -4rem;
  border: 1.4rem solid rgba(79, 70, 229, 0.045);
  border-radius: 50%;
  content: "";
}

.rm-kpi-label {
  color: var(--rm-muted);
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.rm-kpi-value {
  margin-top: 0.4rem;
  font-size: clamp(1.8rem, 4vw, 2.45rem);
  font-weight: 600;
  letter-spacing: 0;
}

.rm-panel {
  overflow: hidden;
  border: 1px solid var(--rm-border);
  border-radius: var(--rm-radius);
  background: rgba(255, 255, 255, 0.87);
  box-shadow: var(--rm-shadow-sm);
}

.rm-panel-head {
  display: flex;
  min-height: 4.5rem;
  padding: 1rem 1.25rem;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid var(--rm-border);
}

.rm-panel-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0;
}

.rm-list-row {
  display: flex;
  min-height: 4.5rem;
  padding: 0.9rem 1.25rem;
  align-items: center;
  gap: 0.9rem;
  border-bottom: 1px solid rgba(28, 27, 34, 0.065);
  transition: background-color var(--rm-transition);
}

.rm-list-row:last-child {
  border-bottom: 0;
}

.rm-list-row:hover {
  background: rgba(79, 70, 229, 0.025);
}

.rm-list-icon {
  display: grid;
  width: 2.45rem;
  height: 2.45rem;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 0.78rem;
  background: rgba(79, 70, 229, 0.08);
  color: var(--rm-indigo);
}

.rm-list-icon.is-success {
  background: rgba(5, 150, 105, 0.09);
  color: var(--rm-emerald);
}

.rm-empty-state {
  padding: clamp(2.5rem, 6vw, 4.5rem) 1.5rem;
  color: var(--rm-muted);
  text-align: center;
}

.rm-empty-state .rm-icon-box {
  width: 3.6rem;
  height: 3.6rem;
  margin-bottom: 1rem;
  font-size: 1.45rem;
}

.rm-onboarding {
  position: relative;
  overflow: hidden;
  padding: clamp(1.5rem, 4vw, 2.4rem);
  border: 1px solid rgba(99, 102, 241, 0.2);
  border-radius: var(--rm-radius-lg);
  background: linear-gradient(120deg, #1e1b4b, #312e81 50%, #4c1d95);
  box-shadow: 0 22px 55px rgba(49, 46, 129, 0.2);
  color: #fff;
}

.rm-onboarding::after {
  position: absolute;
  width: 17rem;
  height: 17rem;
  right: -5rem;
  top: -8rem;
  border: 3rem solid rgba(255, 255, 255, 0.055);
  border-radius: 50%;
  content: "";
}

/* Dashboard feature pages */
.rm-page-toolbar {
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--rm-border);
  border-radius: var(--rm-radius);
  background: rgba(255, 255, 255, 0.68);
  box-shadow: var(--rm-shadow-sm);
  backdrop-filter: blur(14px);
}

.rm-filterbar {
  padding: 1rem;
  border: 1px solid var(--rm-border);
  border-radius: var(--rm-radius);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: var(--rm-shadow-sm);
}

.rm-segmented {
  display: inline-flex;
  padding: 0.25rem;
  border: 1px solid var(--rm-border);
  border-radius: 0.9rem;
  background: var(--rm-ivory-100);
}

.rm-segmented .nav-link {
  padding: 0.48rem 0.78rem;
  border-radius: 0.68rem;
  color: var(--rm-muted);
  font-size: 0.84rem;
  font-weight: 600;
}

.rm-segmented .nav-link.active {
  background: #fff;
  box-shadow: 0 2px 9px rgba(17, 16, 23, 0.09);
  color: var(--rm-indigo-dark);
}

.rm-stat-card {
  display: flex;
  min-height: 6.4rem;
  padding: 1rem;
  align-items: center;
  gap: 0.9rem;
  border: 1px solid var(--rm-border);
  border-radius: var(--rm-radius);
  background: rgba(255, 255, 255, 0.86);
  box-shadow: var(--rm-shadow-sm);
}

.rm-stat-icon {
  display: grid;
  width: 2.7rem;
  height: 2.7rem;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 0.85rem;
  background: rgba(79, 70, 229, 0.09);
  color: var(--rm-indigo);
  font-size: 1.1rem;
}

.rm-stat-icon.is-success { background: rgba(5, 150, 105, 0.1); color: var(--rm-emerald); }
.rm-stat-icon.is-violet { background: rgba(124, 58, 237, 0.1); color: var(--rm-violet); }
.rm-stat-icon.is-amber { background: rgba(217, 119, 6, 0.1); color: var(--rm-amber); }

.rm-booking-row {
  display: flex;
  min-height: 6rem;
  padding: 1rem 1.25rem;
  align-items: center;
  gap: 1rem;
  border-bottom: 1px solid rgba(28, 27, 34, 0.07);
  transition: background-color var(--rm-transition);
}

.rm-booking-row:last-child { border-bottom: 0; }
.rm-booking-row:hover { background: rgba(79, 70, 229, 0.025); }

.rm-booking-time {
  display: flex;
  width: 5.7rem;
  flex: 0 0 auto;
  flex-direction: column;
  line-height: 1.25;
}

.rm-booking-time strong { font-size: 1.08rem; }
.rm-booking-time span { color: var(--rm-muted); font-size: 0.72rem; }

.rm-calendar-scroll {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.rm-calendar-grid {
  display: grid;
  min-width: max(48rem, calc(var(--rm-calendar-columns, 7) * 8.5rem));
  grid-template-columns: repeat(var(--rm-calendar-columns, 7), minmax(8.5rem, 1fr));
}

.rm-calendar-day {
  min-height: 25rem;
  border-right: 1px solid var(--rm-border);
  background: rgba(255, 255, 255, 0.38);
}

.rm-calendar-day:last-child { border-right: 0; }
.rm-calendar-day.is-today { background: rgba(79, 70, 229, 0.035); }

.rm-calendar-day > header {
  position: sticky;
  z-index: 2;
  top: 0;
  display: flex;
  min-height: 6.1rem;
  padding: 0.9rem;
  flex-direction: column;
  border-bottom: 1px solid var(--rm-border);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(12px);
}

.rm-calendar-day.is-today > header { box-shadow: inset 0 3px var(--rm-indigo); }
.rm-calendar-day > header span { color: var(--rm-indigo); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.rm-calendar-day > header strong { margin-top: 0.15rem; font-size: 0.95rem; }
.rm-calendar-day > header small { margin-top: auto; color: var(--rm-muted); }

.rm-calendar-events { display: grid; padding: 0.65rem; gap: 0.55rem; }
.rm-calendar-event {
  display: flex;
  padding: 0.72rem;
  flex-direction: column;
  border: 1px solid rgba(79, 70, 229, 0.14);
  border-radius: 0.75rem;
  background: rgba(79, 70, 229, 0.075);
  color: var(--rm-ink);
  font-size: 0.77rem;
  text-decoration: none;
}
.rm-calendar-event:hover { border-color: rgba(79, 70, 229, 0.3); background: rgba(79, 70, 229, 0.12); color: var(--rm-ink); }
.rm-calendar-event small, .rm-calendar-empty { color: var(--rm-muted); }
.rm-calendar-empty { padding: 1.1rem 0.4rem; font-size: 0.76rem; text-align: center; }

.rm-call-card { border-bottom: 1px solid rgba(28, 27, 34, 0.07); }
.rm-call-card:last-child { border-bottom: 0; }
.rm-call-main { display: flex; padding: 1.1rem 1.25rem; align-items: flex-start; gap: 1rem; }
.rm-call-summary { max-width: 65rem; color: #4c4752; font-size: 0.9rem; line-height: 1.65; }
.rm-transcript-box { margin: 0 1.25rem 1.15rem 4.7rem; padding: 1rem 1.1rem; border: 1px solid rgba(79, 70, 229, 0.12); border-radius: 0.9rem; background: #f8f7fb; }

.rm-setup-hero,
.rm-account-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(1.35rem, 4vw, 2.3rem);
  border-radius: var(--rm-radius-lg);
  background: linear-gradient(125deg, #17152d, #312e81 57%, #6d28d9);
  box-shadow: 0 22px 55px rgba(49, 46, 129, 0.2);
}

.rm-setup-hero::after,
.rm-account-hero::after {
  position: absolute;
  width: 19rem;
  height: 19rem;
  right: -5rem;
  top: -8rem;
  border: 3rem solid rgba(255, 255, 255, 0.055);
  border-radius: 50%;
  content: "";
}

.rm-setup-score { display: flex; min-width: 8rem; padding: 0.8rem 1rem; flex-direction: column; border: 1px solid rgba(255, 255, 255, 0.13); border-radius: 1rem; background: rgba(255, 255, 255, 0.07); backdrop-filter: blur(10px); }
.rm-setup-score strong { color: #fff; font-size: 1.65rem; letter-spacing: 0; }

.rm-wizard {
  display: grid;
  overflow: hidden;
  border: 1px solid var(--rm-border);
  border-radius: var(--rm-radius-lg);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: var(--rm-shadow-sm);
}

.rm-wizard-nav { padding: 1rem; border-bottom: 1px solid var(--rm-border); background: #f4f1f8; }
.rm-wizard-step { display: flex; width: 100%; padding: 0.7rem; align-items: center; gap: 0.75rem; border: 0; border-radius: 0.85rem; background: transparent; color: var(--rm-muted); text-align: left; transition: background-color var(--rm-transition), color var(--rm-transition); }
.rm-wizard-step + .rm-wizard-step { margin-top: 0.2rem; }
.rm-wizard-step:hover { background: rgba(79, 70, 229, 0.06); }
.rm-wizard-step.is-active { background: #fff; box-shadow: var(--rm-shadow-sm); color: var(--rm-ink); }
.rm-wizard-step.is-complete { color: var(--rm-indigo-dark); }
.rm-wizard-number { display: grid; width: 2.35rem; height: 2.35rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(79, 70, 229, 0.12); border-radius: 0.75rem; background: rgba(79, 70, 229, 0.07); color: var(--rm-indigo); }
.rm-wizard-step.is-active .rm-wizard-number { background: var(--rm-indigo); box-shadow: 0 8px 18px rgba(79, 70, 229, 0.22); color: #fff; }
.rm-wizard-step strong, .rm-wizard-step small { display: block; }
.rm-wizard-step strong { font-size: 0.88rem; }
.rm-wizard-step small { margin-top: 0.1rem; font-size: 0.7rem; }
.rm-wizard-nav .progress { height: 0.35rem; background: rgba(79, 70, 229, 0.1); }
.rm-wizard-nav .progress-bar { background: linear-gradient(90deg, var(--rm-indigo), var(--rm-violet)); transition: width 300ms ease; }
.rm-wizard-form { min-width: 0; }
.rm-wizard-section { padding: clamp(1.25rem, 4vw, 2.4rem); }
.rm-wizard-section[hidden] { display: none !important; }
.rm-wizard-heading { display: flex; margin-bottom: 2rem; align-items: flex-start; gap: 1rem; }
.rm-wizard-actions { display: flex; margin-top: 2rem; padding-top: 1.25rem; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--rm-border); }

.rm-option-card { position: relative; display: flex; min-height: 6.6rem; padding: 1rem; align-items: center; gap: 0.85rem; border: 1px solid var(--rm-border); border-radius: 1rem; background: #fff; cursor: pointer; transition: border-color var(--rm-transition), box-shadow var(--rm-transition), transform var(--rm-transition); }
.rm-option-card:hover { transform: translateY(-1px); border-color: rgba(79, 70, 229, 0.28); box-shadow: var(--rm-shadow-sm); }
.rm-option-card:has(input:checked) { border-color: rgba(79, 70, 229, 0.55); box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.08); }
.rm-option-card .form-check-input { position: absolute; top: 0.85rem; right: 0.85rem; }
.rm-option-icon { display: grid; width: 2.8rem; height: 2.8rem; flex: 0 0 auto; place-items: center; border-radius: 0.85rem; background: rgba(79, 70, 229, 0.08); color: var(--rm-indigo); font-size: 1.15rem; }
.rm-option-card strong, .rm-option-card small { display: block; }
.rm-option-card small { margin-top: 0.25rem; padding-right: 1rem; color: var(--rm-muted); line-height: 1.45; }

.rm-hours-list { overflow: hidden; border: 1px solid var(--rm-border); border-radius: 1rem; }
.rm-hours-row { display: grid; padding: 0.85rem 1rem; align-items: center; gap: 1rem; border-bottom: 1px solid var(--rm-border); }
.rm-hours-row:last-child { border-bottom: 0; }
.rm-day-switch { min-width: 8rem; }
.rm-hours-times { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; transition: opacity var(--rm-transition); }
.rm-hours-times label > span, .rm-table-type-row label > span { display: block; margin-bottom: 0.28rem; color: var(--rm-muted); font-size: 0.68rem; font-weight: 600; }
.rm-hours-times .form-control { min-height: 2.6rem; padding-inline: 0.6rem; }

.rm-table-types { display: grid; gap: 0.7rem; }
.rm-table-type-row { display: grid; padding: 0.85rem; align-items: end; gap: 0.65rem; border: 1px solid var(--rm-border); border-radius: 0.9rem; background: #f9f8f5; }
.rm-empty-inline { padding: 1.2rem; border: 1px dashed rgba(79, 70, 229, 0.25); border-radius: 0.9rem; color: var(--rm-muted); font-size: 0.85rem; text-align: center; }
.rm-table-map-intro { display: flex; padding: 0.9rem 1rem; align-items: flex-start; gap: 0.65rem; border: 1px solid rgba(69, 129, 189, 0.18); border-radius: 1rem; background: linear-gradient(135deg, rgba(69, 129, 189, 0.08), rgba(183, 122, 233, 0.08)); color: #365c86; font-size: 0.88rem; }
.rm-table-map-intro i { margin-top: 0.1rem; color: var(--rm-blue); }
.rm-table-map-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.7rem; }
.rm-table-map-stats span { display: grid; min-height: 4.2rem; padding: 0.85rem 1rem; align-content: center; border: 1px solid rgba(69, 129, 189, 0.14); border-radius: 1rem; background: rgba(255, 255, 255, 0.74); box-shadow: 0 12px 28px rgba(32, 63, 120, 0.06); }
.rm-table-map-stats strong { color: var(--rm-ink); font-size: 1.45rem; line-height: 1; letter-spacing: -0.04em; }
.rm-table-map-stats small { margin-top: 0.25rem; color: var(--rm-muted); font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
.rm-table-map-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem; color: #496d98; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.03em; text-transform: uppercase; }
.rm-table-map-toolbar span { display: inline-flex; padding: 0.4rem 0.65rem; align-items: center; border: 1px solid rgba(69, 129, 189, 0.14); border-radius: 999px; background: rgba(255, 255, 255, 0.72); box-shadow: 0 10px 22px rgba(32, 63, 120, 0.05); }
.rm-table-map-stage { position: relative; min-height: 34rem; overflow: hidden; border: 1px solid rgba(69, 129, 189, 0.18); border-radius: 1.45rem; background: radial-gradient(circle at 16% 12%, rgba(183, 122, 233, 0.18), transparent 28%), radial-gradient(circle at 83% 18%, rgba(69, 129, 189, 0.16), transparent 30%), linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(247, 251, 255, 0.78)); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.7), 0 22px 48px rgba(32, 63, 120, 0.1); isolation: isolate; }
.rm-table-map-stage::before { content: ""; position: absolute; inset: 0; z-index: 0; opacity: 0.5; background-image: linear-gradient(rgba(69, 129, 189, 0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(69, 129, 189, 0.08) 1px, transparent 1px); background-size: 36px 36px; pointer-events: none; }
.rm-table-map-stage::after { content: ""; position: absolute; inset: 1rem; z-index: 0; border: 1px dashed rgba(69, 129, 189, 0.18); border-radius: 1.1rem; pointer-events: none; }
.rm-table-map-canvas { position: absolute; inset: 0; z-index: 1; }
.rm-table-map-grid { position: relative; z-index: 1; }
.rm-table-map-table { position: absolute; left: 50%; top: 50%; z-index: 2; display: grid; box-sizing: border-box; padding: 0.58rem 0.7rem; align-content: center; justify-items: center; gap: 0.06rem; overflow: hidden; border: 1px solid rgba(69, 129, 189, 0.24); border-radius: 1.25rem; background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(242, 248, 255, 0.92)); box-shadow: 0 16px 34px rgba(32, 63, 120, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.84); color: var(--rm-ink); text-align: center; transform: translate(-50%, -50%); transition: border-color var(--rm-transition), box-shadow var(--rm-transition), filter var(--rm-transition), transform var(--rm-transition); cursor: grab; user-select: none; touch-action: none; }
.rm-table-map-table:hover, .rm-table-map-table.is-selected { border-color: rgba(183, 122, 233, 0.72); box-shadow: 0 22px 44px rgba(69, 129, 189, 0.16), 0 0 0 4px rgba(183, 122, 233, 0.12); filter: saturate(1.04); transform: translate(-50%, -51%) scale(1.02); }
.rm-table-map-table.is-dragging { z-index: 6; cursor: grabbing; transition: none; transform: translate(-50%, -50%) scale(1.045); }
.rm-table-map-table.is-shape-square { border-radius: 1.05rem; }
.rm-table-map-table.is-shape-round { border-radius: 999px; }
.rm-table-map-table.is-shape-rectangle { border-radius: 1.25rem; }
.rm-table-map-table.is-combinable { border-color: rgba(69, 129, 189, 0.44); }
.rm-table-map-table.is-divisible { background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(250, 245, 255, 0.94)); }
.rm-table-map-dot { display: grid; width: 1.28rem; height: 1.28rem; margin-bottom: 0.08rem; place-items: center; border-radius: 50%; background: linear-gradient(135deg, #b77ae9, #4581bd); box-shadow: 0 8px 18px rgba(69, 129, 189, 0.22); pointer-events: none; }
.rm-table-map-dot::after { content: ""; width: 0.38rem; height: 0.38rem; border-radius: 50%; background: rgba(255, 255, 255, 0.92); }
.rm-table-map-table strong { display: -webkit-box; width: 100%; max-width: 100%; max-height: calc(2.55em + 2px); padding-block: 1px; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--rm-ink); font-size: 0.72rem; line-height: 1.18; overflow-wrap: anywhere; text-wrap: balance; white-space: normal; }
.rm-table-map-table small { width: 100%; min-height: calc(1.18em + 2px); padding-block: 1px; color: var(--rm-muted); font-size: 0.6rem; line-height: 1.18; white-space: nowrap; }
.rm-table-map-table em { display: block; width: 100%; max-width: 100%; min-height: calc(1.18em + 2px); padding-block: 1px; overflow: visible; color: #4b6f9a; font-size: 0.48rem; font-style: normal; font-weight: 800; letter-spacing: 0.03em; line-height: 1.18; text-transform: uppercase; white-space: nowrap; }
.rm-table-map-room-label { position: absolute; top: 1rem; left: 1rem; z-index: 3; display: inline-flex; padding: 0.35rem 0.65rem; align-items: center; border-radius: 999px; background: rgba(255, 255, 255, 0.78); color: #3e5c84; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; box-shadow: 0 10px 22px rgba(32, 63, 120, 0.06); pointer-events: none; }
.rm-table-map-room-label.is-service { top: auto; right: 1rem; bottom: 1rem; left: auto; background: rgba(255, 255, 255, 0.78); color: #74509f; }
.rm-table-map-empty { position: relative; z-index: 1; display: grid; min-height: 24rem; place-items: center; align-content: center; gap: 0.45rem; color: var(--rm-muted); text-align: center; }
.rm-table-map-empty i { display: grid; width: 4rem; height: 4rem; place-items: center; border-radius: 1.25rem; background: rgba(69, 129, 189, 0.1); color: var(--rm-blue); font-size: 1.7rem; }
.rm-table-map-empty strong { color: var(--rm-ink); font-size: 1rem; }
.rm-table-map-empty span { max-width: 17rem; font-size: 0.86rem; }
.rm-table-map-side { height: 100%; padding: 1rem; border: 1px solid rgba(69, 129, 189, 0.14); border-radius: 1.25rem; background: rgba(255, 255, 255, 0.72); }
.rm-table-map-editor { display: grid; max-height: 27rem; overflow: auto; padding-right: 0.15rem; gap: 0.65rem; }
.rm-table-map-editor > .rm-table-types { gap: 0.65rem; }
.rm-table-map-editor .rm-table-type-row { grid-template-columns: minmax(0, 1fr) minmax(4.7rem, 0.42fr) minmax(4.7rem, 0.42fr) minmax(7rem, 0.65fr); padding: 0.75rem; background: rgba(255, 255, 255, 0.82); }
.rm-table-map-editor .rm-table-type-row > div { grid-column: 1 / -1; flex-direction: row !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.55rem 0.85rem !important; }
.rm-table-map-editor .rm-table-type-row .form-check { margin-bottom: 0; }
.rm-table-map-editor .rm-table-type-row .btn-link { margin-left: auto; }
.rm-table-map-list { display: grid; gap: 0.6rem; }
.rm-table-map-list-row { display: grid; grid-template-columns: auto minmax(0, 1fr); padding: 0.72rem 0.8rem; align-items: center; gap: 0.7rem; border: 1px solid rgba(69, 129, 189, 0.12); border-radius: 0.95rem; background: rgba(247, 251, 255, 0.86); }
.rm-table-map-list-row > span { display: grid; min-width: 2.25rem; height: 2.25rem; place-items: center; border-radius: 0.75rem; background: linear-gradient(135deg, rgba(69, 129, 189, 0.13), rgba(183, 122, 233, 0.14)); color: var(--rm-blue-dark); font-weight: 800; }
.rm-table-map-list-row strong, .rm-table-map-list-row small { display: block; }
.rm-table-map-list-row small { color: var(--rm-muted); font-size: 0.74rem; }
.rm-table-map-list-row .rm-table-map-list-shape { display: inline-flex; margin-top: 0.35rem; padding: 0.22rem 0.48rem; border-radius: 999px; background: rgba(183, 122, 233, 0.1); color: #74509f; font-size: 0.62rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; }
@media (max-width: 767.98px) {
  .rm-subscription-actions {
    width: 100%;
  }

  .rm-table-map-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rm-table-map-stage { min-height: 25rem; }
  .rm-table-map-table { padding: 0.48rem 0.55rem; }
  .rm-table-map-table strong { font-size: 0.66rem; }
  .rm-table-map-table small { font-size: 0.58rem; }
  .rm-table-map-table em { font-size: 0.46rem; }
  .rm-table-map-editor { max-height: none; overflow: visible; padding-right: 0; }
  .rm-table-map-editor .rm-table-type-row { grid-template-columns: 1fr; }
}
.rm-publish-switch { display: flex; min-height: 4.8rem; padding: 0.9rem 1rem; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid rgba(5, 150, 105, 0.2); border-radius: 0.9rem; background: rgba(5, 150, 105, 0.055); }
.rm-publish-switch strong, .rm-publish-switch small { display: block; }
.rm-publish-switch small { color: var(--rm-muted); }
.rm-review-strip { display: flex; padding: 1rem; align-items: center; gap: 0.85rem; border: 1px solid rgba(5, 150, 105, 0.2); border-radius: 0.9rem; background: rgba(5, 150, 105, 0.06); color: #065f46; }
.rm-review-strip > i { font-size: 1.5rem; }
.rm-review-strip strong, .rm-review-strip span { display: block; }
.rm-review-strip span { color: #477062; font-size: 0.8rem; }

.rm-profile-avatar,
.rm-user-avatar { display: inline-grid; flex: 0 0 auto; place-items: center; border-radius: 50%; font-weight: 600; }
.rm-profile-avatar { width: 4rem; height: 4rem; border: 2px solid rgba(255, 255, 255, 0.28); background: linear-gradient(145deg, #c4b5fd, #a5b4fc); box-shadow: 0 12px 30px rgba(17, 16, 23, 0.25); color: #27205f; font-size: 1.4rem; }
.rm-user-avatar { width: 2.65rem; height: 2.65rem; background: linear-gradient(145deg, #ede9fe, #dbeafe); color: #3730a3; }
.rm-plan-summary { display: flex; padding: 1rem 1.15rem; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 1.1rem; background: linear-gradient(135deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.06)); backdrop-filter: blur(12px); }
.rm-plan-summary strong, .rm-plan-summary small { display: block; color: #fff; }
.rm-plan-summary strong { font-size: 1.7rem; letter-spacing: 0; }
.rm-plan-summary small { color: rgba(255, 255, 255, 0.64); }
.rm-plan-summary-icon { display: grid; width: 4rem; height: 4rem; flex: 0 0 auto; place-items: center; border-radius: 1.2rem; background: linear-gradient(135deg, rgba(183, 122, 233, 0.95), rgba(69, 129, 189, 0.95)); color: #fff; box-shadow: 0 14px 30px rgba(28, 27, 34, 0.22); font-size: 1.45rem; }
.rm-credit-summary { display: flex; padding: 1rem 1.15rem; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 1.1rem; background: rgba(255, 255, 255, 0.075); backdrop-filter: blur(12px); }
.rm-credit-summary strong, .rm-credit-summary small { display: block; color: #fff; }
.rm-credit-summary strong { font-size: 1.7rem; letter-spacing: 0; }
.rm-credit-summary small { color: rgba(255, 255, 255, 0.58); }
.rm-credit-ring { --rm-progress: 0; display: grid; width: 4rem; height: 4rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: radial-gradient(circle, #302a72 56%, transparent 58%), conic-gradient(#a5b4fc calc(var(--rm-progress) * 1%), rgba(255, 255, 255, 0.12) 0); color: #fff; }
.rm-account-tabs { padding: 0.55rem 0.7rem 0; gap: 0.25rem; border-bottom-color: var(--rm-border); background: #f6f4f0; }
.rm-account-tabs .nav-link { padding: 0.75rem 1rem; border: 0; border-bottom: 2px solid transparent; border-radius: 0.7rem 0.7rem 0 0; color: var(--rm-muted); font-size: 0.88rem; font-weight: 600; }
.rm-account-tabs .nav-link.active { border-bottom-color: var(--rm-indigo); background: #fff; color: var(--rm-indigo-dark); }
.rm-security-card { padding: 1.35rem; border: 1px solid var(--rm-border); border-radius: var(--rm-radius); background: #f7f5f1; }
.rm-danger-zone { display: grid; padding: 1.1rem; grid-template-columns: auto minmax(0, 1fr); gap: 0.85rem; border: 1px solid rgba(220, 38, 38, 0.16); border-radius: var(--rm-radius); background: linear-gradient(135deg, rgba(254, 242, 242, 0.92), rgba(255, 255, 255, 0.82)); box-shadow: 0 14px 34px rgba(127, 29, 29, 0.055); }
.rm-danger-zone-icon { display: grid; width: 2.55rem; height: 2.55rem; place-items: center; border-radius: 0.9rem; background: rgba(220, 38, 38, 0.1); color: #b91c1c; }
.rm-balance-card { padding: 1.4rem; border-radius: var(--rm-radius); background: linear-gradient(125deg, #17152d, #3730a3); box-shadow: 0 18px 45px rgba(49, 46, 129, 0.22); color: #fff; }
.rm-balance-card strong { display: block; font-size: clamp(2rem, 5vw, 3rem); letter-spacing: 0; }
.rm-balance-card strong small { font-size: 0.85rem; font-weight: 500; letter-spacing: 0; }
.rm-balance-card > div > i { color: #c4b5fd; font-size: 1.7rem; }
.rm-balance-card .progress { height: 0.45rem; background: rgba(255, 255, 255, 0.13); }
.rm-balance-card .progress-bar { background: linear-gradient(90deg, #a5b4fc, #e9d5ff); }
.rm-current-plan { padding: 1.4rem; border: 1px solid var(--rm-border); border-radius: var(--rm-radius); background: #fff; }
.rm-current-plan-premium { background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(248, 251, 255, 0.86)); box-shadow: 0 20px 48px rgba(69, 129, 189, 0.09); }
.rm-subscription-note { display: inline-flex; max-width: 46rem; padding: 0.7rem 0.85rem; align-items: flex-start; gap: 0.55rem; border: 1px solid rgba(69, 129, 189, 0.12); border-radius: 1rem; background: rgba(69, 129, 189, 0.055); color: var(--rm-indigo-dark); font-size: 0.82rem; font-weight: 700; }
.rm-subscription-note i { margin-top: 0.05rem; color: #8d5cc8; }
.rm-subscription-actions { display: grid; min-width: min(100%, 18rem); gap: 0.5rem; justify-items: stretch; }
.rm-subscription-actions .btn { width: 100%; }
.rm-billing-step { position: relative; }
.rm-step-eyebrow { display: inline-flex; margin-bottom: 0.45rem; align-items: center; gap: 0.35rem; color: var(--rm-indigo-dark); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.rm-billing-cycle-switch { display: flex; padding: 1rem; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid rgba(69, 129, 189, 0.13); border-radius: calc(var(--rm-radius) + 0.25rem); background: linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(248, 251, 255, 0.82)); box-shadow: 0 22px 52px rgba(32, 63, 120, 0.08); }
.rm-billing-cycle-switch > div:first-child { min-width: 13rem; }
.rm-billing-cycle-switch > div:first-child strong { display: block; color: var(--rm-ink); font-size: 0.98rem; line-height: 1.25; }
.rm-billing-cycle-label { display: block; margin-bottom: 0.18rem; color: var(--rm-muted); font-size: 0.68rem; font-weight: 900; letter-spacing: 0.09em; text-transform: uppercase; }
.rm-billing-cycle-options { display: grid; width: min(100%, 36rem); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
.rm-billing-cycle-card { position: relative; display: flex; min-height: 5rem; margin: 0; padding: 0.85rem 0.95rem; align-items: center; gap: 0.75rem; border: 1px solid rgba(69, 129, 189, 0.12); border-radius: 1.1rem; background: rgba(255, 255, 255, 0.74); color: var(--rm-ink); cursor: pointer; transition: transform var(--rm-transition), border-color var(--rm-transition), background var(--rm-transition), box-shadow var(--rm-transition); }
.rm-billing-cycle-card:hover { transform: translateY(-1px); border-color: rgba(69, 129, 189, 0.24); box-shadow: 0 16px 34px rgba(32, 63, 120, 0.08); }
.rm-billing-cycle-card.is-active { border-color: rgba(69, 129, 189, 0.42); background: #fff; box-shadow: inset 0 0 0 1px rgba(69, 129, 189, 0.12), 0 18px 42px rgba(69, 129, 189, 0.12); }
.rm-billing-cycle-card.is-annual.is-active { border-color: rgba(183, 122, 233, 0.48); box-shadow: inset 0 0 0 1px rgba(183, 122, 233, 0.12), 0 18px 42px rgba(183, 122, 233, 0.13); }
.rm-billing-cycle-card input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.rm-billing-cycle-card strong, .rm-billing-cycle-card small { display: block; }
.rm-billing-cycle-card strong { color: var(--rm-indigo-dark); font-size: 0.94rem; }
.rm-billing-cycle-card small { color: var(--rm-muted); font-size: 0.72rem; font-weight: 800; line-height: 1.25; }
.rm-billing-cycle-card em { position: absolute; top: 0.55rem; right: 0.55rem; padding: 0.22rem 0.45rem; border-radius: 999px; background: rgba(5, 150, 105, 0.12); color: #047857; font-size: 0.58rem; font-style: normal; font-weight: 900; letter-spacing: 0.05em; text-transform: uppercase; }
.rm-billing-cycle-icon { display: grid; width: 2.45rem; height: 2.45rem; flex: 0 0 auto; place-items: center; border-radius: 0.85rem; background: linear-gradient(135deg, rgba(69, 129, 189, 0.12), rgba(183, 122, 233, 0.12)); color: var(--rm-indigo-dark); font-size: 1.1rem; }
.rm-plan-card { position: relative; display: flex; overflow: hidden; padding: 1.25rem; flex-direction: column; border: 1px solid var(--rm-border); border-radius: var(--rm-radius); background: #fff; box-shadow: var(--rm-shadow-sm); transition: transform var(--rm-transition), border-color var(--rm-transition), box-shadow var(--rm-transition); }
.rm-plan-card:hover { transform: translateY(-3px); border-color: rgba(69, 129, 189, 0.22); box-shadow: 0 24px 56px rgba(69, 129, 189, 0.12); }
.rm-plan-card.is-highlighted { border-color: rgba(183, 122, 233, 0.48); background: linear-gradient(180deg, rgba(183, 122, 233, 0.07), #fff 36%); box-shadow: 0 24px 60px rgba(111, 77, 162, 0.14); }
.rm-plan-card.is-preselected { border-color: rgba(69, 129, 189, 0.58); box-shadow: 0 0 0 3px rgba(69, 129, 189, 0.1), 0 24px 60px rgba(69, 129, 189, 0.14); }
.rm-plan-card.is-current { box-shadow: inset 0 3px var(--rm-emerald), var(--rm-shadow-sm); }
.rm-plan-card.is-free { box-shadow: inset 0 3px #4581bd, var(--rm-shadow-sm); }
.rm-plan-card.is-custom { box-shadow: inset 0 3px #b77ae9, var(--rm-shadow-sm); }
.rm-plan-ribbon { position: absolute; top: 0.8rem; right: -2.2rem; width: 7.5rem; padding: 0.25rem; transform: rotate(35deg); background: var(--rm-indigo); color: #fff; font-size: 0.62rem; font-weight: 600; text-align: center; text-transform: uppercase; }
.rm-plan-kicker { display: inline-flex; width: fit-content; padding: 0.28rem 0.58rem; border: 1px solid rgba(69, 129, 189, 0.13); border-radius: 999px; background: rgba(248, 251, 255, 0.82); color: var(--rm-indigo-dark); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; }
.rm-plan-price { display: block; min-height: 3.25rem; margin: 1rem 0 0.5rem; }
.rm-plan-price > span { align-items: baseline; gap: 0.4rem; }
.rm-plan-price-dynamic > span { display: none; }
.rm-plan-price-dynamic > span.is-visible { display: flex; }
.rm-plan-price strong { color: var(--rm-indigo-dark); font-size: 1.92rem; letter-spacing: -0.02em; line-height: 1; }
.rm-plan-price small { color: var(--rm-muted); font-size: 0.8rem; font-weight: 800; }
.rm-plan-credits { display: grid; margin: 1rem 0; grid-template-columns: auto auto 1fr; align-items: center; gap: 0.45rem; color: var(--rm-indigo-dark); }
.rm-plan-credits i { font-size: 1.1rem; }
.rm-plan-credits strong { font-size: 1.25rem; }
.rm-plan-credits span { color: var(--rm-muted); font-size: 0.75rem; }
.rm-plan-included { display: flex; min-height: 3.2rem; margin: 1rem 0; padding: 0.75rem 0.85rem; align-items: center; gap: 0.65rem; border: 1px solid rgba(69, 129, 189, 0.11); border-radius: 1rem; background: linear-gradient(135deg, rgba(69, 129, 189, 0.08), rgba(183, 122, 233, 0.08)); color: var(--rm-indigo-dark); font-size: 0.82rem; font-weight: 800; }
.rm-plan-included i { flex: 0 0 auto; color: #8d5cc8; font-size: 1.1rem; }
.rm-plan-annual-savings { display: none; margin: 0 0 0.8rem; padding: 0.55rem 0.65rem; align-items: center; gap: 0.5rem; border: 1px solid rgba(5, 150, 105, 0.13); border-radius: 0.9rem; background: linear-gradient(135deg, rgba(5, 150, 105, 0.08), rgba(183, 122, 233, 0.07)); color: #047857; font-size: 0.72rem; font-weight: 900; }
.rm-plan-annual-savings.is-visible { display: flex; }
.rm-plan-annual-savings i { color: #8d5cc8; }
.rm-plan-annual-savings span { min-width: 0; color: var(--rm-indigo-dark); }
.rm-plan-annual-savings strong { margin-left: auto; padding: 0.18rem 0.42rem; border-radius: 999px; background: rgba(5, 150, 105, 0.12); color: #047857; font-size: 0.62rem; white-space: nowrap; }
.rm-plan-cycle-note { min-height: 2.75rem; margin: 0 0 1rem; color: var(--rm-muted); font-size: 0.75rem; font-weight: 800; line-height: 1.35; }
.rm-plan-cycle-note span { display: none; align-items: flex-start; gap: 0.42rem; }
.rm-plan-cycle-note span.is-visible { display: flex; }
.rm-plan-cycle-note i { margin-top: 0.08rem; color: var(--rm-indigo-dark); }
.rm-plan-cycle-note.is-static { display: flex; align-items: flex-start; }
.rm-plan-annual-mark { display: grid; padding: 0.75rem 0.85rem; gap: 0.12rem; border: 1px solid rgba(183, 122, 233, 0.2); border-radius: 1rem; background: linear-gradient(135deg, rgba(183, 122, 233, 0.11), rgba(69, 129, 189, 0.07)); color: var(--rm-indigo-dark); }
.rm-plan-annual-mark strong { font-size: 0.95rem; }
.rm-plan-annual-mark small { color: var(--rm-muted); font-size: 0.72rem; font-weight: 800; }
.rm-check-list { display: grid; min-height: 6.5rem; margin: 0 0 1.2rem; padding: 0; gap: 0.55rem; list-style: none; }
.rm-check-list li { display: flex; gap: 0.5rem; color: #504a58; font-size: 0.82rem; }
.rm-check-list i { color: var(--rm-emerald); }
.rm-plan-card > form { margin-top: auto; }
.rm-plan-grid .rm-plan-card > p { min-height: 4.5rem; }
.rm-plan-grid .rm-check-list { min-height: 8.75rem; }
.rm-plan-grid .rm-plan-ribbon { right: -2.35rem; width: 8.4rem; }
@media (max-width: 767.98px) {
  .rm-billing-cycle-switch {
    align-items: stretch;
    flex-direction: column;
  }

  .rm-billing-cycle-options {
    width: 100%;
    grid-template-columns: 1fr;
  }

  .rm-billing-cycle-card {
    min-height: 4.75rem;
  }

  .rm-plan-grid .rm-plan-card > p,
  .rm-plan-grid .rm-check-list {
    min-height: 0;
  }
}
.rm-topup-card { display: flex; padding: 1.15rem; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid rgba(79, 70, 229, 0.16); border-radius: var(--rm-radius); background: rgba(79, 70, 229, 0.04); }
.rm-topup-card > div { display: flex; align-items: center; gap: 0.9rem; }
.rm-history-table thead th,
.rm-admin-table thead th { padding: 0.85rem 1rem; border-bottom-color: var(--rm-border); background: #f6f4f0; color: var(--rm-muted); font-size: 0.69rem; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; }
.rm-history-table tbody td,
.rm-admin-table tbody td { padding: 0.9rem 1rem; border-bottom-color: rgba(28, 27, 34, 0.065); }
.rm-admin-table tbody tr:hover { background: rgba(79, 70, 229, 0.024); }
.rm-template-card { padding: 1.1rem; border: 1px solid var(--rm-border); border-radius: var(--rm-radius); background: #faf9f6; transition: border-color var(--rm-transition), transform var(--rm-transition); }
.rm-template-card:hover { transform: translateY(-2px); border-color: rgba(79, 70, 229, 0.24); }

.rm-stat-icon.is-indigo { background: rgba(69, 129, 189, 0.1); color: var(--rm-indigo-dark); }
.rm-admin-hero { position: relative; overflow: hidden; }
.rm-admin-hero::after { position: absolute; right: -5rem; top: -6rem; width: 18rem; height: 18rem; border-radius: 50%; background: radial-gradient(circle, rgba(183, 122, 233, 0.18), transparent 66%); content: ""; pointer-events: none; }
.rm-admin-signal-card { position: relative; z-index: 1; padding: 1.35rem; border-radius: var(--rm-radius); background: var(--rm-brand-gradient-deep); box-shadow: 0 24px 56px rgba(32, 63, 120, 0.22); color: #fff; }
.rm-admin-signal-card strong { display: block; margin: 0.25rem 0; color: #fff; font-size: clamp(2.3rem, 5vw, 4rem); line-height: 1; }
.rm-admin-notice-grid { display: grid; gap: 0.75rem; }
.rm-admin-notice { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0.8rem; padding: 0.9rem 1rem; border: 1px solid rgba(32, 63, 120, 0.09); border-radius: 1rem; background: rgba(248, 251, 255, 0.74); transition: transform var(--rm-transition), border-color var(--rm-transition), box-shadow var(--rm-transition); }
.rm-admin-notice:hover { transform: translateY(-1px); border-color: rgba(69, 129, 189, 0.2); box-shadow: 0 16px 34px rgba(32, 63, 120, 0.08); }
.rm-admin-notice-icon { display: grid; width: 2.55rem; height: 2.55rem; place-items: center; border-radius: 0.85rem; background: rgba(69, 129, 189, 0.11); color: var(--rm-indigo-dark); }
.rm-admin-notice-icon.warning { background: rgba(217, 119, 6, 0.12); color: #a35408; }
.rm-admin-notice-icon.danger { background: rgba(220, 38, 38, 0.1); color: #b91c1c; }
.rm-admin-notice-icon.success { background: rgba(5, 150, 105, 0.1); color: #047857; }
.rm-admin-metric-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.rm-admin-metric-grid > div { padding: 1rem; border: 1px solid rgba(32, 63, 120, 0.09); border-radius: 1rem; background: rgba(248, 251, 255, 0.78); }
.rm-admin-metric-grid span,
.rm-admin-metric-grid strong { display: block; }
.rm-admin-metric-grid span { color: var(--rm-muted); font-size: 0.76rem; }
.rm-admin-metric-grid strong { margin-top: 0.25rem; color: var(--rm-indigo-dark); font-size: 1.55rem; }
.rm-admin-payment-strip { display: flex; align-items: center; gap: 0.9rem; padding: 1rem; border-radius: 1rem; background: linear-gradient(135deg, rgba(69, 129, 189, 0.1), rgba(183, 122, 233, 0.11)); }
.rm-admin-payment-strip > span { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; border-radius: 0.85rem; background: #fff; color: var(--rm-indigo-dark); box-shadow: var(--rm-shadow-sm); }
.rm-admin-payment-strip strong,
.rm-admin-payment-strip small { display: block; }
.rm-admin-payment-strip small { color: var(--rm-muted); }
.rm-admin-checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.rm-admin-check-item { display: flex; min-height: 5rem; align-items: center; gap: 0.9rem; padding: 1rem; border: 1px solid rgba(32, 63, 120, 0.09); border-radius: 1rem; background: rgba(248, 251, 255, 0.78); }
.rm-admin-check-item strong,
.rm-admin-check-item small { display: block; }
.rm-admin-check-item small { color: var(--rm-muted); }
.rm-admin-check-item .form-check-input:disabled { opacity: 1; }
.rm-admin-service-list { display: grid; gap: 0.65rem; }
.rm-admin-service-list article { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.82rem 0.95rem; border: 1px solid rgba(32, 63, 120, 0.08); border-radius: 0.95rem; background: rgba(248, 251, 255, 0.76); }
.rm-admin-service-list strong,
.rm-admin-service-list small { display: block; }
.rm-admin-service-list small { color: var(--rm-muted); }
.rm-admin-job { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.85rem 0.95rem; border: 1px solid rgba(32, 63, 120, 0.08); border-radius: 0.95rem; background: rgba(248, 251, 255, 0.76); }
.rm-admin-job strong,
.rm-admin-job small { display: block; }
.rm-admin-job small { color: var(--rm-muted); }

/* Rispondimi brand refresh — palette chiara blu/violetto */
::selection {
  background: rgba(111, 121, 219, 0.25);
  color: var(--rm-indigo-dark);
}

h1,
h2,
h3,
h4,
h5,
h6,
.display-1,
.display-2,
.display-3,
.display-4,
.display-5,
.display-6 {
  color: var(--rm-ink);
  font-family: "Nunito", sans-serif;
}

.text-white h1,
.text-white h2,
.text-white h3,
.rm-section-dark h1,
.rm-section-dark h2,
.rm-section-dark h3,
.rm-auth-visual h1,
.rm-auth-visual h2,
.rm-auth-visual h3,
.rm-onboarding h1,
.rm-onboarding h2,
.rm-onboarding h3,
.rm-setup-hero h1,
.rm-setup-hero h2,
.rm-account-hero h1,
.rm-account-hero h2,
.rm-cta-panel h1,
.rm-cta-panel h2 {
  color: #fff;
}

.rm-dashboard {
  background:
    radial-gradient(circle at 86% 8%, rgba(166, 84, 227, 0.08), transparent 27rem),
    radial-gradient(circle at 24% 105%, rgba(54, 147, 199, 0.1), transparent 34rem),
    #f4f8fd;
}

.rm-dashboard::before {
  position: fixed;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(32, 63, 120, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(32, 63, 120, 0.025) 1px, transparent 1px);
  background-size: 4rem 4rem;
  content: "";
  mask-image: linear-gradient(to bottom, black, transparent 72%);
}

.rm-sidebar,
#dashboardMenu {
  background:
    radial-gradient(circle at 25% -4%, rgba(54, 147, 199, 0.34), transparent 18rem),
    radial-gradient(circle at 110% 72%, rgba(166, 84, 227, 0.22), transparent 17rem),
    linear-gradient(165deg, #0d1830 0%, #14294c 56%, #192d51 100%) !important;
}

.rm-sidebar {
  box-shadow: 18px 0 55px rgba(13, 24, 48, 0.13);
}

.rm-sidebar-head {
  min-height: 5.35rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), transparent);
}

.rm-sidebar-toggle {
  display: inline-grid;
  width: 2.45rem;
  height: 2.45rem;
  flex: 0 0 auto;
  place-items: center;
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(230, 242, 255, 0.82) !important;
  box-shadow: none;
}

.rm-sidebar-toggle:hover,
.rm-sidebar-toggle:focus-visible {
  background: rgba(255, 255, 255, 0.12);
  color: #fff !important;
}

.rm-sidebar-toggle i {
  line-height: 1;
}

.rm-sidebar .rm-brand-wordmark,
#dashboardMenu .rm-brand-wordmark {
  color: #fff;
}

.rm-sidebar .rm-brand-wordmark small,
#dashboardMenu .rm-brand-wordmark small,
.rm-auth-visual .rm-brand-wordmark small {
  color: #75bde4;
}

.rm-sidebar-label {
  color: rgba(203, 221, 242, 0.46);
}

.rm-sidebar-link {
  color: rgba(224, 234, 247, 0.68);
}

.rm-sidebar-link i {
  color: rgba(129, 189, 226, 0.7);
}

.rm-sidebar-link:hover {
  border-color: rgba(121, 192, 231, 0.14);
  background: rgba(255, 255, 255, 0.065);
}

.rm-sidebar-link.active {
  border-color: rgba(123, 188, 231, 0.18);
  background: linear-gradient(100deg, rgba(54, 147, 199, 0.3), rgba(111, 121, 219, 0.25) 58%, rgba(166, 84, 227, 0.14));
  box-shadow: inset 3px 0 #75c2e7, 0 12px 28px rgba(3, 13, 34, 0.18);
}

.rm-sidebar-link.active i {
  color: #a7ddf5;
}

.rm-topbar {
  border-bottom-color: rgba(32, 63, 120, 0.09);
  background: rgba(248, 251, 255, 0.83);
  box-shadow: 0 8px 30px rgba(32, 63, 120, 0.045);
}

.rm-page-title {
  color: var(--rm-indigo-dark);
  font-weight: 600;
}

.rm-credit-chip {
  border-color: rgba(59, 128, 189, 0.14);
  background: rgba(255, 255, 255, 0.8);
  box-shadow: 0 10px 28px rgba(32, 63, 120, 0.08);
  backdrop-filter: blur(16px);
  transition: transform var(--rm-transition), border-color var(--rm-transition), box-shadow var(--rm-transition);
}

.rm-credit-chip:hover {
  transform: translateY(-1px);
  border-color: rgba(59, 128, 189, 0.26);
  box-shadow: 0 14px 34px rgba(32, 63, 120, 0.12);
}

.rm-credit-icon,
.rm-icon-box,
.rm-stat-icon,
.rm-list-icon,
.rm-option-icon,
.rm-wizard-number {
  border-color: rgba(59, 128, 189, 0.14);
  background: linear-gradient(135deg, rgba(54, 147, 199, 0.12), rgba(111, 121, 219, 0.1));
  color: var(--rm-indigo-dark);
}

.rm-avatar,
.rm-profile-avatar,
.rm-user-avatar {
  background: linear-gradient(145deg, #d8f0fb, #dcdffa 56%, #f0d9fb);
  color: var(--rm-indigo-dark);
}

.rm-kpi-card,
.rm-stat-card,
.rm-panel,
.rm-page-toolbar,
.rm-filterbar,
.rm-wizard,
.rm-plan-card,
.rm-current-plan,
.rm-template-card,
.rm-card {
  border-color: rgba(32, 63, 120, 0.1);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(247, 251, 255, 0.84));
  box-shadow: 0 1px 2px rgba(32, 63, 120, 0.03), 0 15px 38px rgba(32, 63, 120, 0.07);
  backdrop-filter: blur(16px) saturate(125%);
}

.rm-kpi-card,
.rm-stat-card,
.rm-plan-card,
.rm-template-card {
  transition: transform var(--rm-transition), border-color var(--rm-transition), box-shadow var(--rm-transition);
}

.rm-kpi-card:hover,
.rm-stat-card:hover,
.rm-plan-card:hover,
.rm-template-card:hover {
  transform: translateY(-3px);
  border-color: rgba(59, 128, 189, 0.23);
  box-shadow: 0 24px 52px rgba(32, 63, 120, 0.13);
}

.rm-kpi-card::before {
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, var(--rm-sky), var(--rm-violet), var(--rm-plum));
  content: "";
  opacity: 0.82;
}

.rm-kpi-card::after {
  border-color: rgba(54, 147, 199, 0.06);
}

.rm-kpi-value,
.rm-price,
.rm-plan-price strong,
.rm-balance-card strong {
  color: var(--rm-indigo-dark);
}

.rm-panel-head {
  border-bottom-color: rgba(32, 63, 120, 0.08);
  background: linear-gradient(90deg, rgba(54, 147, 199, 0.035), rgba(166, 84, 227, 0.025));
}

.rm-panel-title {
  color: var(--rm-indigo-dark);
  font-weight: 600;
}

.rm-list-row,
.rm-booking-row,
.rm-call-card {
  border-bottom-color: rgba(32, 63, 120, 0.07);
}

.rm-list-row:hover,
.rm-booking-row:hover,
.rm-admin-table tbody tr:hover {
  background: linear-gradient(90deg, rgba(54, 147, 199, 0.045), rgba(111, 121, 219, 0.025));
}

.rm-hero::before {
  background:
    radial-gradient(circle at 10% 15%, rgba(54, 147, 199, 0.2), transparent 32rem),
    radial-gradient(circle at 88% 20%, rgba(166, 84, 227, 0.17), transparent 30rem),
    linear-gradient(180deg, #f8fbff, #f3f6fd 55%, #f8fbff);
}

.rm-hero::after {
  background-image:
    linear-gradient(rgba(32, 63, 120, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(32, 63, 120, 0.07) 1px, transparent 1px);
}

.rm-hero-console {
  border-color: rgba(255, 255, 255, 0.78);
  box-shadow: 0 42px 115px rgba(32, 63, 120, 0.24);
}

.rm-console-body,
.rm-section-dark {
  background:
    radial-gradient(circle at 88% 0, rgba(166, 84, 227, 0.24), transparent 28rem),
    radial-gradient(circle at 8% 32%, rgba(54, 147, 199, 0.18), transparent 25rem),
    var(--rm-graphite-950);
}

.rm-auth-visual {
  background:
    linear-gradient(150deg, rgba(54, 147, 199, 0.2), rgba(96, 126, 207, 0.16) 45%, rgba(183, 101, 229, 0.14) 100%),
    var(--rm-graphite-950);
}

.rm-onboarding,
.rm-setup-hero,
.rm-account-hero,
.rm-balance-card,
.rm-cta-panel {
  background: var(--rm-brand-gradient-deep);
  box-shadow: 0 24px 60px rgba(32, 63, 120, 0.24);
}

.rm-wizard-nav,
.rm-account-tabs,
.rm-history-table thead th,
.rm-admin-table thead th {
  background: linear-gradient(135deg, rgba(54, 147, 199, 0.055), rgba(111, 121, 219, 0.05));
}

.rm-wizard-step.is-active {
  box-shadow: 0 10px 26px rgba(32, 63, 120, 0.1);
}

.rm-wizard-step.is-active .rm-wizard-number {
  background: var(--rm-brand-gradient-deep);
  box-shadow: 0 9px 22px rgba(59, 128, 189, 0.25);
}

.rm-wizard-nav .progress-bar,
.rm-balance-card .progress-bar {
  background: linear-gradient(90deg, var(--rm-sky), var(--rm-violet), var(--rm-plum));
}

.rm-option-card:has(input:checked) {
  border-color: rgba(59, 128, 189, 0.58);
  box-shadow: 0 0 0 3px rgba(54, 147, 199, 0.1), 0 14px 32px rgba(32, 63, 120, 0.08);
}

.rm-calendar-day.is-today,
.rm-calendar-event {
  background: linear-gradient(135deg, rgba(54, 147, 199, 0.08), rgba(111, 121, 219, 0.065));
}

.rm-calendar-day.is-today > header {
  box-shadow: inset 0 3px var(--rm-sky);
}

.rm-transcript-box,
.rm-security-card,
.rm-table-type-row {
  background: rgba(247, 251, 255, 0.82);
}

.rm-auth-panel {
  background:
    linear-gradient(145deg, rgba(54, 147, 199, 0.08), rgba(255, 255, 255, 0) 42%),
    linear-gradient(315deg, rgba(183, 101, 229, 0.08), rgba(255, 255, 255, 0) 46%),
    #f8fbff;
}

.rm-auth-card {
  border: 1px solid rgba(32, 63, 120, 0.1);
  border-radius: 1.65rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(255, 255, 255, 0.72)),
    rgba(255, 255, 255, 0.76);
  box-shadow: 0 34px 90px rgba(32, 63, 120, 0.13);
  backdrop-filter: blur(20px);
}

.rm-agent-status {
  border: 1px solid rgba(32, 63, 120, 0.08);
  border-radius: var(--rm-radius);
  box-shadow: var(--rm-shadow-sm);
}

.rm-agent-status.is-active {
  background: linear-gradient(135deg, rgba(5, 150, 105, 0.1), rgba(54, 147, 199, 0.07));
  color: #065f46;
}

.rm-agent-status.is-review {
  background: linear-gradient(135deg, rgba(217, 119, 6, 0.1), rgba(166, 84, 227, 0.055));
  color: #8a4810;
}

.rm-balance-card strong,
.rm-credit-summary strong,
.rm-credit-summary small {
  color: #fff;
}

.rm-mobile-nav {
  position: fixed;
  z-index: 1035;
  left: 50%;
  bottom: max(0.65rem, env(safe-area-inset-bottom));
  display: grid;
  width: min(calc(100% - 1rem), 31rem);
  padding: 0.42rem;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.18rem;
  transform: translateX(-50%);
  border: 1px solid rgba(32, 63, 120, 0.12);
  border-radius: 1.25rem;
  background: rgba(248, 251, 255, 0.9);
  box-shadow: 0 20px 55px rgba(13, 24, 48, 0.2);
  backdrop-filter: blur(22px) saturate(155%);
}

.rm-mobile-nav-link {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 3.65rem;
  padding: 0.38rem 0.18rem;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 0.16rem;
  border-radius: 0.9rem;
  color: var(--rm-muted);
  font-size: 0.63rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
}

.rm-mobile-nav-link:hover {
  color: var(--rm-indigo-dark);
}

.rm-mobile-nav-link.active {
  background: linear-gradient(135deg, rgba(54, 147, 199, 0.13), rgba(111, 121, 219, 0.12));
  color: var(--rm-indigo-dark);
}

.rm-mobile-nav-link.active::before {
  position: absolute;
  top: 0.16rem;
  width: 1.2rem;
  height: 2px;
  border-radius: 999px;
  background: var(--rm-brand-gradient);
  content: "";
}

.rm-mobile-nav-link.is-disabled {
  opacity: 0.5;
}

.rm-mobile-nav-icon {
  display: grid;
  width: 1.8rem;
  height: 1.8rem;
  place-items: center;
  border-radius: 0.6rem;
  font-size: 1.02rem;
}

@media (min-width: 768px) {
  .rm-hours-row { grid-template-columns: minmax(8rem, 0.4fr) minmax(0, 1.6fr); }
  .rm-hours-times { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .rm-table-type-row { grid-template-columns: minmax(10rem, 1.5fr) minmax(5rem, 0.48fr) minmax(5rem, 0.48fr) minmax(7rem, 0.7fr) minmax(8rem, 0.8fr); }
}

@media (min-width: 1200px) {
  .rm-wizard { grid-template-columns: 15rem minmax(0, 1fr); }
  .rm-wizard-nav { border-right: 1px solid var(--rm-border); border-bottom: 0; }
}

.rm-alert-banner {
  position: relative;
  z-index: 10;
  padding: 0.8rem clamp(1rem, 3vw, 2rem);
  border-bottom: 1px solid rgba(217, 119, 6, 0.2);
  background: #fff7ed;
  color: #9a3412;
  font-size: 0.85rem;
  font-weight: 500;
}

.rm-error-page {
  display: grid;
  min-height: 100vh;
  padding: 1.5rem;
  place-items: center;
  background:
    radial-gradient(circle at 12% 12%, rgba(66, 133, 188, 0.15), transparent 25rem),
    radial-gradient(circle at 88% 82%, rgba(183, 101, 229, 0.12), transparent 28rem),
    var(--rm-ivory-50);
}

.rm-error-card {
  width: min(100%, 43rem);
  padding: clamp(1.5rem, 6vw, 4rem);
  border: 1px solid var(--rm-border);
  border-radius: 2rem;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: var(--rm-shadow-lg);
  text-align: center;
  backdrop-filter: blur(20px);
}

.rm-error-code {
  font-size: clamp(4rem, 18vw, 8.5rem);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 0.85;
}

.rm-toast-container {
  z-index: 2000;
}

.toast {
  border: 1px solid var(--rm-border);
  border-radius: 1rem;
  box-shadow: var(--rm-shadow-lg);
}

.rm-reveal {
  opacity: 0;
  transform: translateY(1.1rem);
  transition: opacity 550ms ease, transform 550ms ease;
}

.rm-reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Refined Nunito hierarchy: premium, clear and intentionally lighter */
body {
  font-weight: 400;
}

strong,
b,
.fw-bold,
.fw-bolder,
.fw-semibold {
  font-weight: 600 !important;
}

.rm-display {
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.02;
}

.rm-section-title,
.rm-auth-title,
.rm-page-title,
.rm-kpi-value,
.rm-price,
.rm-panel-title,
.rm-error-code,
.rm-plan-price strong,
.rm-balance-card strong,
.rm-credit-summary strong {
  font-weight: 600;
}

.rm-error-code {
  font-weight: 600;
}

.rm-brand,
.rm-eyebrow,
.rm-sidebar-label,
.rm-live-pill,
.rm-avatar,
.rm-profile-avatar,
.rm-user-avatar,
.rm-calendar-day > header span,
.rm-plan-ribbon,
.rm-history-table thead th,
.rm-admin-table thead th,
.rm-mobile-nav-link.is-active {
  font-weight: 600;
}

.btn,
.form-label,
.rm-navbar .nav-link,
.rm-sidebar-link,
.rm-kpi-label,
.rm-wizard-step,
.rm-segmented .nav-link,
.rm-account-tabs .nav-link,
.rm-mobile-nav-link {
  font-weight: 500;
}

.btn-primary,
.btn-dark,
.rm-navbar .nav-link.active,
.rm-sidebar-link.active,
.rm-segmented .nav-link.active,
.rm-account-tabs .nav-link.active,
.rm-mobile-nav-link.active {
  font-weight: 600;
}

.badge {
  --bs-badge-font-weight: 600;
  font-weight: 600;
}

dt,
th {
  font-weight: 600;
}

@media (min-width: 992px) {
  .rm-auth-shell {
    grid-template-columns: minmax(25rem, 0.95fr) minmax(31rem, 1.05fr);
  }

  .rm-auth-visual {
    display: flex;
  }

  body.rm-sidebar-collapsed .rm-sidebar {
    width: var(--rm-sidebar-collapsed);
  }

  body.rm-sidebar-collapsed .rm-sidebar .rm-sidebar-head {
    min-height: 7.45rem;
    padding: 0.85rem 0.65rem;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0.65rem;
  }

  body.rm-sidebar-collapsed .rm-dashboard-main {
    margin-left: var(--rm-sidebar-collapsed);
  }

  body.rm-sidebar-collapsed .rm-sidebar .rm-brand-wordmark,
  body.rm-sidebar-collapsed .rm-sidebar .rm-sidebar-label,
  body.rm-sidebar-collapsed .rm-sidebar .rm-sidebar-link span,
  body.rm-sidebar-collapsed .rm-sidebar .rm-sidebar-foot-copy {
    display: none;
  }

  body.rm-sidebar-collapsed .rm-sidebar-link {
    justify-content: center;
  }

  body.rm-sidebar-collapsed .rm-sidebar .rm-sidebar-toggle {
    width: 3.15rem;
    height: 2.7rem;
    border-color: rgba(117, 194, 231, 0.3) !important;
    background: linear-gradient(135deg, rgba(69, 129, 189, 0.34), rgba(183, 122, 233, 0.22));
    color: #fff !important;
    box-shadow: 0 12px 26px rgba(3, 13, 34, 0.22);
  }

  body.rm-sidebar-collapsed .rm-sidebar .rm-sidebar-toggle:hover {
    transform: translateY(-1px);
    border-color: rgba(255, 255, 255, 0.28) !important;
    background: linear-gradient(135deg, rgba(69, 129, 189, 0.46), rgba(183, 122, 233, 0.32));
  }
}

@media (max-width: 991.98px) {
  .rm-sidebar {
    transform: translateX(-100%);
  }

  .rm-dashboard-main {
    margin-left: 0;
  }

  .rm-admin-checklist,
  .rm-admin-metric-grid {
    grid-template-columns: 1fr;
  }

  .rm-admin-notice {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .rm-admin-notice > .badge {
    grid-column: 2;
    justify-self: start;
  }

  .rm-dashboard-content {
    padding-bottom: 7.5rem;
  }
}

@media (max-width: 767.98px) {
  .rm-auth-panel {
    padding: 0.85rem;
    align-items: flex-start;
  }

  .rm-auth-card {
    border-radius: 1.25rem;
  }

  .rm-auth-card-top {
    margin-bottom: 1rem;
  }

  .rm-auth-signal-grid {
    grid-template-columns: 1fr;
  }

  .rm-auth-signal {
    min-height: 3.4rem;
  }

  .rm-navbar {
    background: rgba(248, 251, 255, 0.96);
  }

  .rm-hero {
    min-height: auto;
    padding-top: 8.5rem;
  }

  .rm-display {
    letter-spacing: 0;
  }

  .rm-hero-console {
    margin-top: 3rem;
    border-radius: 1.3rem;
  }

  .rm-console-window {
    border-radius: 1rem;
  }

  .rm-topbar {
    min-height: 4.4rem;
  }

  .rm-list-row {
    align-items: flex-start;
  }

  .rm-page-toolbar,
  .rm-filterbar {
    padding: 0.9rem;
  }

  .rm-booking-row {
    position: relative;
    padding: 1rem;
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .rm-booking-time {
    width: auto;
    min-width: 4.4rem;
  }

  .rm-booking-row > .dropdown {
    position: absolute;
    top: 0.9rem;
    right: 0.9rem;
  }

  .rm-call-main {
    padding: 1rem;
    flex-wrap: wrap;
  }

  .rm-call-main > .d-flex:last-child {
    width: 100%;
    justify-content: flex-end;
  }

  .rm-transcript-box {
    margin: 0 1rem 1rem;
  }

  .rm-wizard-nav {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.35rem;
    overflow-x: auto;
  }

  .rm-wizard-step {
    min-width: 3rem;
    padding: 0.45rem;
    justify-content: center;
  }

  .rm-wizard-step + .rm-wizard-step { margin-top: 0; }
  .rm-wizard-step > span:last-child { display: none; }
  .rm-wizard-nav .progress { grid-column: 1 / -1; }

  .rm-wizard-heading {
    margin-bottom: 1.4rem;
  }

  .rm-hours-row,
  .rm-table-type-row {
    grid-template-columns: 1fr;
  }

  .rm-topup-card,
  .rm-topup-card > div {
    align-items: stretch;
    flex-direction: column;
  }

  .rm-account-tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
  }

  .rm-account-tabs .nav-link {
    white-space: nowrap;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  .rm-reveal {
    opacity: 1;
    transform: none;
  }
}

@media print {
  .rm-navbar,
  .rm-sidebar,
  .rm-topbar,
  .btn,
  .rm-toast-container {
    display: none !important;
  }

  .rm-dashboard-main {
    margin-left: 0 !important;
  }

  body {
    background: #fff;
  }
}

/* Ultra premium refresh — palette chiara richiesta */
:root {
  --rm-logo-navy: #315f95;
  --rm-logo-blue: #4581bd;
  --rm-logo-sky: #78abd5;
  --rm-logo-periwinkle: #93aee6;
  --rm-logo-violet: #b77ae9;
  --rm-graphite-950: #14233c;
  --rm-graphite-900: #203b62;
  --rm-graphite-800: #315f95;
  --rm-graphite-700: #4581bd;
  --rm-ivory-50: #fbfcff;
  --rm-ivory-100: #f2f7ff;
  --rm-ivory-200: #e4eefb;
  --rm-ink: #1f2d44;
  --rm-muted: #71809a;
  --rm-indigo: var(--rm-logo-blue);
  --rm-indigo-dark: var(--rm-logo-navy);
  --rm-violet: var(--rm-logo-periwinkle);
  --rm-plum: var(--rm-logo-violet);
  --rm-sky: var(--rm-logo-sky);
  --rm-border: rgba(69, 129, 189, 0.16);
  --rm-control-border: rgba(69, 129, 189, 0.34);
  --rm-focus: var(--rm-logo-periwinkle);
  --rm-brand-gradient: linear-gradient(135deg, #4581bd 0%, #78abd5 48%, #b77ae9 100%);
  --rm-brand-gradient-deep: linear-gradient(135deg, #315f95 0%, #4581bd 58%, #b77ae9 100%);
  --rm-shadow-sm: 0 1px 2px rgba(42, 83, 129, 0.03), 0 14px 34px rgba(69, 129, 189, 0.08);
  --rm-shadow-lg: 0 34px 92px rgba(42, 83, 129, 0.16);
  --rm-radius-sm: 0.5rem;
  --rm-radius: 0.65rem;
  --rm-radius-lg: 0.85rem;
  --bs-primary: #4581bd;
  --bs-primary-rgb: 69, 129, 189;
  --bs-link-color: #4581bd;
  --bs-link-hover-color: #315f95;
  --bs-border-color: rgba(69, 129, 189, 0.16);
  --bs-body-font-family: "Nunito", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body {
  background:
    radial-gradient(circle at 8% -8%, rgba(69, 129, 189, 0.13), transparent 28rem),
    radial-gradient(circle at 96% 0%, rgba(183, 122, 233, 0.1), transparent 30rem),
    linear-gradient(180deg, #ffffff 0%, #f4f8ff 46%, #fbfcff 100%);
  font-family: "Nunito", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.rm-navbar {
  background: rgba(247, 249, 255, 0.86);
  box-shadow: 0 16px 50px rgba(69, 129, 189, 0.055);
}

.rm-navbar.is-scrolled {
  border-bottom-color: rgba(69, 129, 189, 0.12);
  background: rgba(247, 249, 255, 0.96);
}

.rm-brand {
  min-width: 0;
}

.rm-brand-logo {
  display: block;
  width: auto;
  height: 2.35rem;
  max-width: min(12.6rem, 52vw);
  object-fit: contain;
}

.rm-navbar .rm-brand-logo,
.rm-footer .rm-brand-logo,
.rm-error-card .rm-brand-logo {
  height: 2.7rem;
}

.rm-agentron-credit {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  opacity: 0.72;
}

.rm-agentron-logo {
  display: inline-block;
  width: auto;
  height: 1.05rem;
  max-width: 7.2rem;
  object-fit: contain;
  opacity: 0.86;
  transform: translateY(-0.02rem);
}

.rm-payoff {
  color: #4581bd;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.rm-brand-logo-shell {
  display: inline-flex;
  width: 11.7rem;
  max-width: 100%;
  height: 3.15rem;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 0.42rem 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.36);
  border-radius: 0.72rem;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 16px 36px rgba(7, 17, 38, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.rm-brand-logo-shell .rm-brand-logo {
  height: 2.05rem;
  max-width: 10.4rem;
}

.rm-brand-glyph {
  display: none;
  width: 2rem;
  height: 2rem;
  object-fit: contain;
}

.rm-sidebar .rm-brand-logo-shell,
#dashboardMenu .rm-brand-logo-shell,
.rm-auth-visual .rm-brand-logo-shell {
  background: rgba(255, 255, 255, 0.98);
}

body.rm-sidebar-collapsed .rm-sidebar .rm-brand-logo-shell {
  width: 3.15rem;
  min-width: 3.15rem;
  padding-inline: 0.38rem;
  border-radius: 1rem;
}

body.rm-sidebar-collapsed .rm-sidebar .rm-brand-logo-shell > .rm-brand-logo {
  display: none !important;
}

body.rm-sidebar-collapsed .rm-sidebar .rm-brand-logo-shell > .rm-brand-glyph {
  display: block !important;
  width: 2.15rem;
  height: 2.15rem;
  max-width: 2.15rem;
}

.btn {
  --bs-btn-border-radius: 0.62rem;
}

.btn-primary {
  --bs-btn-bg: #4581bd;
  --bs-btn-border-color: #4581bd;
  --bs-btn-hover-bg: #3f76ad;
  --bs-btn-hover-border-color: #3f76ad;
  --bs-btn-active-bg: #35679b;
  --bs-btn-active-border-color: #35679b;
  box-shadow: 0 16px 34px rgba(69, 129, 189, 0.18);
}

.btn-outline-dark {
  --bs-btn-color: #315f95;
  --bs-btn-border-color: rgba(69, 129, 189, 0.3);
  --bs-btn-hover-bg: #4581bd;
  --bs-btn-hover-border-color: #4581bd;
}

.text-gradient {
  background: linear-gradient(115deg, #315f95 0%, #4581bd 40%, #78abd5 64%, #b77ae9 100%);
  -webkit-background-clip: text;
  background-clip: text;
}

.rm-eyebrow {
  border-color: rgba(69, 129, 189, 0.2);
  background: linear-gradient(135deg, rgba(69, 129, 189, 0.1), rgba(183, 122, 233, 0.085));
  color: #315f95;
}

.rm-premium-hero {
  min-height: 48rem;
  padding-top: 11rem;
}

.rm-premium-hero::before {
  background:
    radial-gradient(circle at 5% 5%, rgba(69, 129, 189, 0.18), transparent 31rem),
    radial-gradient(circle at 92% 13%, rgba(183, 122, 233, 0.14), transparent 33rem),
    linear-gradient(180deg, #ffffff 0%, #f3f8ff 58%, #fbfcff 100%);
}

.rm-premium-hero::after {
  opacity: 0.34;
  background-image:
    linear-gradient(rgba(69, 129, 189, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(69, 129, 189, 0.055) 1px, transparent 1px);
}

.rm-premium-hero .rm-display,
.rm-premium-hero .rm-lead {
  margin-left: 0;
  margin-right: 0;
}

.rm-premium-hero .rm-display {
  color: #1f2d44;
  max-width: 100%;
  font-size: clamp(3rem, 5.4vw, 4.9rem);
  line-height: 1.02;
}

.rm-premium-hero .rm-lead {
  max-width: 39rem;
}

.rm-trust-row {
  color: #55627f;
}

.rm-trust-row span {
  display: inline-flex;
  align-items: center;
  padding: 0.48rem 0.7rem;
  border: 1px solid rgba(36, 58, 118, 0.1);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.68);
  box-shadow: 0 12px 28px rgba(36, 58, 118, 0.055);
}

.rm-product-frame {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 1rem;
  background:
    radial-gradient(circle at 88% -15%, rgba(183, 122, 233, 0.36), transparent 21rem),
    radial-gradient(circle at 0% 70%, rgba(69, 129, 189, 0.3), transparent 20rem),
    linear-gradient(145deg, #18355b 0%, #315f95 52%, #4581bd 100%);
  box-shadow: 0 42px 120px rgba(42, 83, 129, 0.24), 0 12px 36px rgba(69, 129, 189, 0.18);
  color: #fff;
}

.rm-product-frame::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px);
  background-size: 2.2rem 2.2rem;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.9), transparent 80%);
}

.rm-product-topbar {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 3.55rem;
  align-items: center;
  gap: 0.8rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.045);
  backdrop-filter: blur(18px);
}

.rm-product-body {
  position: relative;
  z-index: 1;
  padding: clamp(1.1rem, 3vw, 1.7rem);
}

.rm-command-row {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0.95rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.8rem;
  background: rgba(255, 255, 255, 0.075);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.rm-command-icon {
  display: inline-grid;
  width: 3rem;
  height: 3rem;
  flex: 0 0 3rem;
  place-items: center;
  border-radius: 0.72rem;
  background: linear-gradient(135deg, rgba(69, 129, 189, 0.62), rgba(183, 122, 233, 0.42));
  color: #fff;
  font-size: 1.25rem;
}

.rm-score {
  margin-left: auto;
  padding: 0.35rem 0.58rem;
  border: 1px solid rgba(52, 211, 153, 0.24);
  border-radius: 999px;
  background: rgba(52, 211, 153, 0.1);
  color: #9ff3c9;
  font-size: 0.78rem;
  font-weight: 600;
}

.rm-dialogue {
  display: grid;
  gap: 0.75rem;
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.8rem;
  background: rgba(255, 255, 255, 0.045);
}

.rm-dialogue .rm-message {
  border-radius: 0.72rem 0.72rem 0.72rem 0.22rem;
  background: rgba(255, 255, 255, 0.1);
  color: #dfe8ff;
}

.rm-dialogue .rm-message.is-ai {
  border-color: rgba(183, 122, 233, 0.28);
  border-radius: 0.72rem 0.72rem 0.22rem 0.72rem;
  background: linear-gradient(135deg, rgba(69, 129, 189, 0.42), rgba(183, 122, 233, 0.24));
  color: #fff;
}

.rm-metric {
  min-height: 6.6rem;
  padding: 0.92rem;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 0.78rem;
  background: rgba(255, 255, 255, 0.07);
}

.rm-metric span {
  display: block;
  color: rgba(234, 240, 255, 0.68);
  font-size: 0.78rem;
}

.rm-metric strong {
  display: block;
  margin-top: 0.35rem;
  color: #fff;
  font-size: clamp(1.75rem, 4vw, 2.35rem);
  line-height: 1;
}

.rm-section-soft {
  background:
    linear-gradient(180deg, rgba(243, 248, 255, 0.8), rgba(251, 252, 255, 0.94)),
    #f2f7ff;
}

.rm-card,
.rm-auth-card,
.rm-error-card,
.rm-pricing-card,
.rm-agent-status,
.rm-page-toolbar,
.rm-filterbar,
.rm-call-card,
.rm-list-row,
.rm-booking-row,
.rm-topup-card {
  border-radius: 0.8rem;
}

.rm-card {
  border-color: rgba(69, 129, 189, 0.12);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.72), 0 18px 42px rgba(69, 129, 189, 0.07);
}

.rm-premium-card {
  position: relative;
  overflow: hidden;
}

.rm-premium-card::after {
  position: absolute;
  inset: auto 1rem 1rem auto;
  width: 4.8rem;
  height: 4.8rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(183, 122, 233, 0.12), transparent 70%);
  content: "";
}

.rm-icon-box {
  border-color: rgba(69, 129, 189, 0.18);
  border-radius: 0.68rem;
  background: linear-gradient(135deg, rgba(69, 129, 189, 0.11), rgba(183, 122, 233, 0.1));
  color: #315f95;
}

.rm-section-dark {
  background:
    radial-gradient(circle at 78% -18%, rgba(183, 122, 233, 0.3), transparent 34rem),
    radial-gradient(circle at 5% 60%, rgba(69, 129, 189, 0.22), transparent 30rem),
    linear-gradient(145deg, #18355b 0%, #315f95 54%, #4581bd 100%);
}

.rm-flow {
  display: grid;
  gap: 0;
}

.rm-flow-step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.18rem 0.95rem;
  border-radius: 0.78rem;
}

.rm-step-number {
  display: inline-grid;
  width: 2.55rem;
  height: 2.55rem;
  grid-row: span 2;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 0.62rem;
  background: rgba(255, 255, 255, 0.08);
  color: #dfe8ff;
  font-size: 0.78rem;
  font-weight: 600;
}

.rm-flow-step.is-primary .rm-step-number {
  background: rgba(183, 122, 233, 0.22);
}

.rm-flow-step.is-success .rm-step-number {
  background: rgba(52, 211, 153, 0.16);
}

.rm-pricing-card.is-featured {
  border-color: rgba(183, 122, 233, 0.34);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(247, 249, 255, 0.82)),
    rgba(255, 255, 255, 0.9);
  box-shadow: 0 30px 78px rgba(69, 129, 189, 0.16);
}

.rm-price {
  color: #315f95;
  font-size: clamp(2rem, 5vw, 2.75rem);
}

.rm-cta-panel {
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 1rem;
  background:
    radial-gradient(circle at 88% 20%, rgba(183, 122, 233, 0.36), transparent 26rem),
    linear-gradient(135deg, #315f95 0%, #4581bd 58%, #b77ae9 100%);
  box-shadow: 0 36px 92px rgba(69, 129, 189, 0.22);
}

.rm-auth-visual,
.rm-sidebar,
.rm-onboarding,
.rm-setup-hero,
.rm-account-hero,
.rm-balance-card {
  background:
    radial-gradient(circle at 12% 0, rgba(69, 129, 189, 0.28), transparent 24rem),
    radial-gradient(circle at 90% 90%, rgba(183, 122, 233, 0.2), transparent 26rem),
    linear-gradient(145deg, #18355b 0%, #315f95 58%, #4581bd 100%);
}

.rm-sidebar-link.active {
  border-color: rgba(183, 122, 233, 0.32);
  background: linear-gradient(90deg, rgba(69, 129, 189, 0.34), rgba(183, 122, 233, 0.15));
  box-shadow: inset 3px 0 #b77ae9;
}

.rm-error-card {
  border-color: rgba(69, 129, 189, 0.12);
  background: rgba(255, 255, 255, 0.88);
}

@media (min-width: 992px) {
  .pb-lg-7 {
    padding-bottom: 7rem !important;
  }
}

@media (max-width: 767.98px) {
  .rm-navbar .rm-brand-logo {
    height: 2.28rem;
    max-width: 9.8rem;
  }

  .rm-premium-hero {
    padding-top: 8.5rem;
  }

  .rm-command-row {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .rm-score {
    margin-left: 3.9rem;
  }
}

@media print {
  body {
    background: #fff;
  }
}

/* Premium polish layer — 2026 refinement
   --------------------------------------------------------------------------
   Centralized overrides keep the PHP views simple and Bootstrap-native while
   giving marketing, auth, dashboard, admin and modals the same elevated visual
   system. Keep this layer small, intentional and easy to remove/iterate. */
:root {
  --rm-premium-surface: rgba(255, 255, 255, 0.82);
  --rm-premium-surface-strong: rgba(255, 255, 255, 0.94);
  --rm-premium-line: rgba(69, 129, 189, 0.14);
  --rm-premium-shadow: 0 18px 46px rgba(32, 63, 120, 0.10);
  --rm-premium-shadow-lg: 0 34px 90px rgba(32, 63, 120, 0.16);
}

body {
  background:
    radial-gradient(circle at 12% -10%, rgba(69, 129, 189, 0.14), transparent 28rem),
    radial-gradient(circle at 88% 8%, rgba(183, 122, 233, 0.12), transparent 29rem),
    linear-gradient(180deg, #fbfdff 0%, #f3f7ff 42%, #fbfdff 100%);
}

.rm-navbar {
  border-bottom: 1px solid transparent;
  background: rgba(251, 253, 255, 0.72);
  backdrop-filter: blur(18px) saturate(150%);
}

.rm-navbar.is-scrolled {
  border-bottom-color: var(--rm-premium-line);
  background: rgba(251, 253, 255, 0.92);
  box-shadow: 0 18px 42px rgba(32, 63, 120, 0.08);
}

.rm-hero,
.rm-section-soft,
.rm-auth-panel,
.rm-dashboard {
  position: relative;
  background:
    radial-gradient(circle at 12% 4%, rgba(69, 129, 189, 0.1), transparent 30rem),
    radial-gradient(circle at 92% 0%, rgba(183, 122, 233, 0.1), transparent 30rem),
    linear-gradient(180deg, #fbfdff 0%, #f4f8ff 100%);
}

.rm-section-dark,
.rm-auth-visual,
.rm-sidebar,
#dashboardMenu {
  background:
    radial-gradient(circle at 18% 0%, rgba(120, 171, 213, 0.34), transparent 18rem),
    radial-gradient(circle at 100% 84%, rgba(183, 122, 233, 0.28), transparent 18rem),
    linear-gradient(155deg, #101f38 0%, #152e54 55%, #1f355d 100%) !important;
}

.rm-card,
.rm-panel,
.rm-page-toolbar,
.rm-filterbar,
.rm-kpi-card,
.rm-stat-card,
.rm-plan-card,
.rm-current-plan,
.rm-template-card,
.rm-security-card,
.rm-auth-card,
.rm-error-card,
.rm-product-frame,
.rm-hero-console,
.rm-wizard,
.rm-wizard-section,
.rm-option-card,
.rm-table-type-row,
.rm-table-map-side,
.rm-table-map-list-row,
.modal-content {
  border-color: var(--rm-premium-line);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(247, 251, 255, 0.78)),
    var(--rm-premium-surface);
  box-shadow: var(--rm-premium-shadow);
}

.rm-card:hover,
.rm-panel:hover,
.rm-plan-card:hover,
.rm-stat-card:hover,
.rm-kpi-card:hover,
.rm-option-card:hover {
  border-color: rgba(69, 129, 189, 0.25);
  box-shadow: var(--rm-premium-shadow-lg);
}

/* Operational surfaces: setup wizard, admin forms and popups must feel as
   curated as the marketing page, without adding extra markup to the PHP views. */
.modal-header,
.modal-footer {
  border-color: rgba(69, 129, 189, 0.12);
  background: linear-gradient(135deg, rgba(69, 129, 189, 0.055), rgba(183, 122, 233, 0.045));
}

.rm-wizard {
  backdrop-filter: blur(14px) saturate(135%);
}

.rm-wizard-step.is-active {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(246, 250, 255, 0.88)),
    #fff;
  box-shadow: 0 14px 34px rgba(69, 129, 189, 0.10);
}

.rm-wizard-step.is-active .rm-wizard-number {
  background: linear-gradient(135deg, #4581bd, #b77ae9);
  box-shadow: 0 12px 26px rgba(69, 129, 189, 0.22);
}

.btn-primary,
.btn-dark {
  border: 0;
  background: var(--rm-brand-gradient-deep);
  box-shadow: 0 14px 34px rgba(69, 129, 189, 0.24);
  color: #fff;
}

.btn-primary:hover,
.btn-dark:hover {
  background: linear-gradient(135deg, #4581bd 0%, #5a92c8 48%, #b77ae9 100%);
  box-shadow: 0 18px 42px rgba(69, 129, 189, 0.30);
  color: #fff;
}

.btn-light,
.btn-soft {
  border-color: rgba(69, 129, 189, 0.16) !important;
  background: rgba(255, 255, 255, 0.78);
  color: var(--rm-indigo-dark);
}

.form-control,
.form-select,
.input-group-text {
  border-color: rgba(69, 129, 189, 0.18);
  background-color: rgba(255, 255, 255, 0.9);
}

.form-control:focus,
.form-select:focus {
  border-color: rgba(183, 122, 233, 0.62);
  box-shadow: 0 0 0 0.25rem rgba(183, 122, 233, 0.14);
}

.badge.text-bg-light,
.badge.border {
  border-color: rgba(69, 129, 189, 0.13) !important;
  background: rgba(255, 255, 255, 0.7) !important;
  color: var(--rm-indigo-dark) !important;
}

.rm-table-map-stage,
.rm-transcript-box,
.rm-calendar,
.rm-topup-card,
.rm-admin-metric-grid > div,
.rm-admin-service-list article,
.rm-admin-job,
.rm-admin-notice,
.rm-list-row,
.rm-booking-row,
.rm-call-card {
  border-color: rgba(69, 129, 189, 0.1);
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 10px 26px rgba(32, 63, 120, 0.045);
}

.rm-panel-head,
.rm-account-tabs,
.rm-wizard-nav,
.rm-history-table thead th,
.rm-admin-table thead th {
  background: linear-gradient(135deg, rgba(69, 129, 189, 0.07), rgba(183, 122, 233, 0.055));
}

.rm-balance-card,
.rm-account-hero,
.rm-setup-hero,
.rm-cta-panel,
.rm-admin-signal-card {
  background:
    radial-gradient(circle at 82% 12%, rgba(255, 255, 255, 0.18), transparent 12rem),
    var(--rm-brand-gradient-deep);
  box-shadow: 0 28px 72px rgba(32, 63, 120, 0.24);
}

.rm-mobile-nav {
  border-color: rgba(69, 129, 189, 0.16);
  background: rgba(251, 253, 255, 0.92);
}

/* Admin control room
   --------------------------------------------------------------------------
   Dedicated admin pages use the same data model, but the interface separates
   global platform command from focused operational sections. */
.rm-admin-control-hero {
  background:
    radial-gradient(circle at 76% 18%, rgba(183, 122, 233, 0.17), transparent 20rem),
    radial-gradient(circle at 8% 0%, rgba(69, 129, 189, 0.13), transparent 22rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(245, 250, 255, 0.82));
}

.rm-admin-orbit {
  overflow: hidden;
  isolation: isolate;
}

.rm-admin-orbit::before {
  position: absolute;
  inset: -42% auto auto 48%;
  z-index: -1;
  width: 18rem;
  height: 18rem;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.18), transparent 64%);
  content: "";
}

.rm-admin-section-nav {
  display: flex;
  overflow-x: auto;
  padding: 0.45rem;
  gap: 0.35rem;
  border: 1px solid rgba(69, 129, 189, 0.13);
  border-radius: 1.2rem;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 16px 38px rgba(32, 63, 120, 0.07);
  backdrop-filter: blur(16px) saturate(145%);
  scrollbar-width: none;
}

.rm-admin-section-nav::-webkit-scrollbar {
  display: none;
}

.rm-admin-section-pill {
  display: inline-flex;
  min-height: 2.8rem;
  padding: 0.65rem 0.95rem;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border: 1px solid transparent;
  border-radius: 0.95rem;
  color: var(--rm-muted);
  font-size: 0.88rem;
  font-weight: 700;
  white-space: nowrap;
  text-decoration: none;
  transition: color var(--rm-transition), background-color var(--rm-transition), box-shadow var(--rm-transition), transform var(--rm-transition);
}

.rm-admin-section-pill:hover {
  transform: translateY(-1px);
  background: rgba(69, 129, 189, 0.07);
  color: var(--rm-indigo-dark);
}

.rm-admin-section-pill.active {
  border-color: rgba(183, 122, 233, 0.18);
  background: linear-gradient(135deg, rgba(69, 129, 189, 0.14), rgba(183, 122, 233, 0.12));
  box-shadow: 0 12px 28px rgba(69, 129, 189, 0.12);
  color: var(--rm-indigo-dark);
}

.rm-admin-pulse-grid,
.rm-admin-command-grid {
  display: grid;
  gap: 0.85rem;
}

.rm-admin-pulse-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rm-admin-pulse-grid article {
  min-height: 8rem;
  padding: 1.15rem;
  border: 1px solid rgba(69, 129, 189, 0.12);
  border-radius: 1.15rem;
  background:
    radial-gradient(circle at 90% 8%, rgba(183, 122, 233, 0.1), transparent 7rem),
    rgba(255, 255, 255, 0.76);
  box-shadow: 0 14px 32px rgba(32, 63, 120, 0.06);
}

.rm-admin-pulse-grid span,
.rm-admin-pulse-grid strong,
.rm-admin-pulse-grid small {
  display: block;
}

.rm-admin-pulse-grid span {
  color: var(--rm-muted);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.rm-admin-pulse-grid strong {
  margin-top: 0.45rem;
  color: #315f95;
  font-size: clamp(1.8rem, 4vw, 2.45rem);
  letter-spacing: -0.04em;
  line-height: 1;
}

.rm-admin-pulse-grid small {
  margin-top: 0.55rem;
  color: var(--rm-muted);
}

.rm-admin-health-meter {
  display: grid;
  gap: 0.45rem;
}

.rm-admin-health-meter > div {
  overflow: hidden;
  height: 0.72rem;
  border-radius: 999px;
  background: rgba(69, 129, 189, 0.11);
}

.rm-admin-health-meter span {
  display: block;
  width: var(--rm-health, 0%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #4581bd, #78abd5, #b77ae9);
  box-shadow: 0 0 22px rgba(183, 122, 233, 0.3);
}

.rm-admin-health-meter small {
  color: var(--rm-muted);
}

.rm-admin-command-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rm-admin-command-card {
  display: grid;
  min-height: 8.5rem;
  padding: 1rem;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 0.8rem;
  border: 1px solid rgba(69, 129, 189, 0.12);
  border-radius: 1.15rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(247, 251, 255, 0.74)),
    rgba(255, 255, 255, 0.8);
  color: var(--rm-ink);
  box-shadow: 0 16px 34px rgba(32, 63, 120, 0.06);
  transition: transform var(--rm-transition), border-color var(--rm-transition), box-shadow var(--rm-transition);
}

.rm-admin-command-card:hover {
  transform: translateY(-2px);
  border-color: rgba(183, 122, 233, 0.28);
  box-shadow: 0 24px 54px rgba(69, 129, 189, 0.12);
  color: var(--rm-ink);
}

.rm-admin-command-card strong,
.rm-admin-command-card small {
  display: block;
}

.rm-admin-command-card small {
  margin-top: 0.22rem;
  color: var(--rm-muted);
  line-height: 1.45;
}

.rm-admin-command-card .badge {
  grid-column: 2;
  justify-self: start;
}

.rm-admin-mission {
  display: grid;
  grid-template-columns: minmax(18rem, 0.84fr) minmax(0, 1.55fr);
  gap: 1rem;
}

.rm-admin-mission-core,
.rm-admin-lane-card {
  border: 1px solid rgba(69, 129, 189, 0.13);
  border-radius: 1.35rem;
  background:
    radial-gradient(circle at 88% 0%, rgba(183, 122, 233, 0.14), transparent 15rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(247, 251, 255, 0.76));
  box-shadow: 0 18px 42px rgba(32, 63, 120, 0.08);
}

.rm-admin-mission-core {
  display: grid;
  min-height: 24rem;
  padding: clamp(1.25rem, 3vw, 1.65rem);
  align-content: start;
}

.rm-admin-score-ring {
  display: grid;
  width: min(13rem, 72vw);
  height: min(13rem, 72vw);
  margin-top: auto;
  place-items: center;
  align-content: center;
  justify-self: center;
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(255, 255, 255, 0.98) 0 56%, transparent 57%),
    conic-gradient(#b77ae9 var(--rm-score, 0%), rgba(69, 129, 189, 0.13) 0);
  box-shadow: inset 0 0 0 1px rgba(69, 129, 189, 0.08), 0 28px 64px rgba(69, 129, 189, 0.14);
  color: var(--rm-indigo-dark);
}

.rm-admin-score-ring strong,
.rm-admin-score-ring span {
  display: block;
  text-align: center;
}

.rm-admin-score-ring strong {
  font-size: clamp(2.2rem, 6vw, 3.45rem);
  letter-spacing: -0.06em;
  line-height: 1;
}

.rm-admin-score-ring span {
  margin-top: 0.28rem;
  color: var(--rm-muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.rm-admin-lane-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.rm-admin-lane-card {
  display: grid;
  min-height: 11.5rem;
  padding: 1rem;
  align-content: space-between;
}

.rm-admin-lane-card strong {
  display: block;
  margin-top: 0.75rem;
  color: #315f95;
  font-size: clamp(1.85rem, 4vw, 2.7rem);
  letter-spacing: -0.05em;
  line-height: 1;
}

.rm-admin-lane-card small {
  display: block;
  color: var(--rm-muted);
}

.rm-admin-lane-meter {
  overflow: hidden;
  height: 0.52rem;
  margin: 0.8rem 0 0.5rem;
  border-radius: 999px;
  background: rgba(69, 129, 189, 0.11);
}

.rm-admin-lane-meter span {
  display: block;
  width: var(--rm-lane, 0%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #4581bd, #b77ae9);
}

.rm-admin-focus-list {
  display: grid;
  gap: 0.72rem;
}

.rm-admin-focus-row {
  display: grid;
  min-height: 4.85rem;
  padding: 0.82rem 0.92rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  border: 1px solid rgba(217, 119, 6, 0.16);
  border-radius: 1rem;
  background:
    radial-gradient(circle at 100% 0%, rgba(217, 119, 6, 0.08), transparent 9rem),
    rgba(255, 255, 255, 0.74);
  color: var(--rm-ink);
  transition: transform var(--rm-transition), border-color var(--rm-transition), box-shadow var(--rm-transition);
}

.rm-admin-focus-row:hover {
  transform: translateY(-1px);
  border-color: rgba(183, 122, 233, 0.26);
  box-shadow: 0 16px 34px rgba(32, 63, 120, 0.08);
  color: var(--rm-ink);
}

.rm-admin-focus-row.is-calm {
  border-color: rgba(69, 129, 189, 0.12);
  background:
    radial-gradient(circle at 100% 0%, rgba(69, 129, 189, 0.08), transparent 9rem),
    rgba(255, 255, 255, 0.74);
}

.rm-admin-focus-score {
  display: grid;
  width: 2.8rem;
  height: 2.8rem;
  place-items: center;
  border-radius: 0.85rem;
  background: linear-gradient(135deg, rgba(69, 129, 189, 0.14), rgba(183, 122, 233, 0.13));
  color: var(--rm-indigo-dark);
  font-size: 0.95rem;
  font-weight: 900;
}

.rm-admin-focus-row strong,
.rm-admin-focus-row small {
  display: block;
}

.rm-admin-focus-row small {
  margin-top: 0.14rem;
  color: var(--rm-muted);
  line-height: 1.35;
}

.rm-mobile-nav.is-admin {
  width: min(calc(100% - 0.75rem), 39rem);
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.rm-mobile-nav.is-admin .rm-mobile-nav-link {
  font-size: 0.56rem;
}

@media (max-width: 991.98px) {
  .rm-admin-mission {
    grid-template-columns: 1fr;
  }

  .rm-admin-pulse-grid,
  .rm-admin-command-grid,
  .rm-admin-lane-grid {
    grid-template-columns: 1fr;
  }

  .rm-admin-section-pill {
    min-width: max-content;
  }
}

@media (max-width: 575.98px) {
  .rm-admin-focus-row {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .rm-admin-focus-row .badge {
    grid-column: 2;
    justify-self: start;
  }
}

/* Payment method selector
   --------------------------------------------------------------------------
   Selettore usato dal checkout sandbox e predisposto per i provider reali.
   Passa solo l'identificatore del metodo: i dati sensibili restano esterni. */
.rm-payment-methods {
  padding: clamp(1rem, 3vw, 1.35rem);
  border: 1px solid rgba(69, 129, 189, 0.12);
  border-radius: 1.35rem;
  background:
    radial-gradient(circle at 95% 0%, rgba(183, 122, 233, 0.11), transparent 16rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(247, 251, 255, 0.74));
  box-shadow: 0 18px 42px rgba(32, 63, 120, 0.07);
}

.rm-payment-method-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.rm-payment-method-card {
  position: relative;
  display: grid;
  min-height: 7.8rem;
  padding: 1rem;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 0.72rem;
  border: 1px solid rgba(69, 129, 189, 0.14);
  border-radius: 1.1rem;
  background: rgba(255, 255, 255, 0.8);
  box-shadow: 0 10px 24px rgba(32, 63, 120, 0.045);
  cursor: pointer;
  transition: transform var(--rm-transition), border-color var(--rm-transition), box-shadow var(--rm-transition), background-color var(--rm-transition);
}

.rm-payment-method-card:hover {
  transform: translateY(-1px);
  border-color: rgba(69, 129, 189, 0.25);
  box-shadow: 0 18px 38px rgba(69, 129, 189, 0.1);
}

.rm-payment-method-card.is-active {
  border-color: rgba(183, 122, 233, 0.55);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(248, 244, 255, 0.86)),
    #fff;
  box-shadow: 0 22px 48px rgba(69, 129, 189, 0.13), 0 0 0 4px rgba(183, 122, 233, 0.1);
}

.rm-payment-method-card .form-check-input {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  margin: 0;
}

.rm-payment-method-icon {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border-radius: 0.9rem;
  background: linear-gradient(135deg, rgba(69, 129, 189, 0.13), rgba(183, 122, 233, 0.12));
  color: #315f95;
  font-size: 1.18rem;
}

.rm-payment-method-card strong,
.rm-payment-method-card small {
  display: block;
}

.rm-payment-method-card strong {
  padding-right: 1.2rem;
}

.rm-payment-method-card small {
  margin-top: 0.22rem;
  color: var(--rm-muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.rm-payment-method-card em {
  grid-column: 2;
  justify-self: start;
  padding: 0.22rem 0.52rem;
  border-radius: 999px;
  background: rgba(69, 129, 189, 0.08);
  color: var(--rm-indigo-dark);
  font-size: 0.62rem;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* Account checkout flow
   --------------------------------------------------------------------------
   Un solo form progressivo mantiene piano, frequenza e metodo nello stesso
   contesto. Senza JavaScript i tre pannelli restano visibili e utilizzabili. */
.rm-checkout-flow {
  --rm-checkout-line: rgba(69, 129, 189, 0.14);
  position: relative;
}

.rm-checkout-flow [hidden] {
  display: none !important;
}

.rm-checkout-stepper {
  padding: 0.8rem;
  border: 1px solid var(--rm-checkout-line);
  border-radius: 1.35rem;
  background:
    radial-gradient(circle at 6% 0%, rgba(183, 122, 233, 0.12), transparent 15rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(247, 251, 255, 0.82));
  box-shadow: 0 18px 44px rgba(32, 63, 120, 0.07);
}

.rm-checkout-stepper ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.rm-checkout-stepper li {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 4.4rem;
  padding: 0.7rem 0.8rem;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.65rem;
  border: 1px solid transparent;
  border-radius: 1rem;
  color: var(--rm-muted);
  transition: color var(--rm-transition), border-color var(--rm-transition), background-color var(--rm-transition), box-shadow var(--rm-transition);
}

.rm-checkout-stepper li > span:last-child,
.rm-checkout-stepper li strong,
.rm-checkout-stepper li small {
  display: block;
  min-width: 0;
}

.rm-checkout-stepper li strong {
  color: inherit;
  font-size: 0.88rem;
}

.rm-checkout-stepper li small {
  margin-top: 0.12rem;
  overflow: hidden;
  font-size: 0.69rem;
  font-weight: 800;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rm-checkout-step-number {
  display: grid !important;
  width: 2.25rem;
  height: 2.25rem;
  place-items: center;
  border: 1px solid rgba(69, 129, 189, 0.18);
  border-radius: 0.78rem;
  background: rgba(255, 255, 255, 0.78);
  color: var(--rm-indigo-dark);
  box-shadow: 0 8px 20px rgba(32, 63, 120, 0.06);
  font-size: 0.78rem;
  font-weight: 900;
}

.rm-checkout-stepper li.is-active {
  border-color: rgba(69, 129, 189, 0.2);
  background: rgba(255, 255, 255, 0.9);
  color: var(--rm-indigo-dark);
  box-shadow: 0 12px 28px rgba(32, 63, 120, 0.08);
}

.rm-checkout-stepper li.is-active .rm-checkout-step-number {
  border-color: transparent;
  background: linear-gradient(135deg, #4581bd, #8d5cc8);
  color: #fff;
  box-shadow: 0 10px 24px rgba(69, 129, 189, 0.24);
}

.rm-checkout-stepper li.is-complete {
  color: #047857;
}

.rm-checkout-stepper li.is-complete .rm-checkout-step-number {
  border-color: rgba(5, 150, 105, 0.18);
  background: rgba(5, 150, 105, 0.1);
  color: #047857;
}

.rm-checkout-stepper li.is-skipped {
  color: #7c6b8f;
  opacity: 0.72;
}

.rm-checkout-panel {
  position: relative;
  padding: clamp(1rem, 2.7vw, 1.65rem);
  border: 1px solid var(--rm-checkout-line);
  border-radius: 1.45rem;
  background:
    radial-gradient(circle at 96% 0%, rgba(183, 122, 233, 0.09), transparent 18rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(247, 251, 255, 0.8));
  box-shadow: 0 24px 58px rgba(32, 63, 120, 0.09);
}

.rm-checkout-panel.rm-payment-methods {
  padding: clamp(1rem, 2.7vw, 1.65rem);
}

[data-checkout-nav] {
  display: none;
}

.rm-checkout-flow.is-enhanced [data-checkout-nav] {
  display: inline-flex;
}

.rm-checkout-step-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.rm-plan-choice-card {
  isolation: isolate;
  cursor: pointer;
}

.rm-plan-choice-card.is-selected {
  border-color: rgba(69, 129, 189, 0.62) !important;
  box-shadow: 0 0 0 4px rgba(69, 129, 189, 0.1), 0 26px 58px rgba(69, 129, 189, 0.15) !important;
  transform: translateY(-3px);
}

.rm-plan-choice-card.is-highlighted.is-selected {
  border-color: rgba(183, 122, 233, 0.68) !important;
  box-shadow: 0 0 0 4px rgba(183, 122, 233, 0.11), 0 26px 58px rgba(111, 77, 162, 0.17) !important;
}

.rm-plan-select-label {
  position: absolute;
  z-index: 3;
  inset: 0;
  border-radius: inherit;
  cursor: pointer;
}

.rm-plan-choice {
  position: absolute;
  z-index: 5;
  top: 0.92rem;
  left: 0.92rem;
  width: 1.15rem;
  height: 1.15rem;
  margin: 0;
  cursor: pointer;
}

.rm-plan-choice-card .rm-plan-kicker {
  margin-left: 1.65rem;
}

.rm-plan-choice-card .rm-plan-ribbon {
  z-index: 6;
  pointer-events: none;
}

.rm-plan-choice-status {
  position: relative;
  z-index: 4;
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  margin-top: auto;
  padding: 0.4rem 0.62rem;
  align-items: center;
  gap: 0.35rem;
  border-radius: 999px;
  background: rgba(69, 129, 189, 0.1);
  color: var(--rm-indigo-dark);
  font-size: 0.68rem;
  font-weight: 900;
  opacity: 0;
  transform: translateY(0.25rem);
  transition: opacity var(--rm-transition), transform var(--rm-transition);
}

.rm-plan-choice-card.is-selected .rm-plan-choice-status {
  opacity: 1;
  transform: translateY(0);
}

.rm-plan-choice-card:focus-within,
.rm-billing-cycle-card:focus-within,
.rm-payment-method-card:focus-within {
  outline: 3px solid rgba(69, 129, 189, 0.26);
  outline-offset: 3px;
}

.rm-billing-cycle-card input:focus-visible,
.rm-plan-choice:focus-visible,
.rm-payment-method-card input:focus-visible {
  outline: none;
  box-shadow: none;
}

.rm-payment-method-fieldset.is-disabled,
[data-payment-method-fieldset].is-disabled {
  opacity: 0.68;
}

.rm-checkout-review {
  overflow: hidden;
  border: 1px solid rgba(69, 129, 189, 0.13);
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 18px 40px rgba(32, 63, 120, 0.065);
}

.rm-checkout-review-head {
  display: grid;
  padding: 1rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  border-bottom: 1px solid rgba(69, 129, 189, 0.1);
  background: linear-gradient(135deg, rgba(69, 129, 189, 0.08), rgba(183, 122, 233, 0.075));
}

.rm-checkout-review-head > div > span,
.rm-checkout-review-head > div > strong {
  display: block;
}

.rm-checkout-review-head > div > span {
  color: var(--rm-muted);
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.rm-checkout-review-head > div > strong {
  margin-top: 0.1rem;
  color: var(--rm-indigo-dark);
  font-size: 1.12rem;
}

.rm-checkout-review-list {
  display: grid;
  padding: 0.35rem 1rem;
}

.rm-checkout-review-list > div {
  display: grid;
  padding: 0.78rem 0;
  grid-template-columns: minmax(7rem, 0.7fr) minmax(0, 1.3fr);
  align-items: baseline;
  gap: 0.75rem;
  border-bottom: 1px solid rgba(69, 129, 189, 0.085);
}

.rm-checkout-review-list > div:last-child {
  border-bottom: 0;
}

.rm-checkout-review-list dt {
  color: var(--rm-muted);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.rm-checkout-review-list dd {
  margin: 0;
  color: var(--rm-ink);
  font-size: 0.86rem;
  font-weight: 800;
  text-align: right;
}

.rm-checkout-review-list .is-total dd {
  color: var(--rm-indigo-dark);
  font-size: 1.25rem;
}

.rm-checkout-consequence {
  display: flex;
  margin: 0 1rem 1rem;
  padding: 0.75rem 0.82rem;
  align-items: flex-start;
  gap: 0.55rem;
  border: 1px solid rgba(69, 129, 189, 0.11);
  border-radius: 0.92rem;
  background: rgba(69, 129, 189, 0.055);
  color: var(--rm-indigo-dark);
  font-size: 0.76rem;
  font-weight: 750;
  line-height: 1.45;
}

.rm-checkout-consequence i {
  margin-top: 0.1rem;
  flex: 0 0 auto;
}

.rm-checkout-confirm {
  display: flex;
  padding: clamp(1rem, 2.5vw, 1.35rem);
  flex-direction: column;
  justify-content: center;
  border: 1px solid rgba(183, 122, 233, 0.17);
  border-radius: 1.25rem;
  background:
    radial-gradient(circle at 100% 0%, rgba(183, 122, 233, 0.14), transparent 13rem),
    linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(250, 246, 255, 0.82));
  box-shadow: 0 20px 46px rgba(111, 77, 162, 0.09);
}

.rm-checkout-confirm-icon {
  display: grid;
  width: 3rem;
  height: 3rem;
  margin-bottom: 0.85rem;
  place-items: center;
  border-radius: 0.95rem;
  background: linear-gradient(135deg, rgba(69, 129, 189, 0.14), rgba(183, 122, 233, 0.16));
  color: var(--rm-indigo-dark);
  font-size: 1.25rem;
}

.rm-checkout-confirm .btn:focus-visible,
.rm-checkout-step-actions .btn:focus-visible,
.rm-checkout-confirm a:focus-visible {
  outline: 3px solid rgba(69, 129, 189, 0.28);
  outline-offset: 3px;
}

@media (max-width: 767.98px) {
  .rm-checkout-stepper {
    padding: 0.55rem;
  }

  .rm-checkout-stepper li {
    min-height: 3.8rem;
    padding: 0.55rem 0.45rem;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 0.32rem;
    text-align: center;
  }

  .rm-checkout-stepper li small {
    display: none;
  }

  .rm-checkout-step-number {
    width: 2rem;
    height: 2rem;
  }

  .rm-checkout-panel {
    padding: 1rem;
    border-radius: 1.2rem;
  }

  .rm-checkout-step-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .rm-checkout-step-actions .btn {
    width: 100%;
  }

  .rm-checkout-review-head {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .rm-checkout-review-head > .badge {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .rm-checkout-review-list > div {
    grid-template-columns: 1fr;
    gap: 0.22rem;
  }

  .rm-checkout-review-list dd {
    text-align: left;
  }
}

/* Conferma provider ed esito del pagamento
   --------------------------------------------------------------------------
   Il provider è il terzo passaggio del percorso; l'esito rimane su una pagina
   dedicata, così informazioni importanti non dipendono da un toast temporaneo. */
.rm-checkout-steps {
  position: relative;
  display: grid;
  margin: 0;
  padding: 0.75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  list-style: none;
  border: 1px solid rgba(69, 129, 189, 0.13);
  border-radius: 1.3rem;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(247, 251, 255, 0.84));
  box-shadow: 0 18px 44px rgba(32, 63, 120, 0.07);
}

.rm-checkout-steps li {
  display: flex;
  min-width: 0;
  min-height: 3.7rem;
  padding: 0.65rem 0.75rem;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  border: 1px solid transparent;
  border-radius: 0.95rem;
  color: var(--rm-muted);
}

.rm-checkout-steps li > span {
  display: grid;
  width: 2rem;
  height: 2rem;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(69, 129, 189, 0.16);
  border-radius: 0.7rem;
  background: #fff;
  color: var(--rm-indigo-dark);
  font-size: 0.74rem;
  font-weight: 900;
}

.rm-checkout-steps li strong {
  overflow: hidden;
  font-size: 0.8rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rm-checkout-steps li.is-complete { color: #047857; }
.rm-checkout-steps li.is-complete > span { border-color: rgba(5, 150, 105, 0.18); background: rgba(5, 150, 105, 0.1); color: #047857; }
.rm-checkout-steps li.is-active { border-color: rgba(69, 129, 189, 0.2); background: rgba(255, 255, 255, 0.94); color: var(--rm-indigo-dark); box-shadow: 0 12px 28px rgba(32, 63, 120, 0.08); }
.rm-checkout-steps li.is-active > span { border-color: transparent; background: linear-gradient(135deg, #4581bd, #8d5cc8); color: #fff; }

.rm-order-summary,
.rm-result-summary {
  display: grid;
  border: 1px solid rgba(69, 129, 189, 0.11);
  border-radius: 1rem;
  background: rgba(248, 251, 255, 0.76);
}

.rm-order-summary > div,
.rm-result-summary > div {
  display: grid;
  padding: 0.78rem 0.9rem;
  grid-template-columns: minmax(7rem, 0.75fr) minmax(0, 1.25fr);
  align-items: baseline;
  gap: 0.75rem;
  border-bottom: 1px solid rgba(69, 129, 189, 0.09);
}

.rm-order-summary > div:last-child,
.rm-result-summary > div:last-child { border-bottom: 0; }
.rm-order-summary dt,
.rm-result-summary dt { color: var(--rm-muted); font-size: 0.68rem; font-weight: 900; letter-spacing: 0.05em; text-transform: uppercase; }
.rm-order-summary dd,
.rm-result-summary dd { min-width: 0; margin: 0; color: var(--rm-ink); font-size: 0.84rem; font-weight: 850; text-align: right; overflow-wrap: anywhere; }
.rm-result-summary code { color: var(--rm-indigo-dark); font-size: 0.68rem; }

.rm-payment-confirm-card { position: sticky; top: 1rem; }
.rm-payment-due { display: grid; padding: 1rem; border: 1px solid rgba(183, 122, 233, 0.2); border-radius: 1rem; background: linear-gradient(135deg, rgba(69, 129, 189, 0.09), rgba(183, 122, 233, 0.11)); }
.rm-payment-due span { color: var(--rm-muted); font-size: 0.67rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; }
.rm-payment-due strong { margin-top: 0.18rem; color: var(--rm-indigo-dark); font-size: clamp(1.8rem, 5vw, 2.45rem); line-height: 1; }
.rm-payment-due small { margin-top: 0.32rem; color: var(--rm-muted); font-weight: 750; }

.rm-confirm-effects,
.rm-result-effects { display: grid; margin: 0; padding: 0; gap: 0.72rem; list-style: none; }
.rm-confirm-effects li,
.rm-result-effects li { display: flex; align-items: flex-start; gap: 0.62rem; color: var(--rm-muted); font-size: 0.78rem; line-height: 1.45; }
.rm-confirm-effects i,
.rm-result-effects i { margin-top: 0.12rem; flex: 0 0 auto; color: var(--rm-indigo-dark); font-size: 1rem; }

.rm-sandbox-tools .accordion-item { overflow: hidden; border: 1px solid rgba(69, 129, 189, 0.12); border-radius: 1.1rem; background: rgba(255, 255, 255, 0.78); }
.rm-sandbox-tools .accordion-button { color: var(--rm-indigo-dark); font-size: 0.82rem; font-weight: 850; box-shadow: none; }
.rm-sandbox-tools .accordion-button:not(.collapsed) { background: rgba(69, 129, 189, 0.07); color: var(--rm-indigo-dark); }
.rm-sandbox-tools details summary { color: var(--rm-indigo-dark); cursor: pointer; }

.rm-checkout-result { max-width: 78rem; margin: 0 auto; }
.rm-result-hero { padding: clamp(1.4rem, 5vw, 3rem); border: 1px solid rgba(69, 129, 189, 0.12); border-radius: 1.6rem; background: radial-gradient(circle at 50% 0%, rgba(183, 122, 233, 0.15), transparent 18rem), linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 255, 0.82)); box-shadow: 0 26px 64px rgba(32, 63, 120, 0.1); }
.rm-result-hero .lead { max-width: 48rem; font-size: clamp(0.95rem, 2vw, 1.12rem); }
.rm-result-icon { display: grid; width: 5.2rem; height: 5.2rem; margin: 0 auto; place-items: center; border-radius: 1.55rem; background: linear-gradient(135deg, #4581bd, #b77ae9); color: #fff; box-shadow: 0 20px 42px rgba(69, 129, 189, 0.25); font-size: 2.2rem; }
.rm-checkout-result.is-success .rm-result-icon { background: linear-gradient(135deg, #059669, #4581bd); }
.rm-checkout-result.is-pending .rm-result-icon { background: linear-gradient(135deg, #d97706, #b77ae9); }
.rm-checkout-result.is-danger .rm-result-icon { background: linear-gradient(135deg, #dc3545, #8d5cc8); }
.rm-checkout-result.is-neutral .rm-result-icon { background: linear-gradient(135deg, #64748b, #4581bd); }
.rm-result-hero > .badge { padding: 0.45rem 0.75rem; background: rgba(69, 129, 189, 0.1); color: var(--rm-indigo-dark); }
.rm-checkout-result.is-success .rm-result-hero > .badge { background: rgba(5, 150, 105, 0.12); color: #047857; }
.rm-checkout-result.is-pending .rm-result-hero > .badge { background: rgba(217, 119, 6, 0.12); color: #a35408; }
.rm-checkout-result.is-danger .rm-result-hero > .badge { background: rgba(220, 53, 69, 0.1); color: #b42332; }

.rm-result-summary { margin: 1rem; }
.rm-result-effects li { padding: 0.7rem 0.78rem; border: 1px solid rgba(69, 129, 189, 0.1); border-radius: 0.9rem; background: rgba(248, 251, 255, 0.72); color: var(--rm-ink); }
.rm-checkout-result.is-success .rm-result-effects i { color: #059669; }
.rm-checkout-result.is-pending .rm-result-effects i { color: #d97706; }
.rm-result-features { padding: 0.9rem; border: 1px solid rgba(183, 122, 233, 0.16); border-radius: 1rem; background: linear-gradient(135deg, rgba(69, 129, 189, 0.06), rgba(183, 122, 233, 0.08)); }
.rm-result-features > span { display: block; color: var(--rm-muted); font-size: 0.65rem; font-weight: 900; letter-spacing: 0.07em; text-transform: uppercase; }
.rm-result-features > div { display: flex; margin-top: 0.65rem; flex-wrap: wrap; gap: 0.5rem; }
.rm-result-features em { display: inline-flex; padding: 0.35rem 0.55rem; align-items: center; gap: 0.3rem; border-radius: 999px; background: #fff; color: var(--rm-indigo-dark); font-size: 0.68rem; font-style: normal; font-weight: 850; box-shadow: 0 8px 18px rgba(32, 63, 120, 0.06); }

@media (max-width: 767.98px) {
  .rm-checkout-steps { padding: 0.5rem; gap: 0.35rem; }
  .rm-checkout-steps li { min-height: 3.25rem; padding: 0.45rem 0.25rem; flex-direction: column; gap: 0.25rem; text-align: center; }
  .rm-checkout-steps li > span { width: 1.75rem; height: 1.75rem; }
  .rm-checkout-steps li strong { font-size: 0.66rem; }
  .rm-order-summary > div,
  .rm-result-summary > div { grid-template-columns: 1fr; gap: 0.18rem; }
  .rm-order-summary dd,
  .rm-result-summary dd { text-align: left; }
  .rm-payment-confirm-card { position: static; }
  .rm-result-hero { border-radius: 1.25rem; }
  .rm-result-icon { width: 4.3rem; height: 4.3rem; border-radius: 1.25rem; font-size: 1.75rem; }
}

.rm-payment-rail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.7rem;
}

.rm-payment-rail-grid article {
  display: flex;
  min-height: 5.2rem;
  padding: 0.82rem;
  align-items: center;
  gap: 0.7rem;
  border: 1px solid rgba(69, 129, 189, 0.11);
  border-radius: 0.95rem;
  background: rgba(255, 255, 255, 0.66);
}

.rm-payment-rail-grid article > span {
  display: grid;
  width: 2.3rem;
  height: 2.3rem;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 0.72rem;
  background: linear-gradient(135deg, rgba(69, 129, 189, 0.12), rgba(183, 122, 233, 0.11));
  color: var(--rm-indigo-dark);
}

/* Checkout sandbox
   --------------------------------------------------------------------------
   Simulatore locale dei provider: permette di testare stati pagamento e
   attivazione piano senza chiamare API esterne né raccogliere dati sensibili. */
.rm-checkout-sandbox { position: relative; }
.rm-checkout-hero { position: relative; overflow: hidden; padding: clamp(1.35rem, 4vw, 2.2rem); border-radius: var(--rm-radius-lg); background: linear-gradient(135deg, #203f78, #4581bd 52%, #b77ae9); box-shadow: 0 26px 70px rgba(32, 63, 120, 0.22); }
.rm-checkout-hero::after { position: absolute; right: -4rem; bottom: -5rem; width: 17rem; height: 17rem; border-radius: 50%; background: rgba(255, 255, 255, 0.12); content: ""; pointer-events: none; }
.rm-checkout-provider-card { position: relative; z-index: 1; display: grid; padding: 1rem; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0.85rem; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 1.25rem; background: rgba(255, 255, 255, 0.14); color: #fff; backdrop-filter: blur(14px); }
.rm-checkout-provider-icon { display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: 1rem; background: rgba(255, 255, 255, 0.18); font-size: 1.35rem; }
.rm-checkout-provider-card span, .rm-checkout-provider-card strong, .rm-checkout-provider-card small { display: block; }
.rm-checkout-provider-card span { color: rgba(255, 255, 255, 0.68); font-size: 0.72rem; font-weight: 900; letter-spacing: 0.07em; text-transform: uppercase; }
.rm-checkout-provider-card strong { color: #fff; font-size: 1.05rem; }
.rm-checkout-provider-card small { color: rgba(255, 255, 255, 0.75); font-size: 0.78rem; }
.rm-checkout-provider-card em { padding: 0.25rem 0.55rem; border-radius: 999px; background: rgba(255, 255, 255, 0.18); color: #fff; font-size: 0.62rem; font-style: normal; font-weight: 900; letter-spacing: 0.06em; text-transform: uppercase; }
.rm-checkout-provider-card.is-free { background: rgba(255, 255, 255, 0.18); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08); }
.rm-checkout-total { display: grid; margin: 1.15rem 0; padding: 1rem; border: 1px solid rgba(69, 129, 189, 0.13); border-radius: 1.1rem; background: linear-gradient(135deg, rgba(69, 129, 189, 0.08), rgba(183, 122, 233, 0.08)); }
.rm-checkout-total span { color: var(--rm-muted); font-size: 0.72rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; }
.rm-checkout-total strong { margin-top: 0.2rem; color: var(--rm-indigo-dark); font-size: clamp(2rem, 5vw, 2.75rem); letter-spacing: -0.03em; line-height: 1; }
.rm-checkout-total small { margin-left: 0.35rem; color: var(--rm-muted); font-size: 0.9rem; font-weight: 800; letter-spacing: 0; }
.rm-sandbox-param-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.rm-sandbox-param { position: relative; min-width: 0; padding: 0.85rem 0.95rem; border: 1px solid rgba(69, 129, 189, 0.12); border-radius: 1rem; background: rgba(248, 251, 255, 0.78); }
.rm-sandbox-param span, .rm-sandbox-param strong { display: block; }
.rm-sandbox-param span { color: var(--rm-muted); font-size: 0.68rem; font-weight: 900; letter-spacing: 0.06em; text-transform: uppercase; }
.rm-sandbox-param strong { overflow: hidden; margin-top: 0.25rem; color: var(--rm-indigo-dark); font-size: 0.84rem; text-overflow: ellipsis; white-space: nowrap; }
.rm-sandbox-param em { position: absolute; top: 0.6rem; right: 0.65rem; padding: 0.12rem 0.38rem; border-radius: 999px; background: rgba(217, 119, 6, 0.1); color: #a35408; font-size: 0.56rem; font-style: normal; font-weight: 900; letter-spacing: 0.04em; text-transform: uppercase; }
.rm-sandbox-outcomes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.rm-sandbox-outcomes.is-free { grid-template-columns: 1fr; }
.rm-sandbox-outcome-card { display: grid; min-height: 7rem; padding: 0.95rem; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 0.75rem; border: 1px solid rgba(69, 129, 189, 0.12); border-radius: 1rem; background: rgba(255, 255, 255, 0.78); box-shadow: 0 12px 28px rgba(32, 63, 120, 0.05); }
.rm-sandbox-outcome-card button { grid-column: 1 / -1; justify-self: stretch; }
.rm-sandbox-outcome-icon { display: grid; width: 2.55rem; height: 2.55rem; place-items: center; border-radius: 0.85rem; background: linear-gradient(135deg, rgba(69, 129, 189, 0.12), rgba(183, 122, 233, 0.12)); color: var(--rm-indigo-dark); font-size: 1.1rem; }
.rm-sandbox-outcome-card strong, .rm-sandbox-outcome-card small { display: block; }
.rm-sandbox-outcome-card strong { color: var(--rm-ink); font-size: 0.92rem; line-height: 1.25; }
.rm-sandbox-outcome-card small { margin-top: 0.22rem; color: var(--rm-muted); font-size: 0.76rem; line-height: 1.32; }
.rm-free-checkout-note { display: flex; padding: 1rem; align-items: flex-start; gap: 0.85rem; border: 1px solid rgba(5, 150, 105, 0.14); border-radius: 1rem; background: linear-gradient(135deg, rgba(5, 150, 105, 0.08), rgba(69, 129, 189, 0.06)); }
.rm-free-checkout-note > i { display: grid; width: 2.75rem; height: 2.75rem; flex: 0 0 auto; place-items: center; border-radius: 0.9rem; background: rgba(5, 150, 105, 0.12); color: #047857; font-size: 1.2rem; }
.rm-free-checkout-note strong, .rm-free-checkout-note span { display: block; }.rm-free-checkout-note strong { color: var(--rm-ink); }.rm-free-checkout-note span { margin-top: 0.18rem; color: var(--rm-muted); font-size: 0.8rem; line-height: 1.45; }

.rm-payment-rail-grid strong,
.rm-payment-rail-grid small {
  display: block;
}

.rm-payment-rail-grid small {
  color: var(--rm-muted);
  font-size: 0.74rem;
  line-height: 1.3;
}

@media (max-width: 1199.98px) {
  .rm-payment-method-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rm-payment-rail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .rm-payment-method-grid,
  .rm-payment-rail-grid,
  .rm-sandbox-param-grid,
  .rm-sandbox-outcomes {
    grid-template-columns: 1fr;
  }
}

/* Tipologie tavolo: editor premium e coerente con la mappa visuale. */
.rm-table-types-card {
  padding: 1rem;
  border: 1px solid rgba(69, 129, 189, 0.14);
  border-radius: 1.25rem;
  background:
    radial-gradient(circle at 8% 0%, rgba(183, 122, 233, 0.13), transparent 32%),
    linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(247, 251, 255, 0.76));
  box-shadow: 0 18px 42px rgba(32, 63, 120, 0.08);
}

.rm-table-types-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.85rem;
}

.rm-table-types-heading .rm-icon-box {
  background: linear-gradient(135deg, rgba(183, 122, 233, 0.18), rgba(69, 129, 189, 0.14));
  color: #315f95;
}

.rm-table-types-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.55rem;
}

.rm-table-types-hints {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.9rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(69, 129, 189, 0.1);
}

.rm-table-types-hints span {
  display: inline-flex;
  padding: 0.34rem 0.62rem;
  align-items: center;
  gap: 0.36rem;
  border: 1px solid rgba(69, 129, 189, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.68);
  color: #496d98;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.rm-table-types-hints i {
  color: #8f5dcc;
  font-size: 0.86rem;
}

.rm-table-types {
  gap: 0.78rem;
}

.rm-table-type-row {
  grid-template-columns: minmax(13rem, 1.35fr) minmax(5.2rem, 0.44fr) minmax(5.2rem, 0.44fr) minmax(9rem, 0.78fr) minmax(18rem, 1.25fr);
  padding: 0.98rem;
  align-items: stretch;
  gap: 0.72rem;
  border: 1px solid rgba(69, 129, 189, 0.13);
  border-radius: 1.15rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(247, 251, 255, 0.82)),
    #fff;
  box-shadow: 0 16px 34px rgba(32, 63, 120, 0.07);
  transition: transform var(--rm-transition), border-color var(--rm-transition), box-shadow var(--rm-transition);
}

.rm-table-type-row:hover {
  transform: translateY(-1px);
  border-color: rgba(183, 122, 233, 0.28);
  box-shadow: 0 22px 46px rgba(69, 129, 189, 0.1);
}

.rm-table-field {
  display: grid;
  min-width: 0;
  margin: 0;
  align-content: end;
  gap: 0.36rem;
}

.rm-table-field > .rm-table-field-label {
  display: inline-flex !important;
  margin: 0 !important;
  align-items: center;
  gap: 0.34rem;
  color: #58769d;
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.07em;
  line-height: 1.15;
  text-transform: uppercase;
  white-space: nowrap;
}

.rm-table-field-label i {
  color: #8f5dcc;
  font-size: 0.85rem;
}

.rm-table-field .form-control,
.rm-table-field .form-select {
  min-height: 2.75rem;
  border-color: rgba(69, 129, 189, 0.14);
  border-radius: 0.82rem;
  background-color: rgba(255, 255, 255, 0.9);
  color: var(--rm-ink);
  font-weight: 750;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

.rm-table-field .form-control:focus,
.rm-table-field .form-select:focus {
  border-color: rgba(183, 122, 233, 0.54);
  box-shadow: 0 0 0 0.2rem rgba(183, 122, 233, 0.12);
}

.rm-table-row-actions {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  align-items: stretch;
  gap: 0.5rem;
}

.rm-table-toggle {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 2.75rem;
  margin: 0;
  padding: 0.48rem 0.55rem;
  align-items: center;
  gap: 0.48rem;
  overflow: hidden;
  border: 1px solid rgba(69, 129, 189, 0.12);
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.72);
  cursor: pointer;
  transition: transform var(--rm-transition), border-color var(--rm-transition), box-shadow var(--rm-transition), background-color var(--rm-transition);
}

.rm-table-toggle:hover {
  transform: translateY(-1px);
  border-color: rgba(69, 129, 189, 0.24);
  box-shadow: 0 12px 26px rgba(32, 63, 120, 0.08);
}

.rm-table-toggle .form-check-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.rm-table-toggle-icon {
  display: grid !important;
  width: 1.8rem;
  height: 1.8rem;
  flex: 0 0 auto;
  margin: 0 !important;
  place-items: center;
  border-radius: 0.58rem;
  background: linear-gradient(135deg, rgba(69, 129, 189, 0.12), rgba(183, 122, 233, 0.11));
  color: #315f95;
  font-size: 0.86rem;
}

.rm-table-toggle > span:last-child {
  display: grid !important;
  min-width: 0;
  margin: 0 !important;
  gap: 0.04rem;
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
}

.rm-table-toggle strong,
.rm-table-toggle small {
  display: block;
  overflow: hidden;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rm-table-toggle strong {
  color: var(--rm-ink);
  font-size: 0.72rem;
  font-weight: 850;
}

.rm-table-toggle small {
  color: var(--rm-muted);
  font-size: 0.6rem;
  font-weight: 750;
}

.rm-table-toggle:has(.form-check-input:checked) {
  border-color: rgba(183, 122, 233, 0.52);
  background:
    linear-gradient(145deg, rgba(183, 122, 233, 0.13), rgba(69, 129, 189, 0.08)),
    rgba(255, 255, 255, 0.86);
  box-shadow: 0 0 0 3px rgba(183, 122, 233, 0.1);
}

.rm-table-toggle:has(.form-check-input:checked)::after {
  content: "";
  position: absolute;
  top: 0.42rem;
  right: 0.42rem;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: #8f5dcc;
  box-shadow: 0 0 0 3px rgba(183, 122, 233, 0.13);
}

.rm-table-toggle:has(.form-check-input:checked) .rm-table-toggle-icon {
  background: linear-gradient(135deg, #b77ae9, #4581bd);
  color: #fff;
}

.rm-table-toggle:focus-within {
  border-color: rgba(69, 129, 189, 0.46);
  box-shadow: 0 0 0 0.2rem rgba(69, 129, 189, 0.1);
}

.rm-table-remove {
  display: inline-flex;
  min-height: 2.75rem;
  margin: 0;
  padding: 0.38rem 0.52rem !important;
  align-items: center;
  justify-content: center;
  gap: 0.34rem;
  border-radius: 0.76rem;
  font-size: 0.7rem;
  font-weight: 850;
  line-height: 1;
}

.rm-table-remove i {
  font-size: 0.94rem;
}

.rm-table-map-editor .rm-table-type-row {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 0.78rem;
  gap: 0.62rem;
  border-radius: 1rem;
}

.rm-table-map-editor .rm-table-field-name,
.rm-table-map-editor .rm-table-row-actions {
  grid-column: 1 / -1;
}

.rm-table-map-editor .rm-table-row-actions {
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  justify-content: stretch;
  gap: 0.5rem !important;
}

.rm-table-map-editor .rm-table-toggle {
  min-height: 2.55rem;
}

.rm-table-map-editor .rm-table-remove {
  margin-left: 0;
}

@media (max-width: 1199.98px) {
  .rm-table-type-row {
    grid-template-columns: minmax(12rem, 1fr) repeat(2, minmax(5rem, 0.45fr)) minmax(8rem, 0.7fr);
  }

  .rm-table-row-actions {
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 12rem)) auto;
    justify-content: start;
  }
}

@media (max-width: 767.98px) {
  .rm-table-types-heading {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: flex-start;
  }

  .rm-table-types-actions {
    grid-column: 1 / -1;
    width: 100%;
    justify-content: stretch;
  }

  .rm-table-types-actions .btn {
    flex: 1 1 9rem;
  }

  .rm-table-types-hints span {
    flex: 1 1 8.5rem;
    justify-content: center;
  }

  .rm-table-type-row,
  .rm-table-map-editor .rm-table-type-row {
    grid-template-columns: 1fr;
    padding: 0.82rem;
  }

  .rm-table-row-actions,
  .rm-table-map-editor .rm-table-row-actions {
    grid-template-columns: 1fr;
  }

  .rm-table-remove {
    justify-content: flex-start;
  }
}

@supports (content-visibility: auto) {
  .rm-section,
  .rm-footer,
  .rm-dashboard-content > .rm-panel {
    content-visibility: auto;
    contain-intrinsic-size: auto 620px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
