/* globale Primärfarbe, falls du sie anderswo brauchst */
:root {
  --bs-primary: #17a2b8;
  --bs-primary-rgb: 23, 162, 184;
  --toolbox-primary-dark: #148699;
  --toolbox-surface-soft: #f2f8fa;
  --toolbox-heading: #183343;
  --toolbox-border: #d9e5e9;
}

/* Compact metadata for AI-assisted input and output. */
.ai-notice {
  display: flex;
  align-items: flex-start;
  gap: .625rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: .625rem .75rem;
  border-left: 3px solid;
  border-radius: .375rem;
  font-size: .875rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.ai-notice--before {
  border-left-color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), .07);
}
.ai-notice--result {
  border-left-color: var(--toolbox-border);
  background: rgba(var(--bs-secondary-rgb), .035);
}
.ai-notice__icon {
  display: inline-flex;
  flex: 0 0 1rem;
  width: 1rem;
  height: 1rem;
  margin-top: .125rem;
  color: var(--toolbox-primary-dark);
}
.ai-notice--result .ai-notice__icon { color: var(--bs-secondary-color); }
.ai-notice__icon svg { display: block; width: 100%; height: 100%; }
.ai-notice__content { flex: 1 1 auto; min-width: 0; }
.ai-notice__title {
  margin: 0 0 .125rem;
  color: var(--bs-body-color);
  font-size: inherit;
  font-weight: 600;
}
.ai-notice__text { margin: 0; color: var(--bs-secondary-color); }
.ai-notice__text a { color: var(--toolbox-primary-dark); text-decoration: underline; text-underline-offset: .12em; }
.ai-notice__text a:focus-visible {
  border-radius: .125rem;
  outline: .15rem solid rgba(var(--bs-primary-rgb), .35);
  outline-offset: .15rem;
}

/* Public registration */
.register-page {
  padding: 2rem 0 3rem;
}

.register-page__grid {
  display: grid;
  gap: 2rem;
  margin: 0 auto;
  max-width: 1180px;
}

.register-intro {
  align-self: start;
  padding: .5rem 0;
}

.register-intro__eyebrow {
  color: var(--bs-primary);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .08em;
  margin-bottom: .75rem;
  text-transform: uppercase;
}

.register-intro__heading {
  color: var(--toolbox-heading);
  font-size: clamp(2rem, 4vw, 3.25rem);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.08;
  margin-bottom: 1.25rem;
  max-width: 580px;
}

.register-intro__heading span {
  color: var(--bs-primary);
  display: block;
}

.register-intro__text {
  color: #526773;
  font-size: 1.05rem;
  line-height: 1.65;
  max-width: 560px;
}

.register-benefits {
  display: grid;
  gap: .8rem;
  list-style: none;
  margin: 1.75rem 0 0;
  padding: 0;
}

.register-benefits li {
  align-items: center;
  color: var(--toolbox-heading);
  display: flex;
  font-weight: 600;
  gap: .75rem;
}

.register-benefits__check {
  align-items: center;
  background: rgba(var(--bs-primary-rgb), .12);
  border-radius: 50%;
  color: var(--toolbox-primary-dark);
  display: inline-flex;
  flex: 0 0 1.6rem;
  font-size: .9rem;
  height: 1.6rem;
  justify-content: center;
}

.register-foundation {
  background: var(--toolbox-surface-soft);
  border: 1px solid var(--toolbox-border);
  border-radius: .9rem;
  margin-top: 2.25rem;
  max-width: 460px;
  padding: 1.15rem 1.25rem;
}

.register-foundation__title { color: var(--toolbox-heading); font-weight: 700; margin: 0 0 .8rem; }
.register-foundation__steps { color: #526773; display: flex; font-size: .85rem; justify-content: space-between; }
.register-foundation__progress { background: #dbe9ed; border-radius: 1rem; height: .35rem; margin-top: .75rem; overflow: hidden; }
.register-foundation__progress span { background: var(--bs-primary); border-radius: inherit; display: block; height: 100%; width: 68%; }

.register-card {
  background: #fff;
  border: 1px solid var(--toolbox-border);
  border-radius: 1rem;
  box-shadow: 0 .75rem 2.25rem rgba(24, 51, 67, .08);
  max-width: 580px;
  padding: clamp(1.25rem, 4vw, 2.25rem);
  width: 100%;
}

.register-card__header { margin-bottom: 1.5rem; }
.register-card__header h1 { color: var(--toolbox-heading); font-size: clamp(1.65rem, 3vw, 2rem); margin-bottom: .35rem; }
.register-card__header p { color: #6c7e87; margin: 0; }
.register-card .alert { margin: 0 0 1.25rem; }
.register-form { display: grid; gap: 1.1rem; }
.register-form__field .form-label { color: var(--toolbox-heading); font-weight: 600; margin-bottom: .4rem; }
.register-form__optional { color: #75868e; font-size: .8rem; font-weight: 400; margin-left: .25rem; }
.register-card .form-control { min-height: 2.85rem; }
.register-card .form-control:focus,
.register-card .form-check-input:focus,
.register-password__toggle:focus-visible { border-color: var(--bs-primary); box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .2); outline: 0; }

.register-password { position: relative; }
.register-password .form-control { padding-right: 6.5rem; }
.register-password__toggle {
  background: transparent;
  border: 0;
  border-radius: .3rem;
  color: var(--toolbox-primary-dark);
  font-size: .82rem;
  font-weight: 600;
  padding: .35rem .45rem;
  position: absolute;
  right: .45rem;
  top: 50%;
  transform: translateY(-50%);
}

.register-legal {
  background: var(--toolbox-surface-soft);
  border: 0;
  border-radius: .65rem;
  display: grid;
  gap: .9rem;
  margin: .2rem 0 0;
  padding: 1rem;
}

.register-legal legend { color: #526773; float: none; font-size: .78rem; font-weight: 700; letter-spacing: .04em; margin-bottom: .1rem; text-transform: uppercase; }
.register-legal .form-check { margin: 0; padding-left: 1.75rem; }
.register-legal .form-check-label { color: #3f535e; font-size: .9rem; line-height: 1.5; }
.register-form__submit { min-height: 3rem; width: 100%; }
.register-form__doi { color: #6c7e87; font-size: .85rem; margin: -.35rem 0 0; text-align: center; }
.register-card__login { border-top: 1px solid var(--toolbox-border); font-size: .92rem; margin: 1.25rem 0 0; padding-top: 1.1rem; text-align: center; }
.register-card__login a { font-weight: 600; }

@media (min-width: 992px) {
  .register-page { padding: 3rem 0 4.5rem; }
  .register-page__grid { align-items: start; gap: clamp(3rem, 7vw, 6rem); grid-template-columns: minmax(0, 45fr) minmax(480px, 55fr); }
  .register-intro { padding-top: 2.25rem; }
  .register-card { justify-self: end; }
}

@media (max-width: 991.98px) {
  .register-page__grid { justify-items: center; }
  .register-intro { width: min(100%, 580px); }
}

@media (max-width: 575.98px) {
  .register-page { padding: .5rem 0 1.5rem; }
  .register-page__grid { gap: 1.5rem; }
  .register-intro__text { font-size: 1rem; }
  .register-foundation { display: none; }
  .register-card { border-radius: .75rem; box-shadow: none; }
  .register-legal { padding: .85rem; }
}

/* Buttons in BS 5.0.2 wirklich überschreiben */
.btn-primary {
  background-color: #17a2b8 !important;
  border-color: #17a2b8 !important;
  color: #fff;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary:active:focus {
  background-color: #148699 !important;
  border-color: #148699 !important;
  color: #fff;
}

/* Outline-Variante */
.btn-outline-primary {
  color: #17a2b8 !important;
  border-color: #17a2b8 !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
  background-color: #17a2b8 !important;
  border-color: #17a2b8 !important;
  color: #fff;
}

a {
  color: #17a2b8;
  text-decoration: none;
}

a:hover,
a:focus,
a:active {
  color: #148699;
  text-decoration: underline;
}

/* Danger, Secondary etc. analog */

/* Geschäftsideen Explorer / Master-Detail-Prototyp */
.idea-explorer .tool-shell {
  min-height: 640px;
}

.idea-explorer .master-card {
  border: 1px solid #dee2e6;
  border-radius: .75rem;
  background: #fff;
  padding: 1rem;
  text-decoration: none;
  color: inherit;
  display: block;
  overflow: hidden;
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.idea-explorer .master-card:hover,
.idea-explorer .master-card:focus {
  border-color: #17a2b8;
  box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
  color: inherit;
  text-decoration: none;
}

.idea-explorer .master-card.active {
  border-color: #17a2b8;
  background: #e9f7fa;
}

.idea-explorer .master-card-add {
  border-color: #17a2b8;
}

.idea-explorer .status-dot {
  width: .5rem;
  height: .5rem;
  border-radius: 50%;
  background: #adb5bd;
  flex-shrink: 0;
}

.idea-explorer .status-dot.complete {
  background: #198754;
}

.idea-explorer .status-dot.draft {
  background: #ffc107;
}

.idea-explorer .status-dot.archived {
  background: #6c757d;
}

.idea-explorer .detail-panel {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}

.idea-explorer .info-card {
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: .75rem;
  margin-bottom: .75rem;
  overflow: visible;
}

.idea-explorer .info-card-body {
  padding: 1.5rem;
}

.idea-explorer .detail-main-card {
  min-height: 100%;
}

.idea-explorer .detail-main-card > .info-card-body {
  padding: 1.5rem 1.6rem;
}

.idea-explorer .detail-section {
  border: 0;
  border-radius: 0;
  background: transparent;
  margin: 0;
  padding: 1.35rem 0 0;
}

.idea-explorer .detail-section + .detail-section {
  border-top: 1px solid #e9ecef;
  margin-top: 1.35rem;
}

.idea-explorer .detail-summary-section {
  padding-top: 0;
}

.idea-explorer .detail-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.idea-explorer .detail-title {
  line-height: 1.25;
}

.idea-explorer .detail-meta {
  margin-top: .45rem;
  font-size: .875rem;
  color: #6c757d;
}

.idea-explorer .detail-progress {
  max-width: 100%;
}

.idea-explorer .detail-section-title {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 .75rem;
}

.idea-explorer .detail-workflow-hint {
  margin-top: .75rem;
  font-size: .8125rem;
  color: #6c757d;
}

.idea-explorer .progress {
  height: .75rem;
}

.idea-explorer .progress-bar {
  background-color: #17a2b8;
}

.idea-explorer .idea-intro-icon {
  width: 3rem;
  height: 3rem;
  border-radius: .75rem;
  background: #e9f7fa;
  color: #17a2b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  flex: 0 0 auto;
}

.idea-explorer .relation-tree {
  font-size: .95rem;
}

.idea-explorer .relation-node {
  display: flex;
  align-items: center;
  gap: .4rem;
  padding: .35rem .55rem;
  border: 1px solid #dee2e6;
  border-radius: .5rem;
  background: #fff;
  margin-bottom: .4rem;
}

.idea-explorer .relation-node.root {
  background: #e9f7fa;
  border-color: #17a2b8;
}

.idea-explorer .relation-branch {
  margin-left: 1rem;
  padding-left: 1rem;
  border-left: 2px solid #dee2e6;
}

.idea-explorer .relation-children {
  margin-left: 1.25rem;
  padding-left: 1rem;
  border-left: 2px dashed #dee2e6;
}

.idea-explorer .relation-icon {
  width: 1.4rem;
  display: inline-flex;
  justify-content: center;
  flex: 0 0 auto;
}

.idea-explorer aside,
.idea-explorer aside .d-grid,
.idea-explorer .master-card {
  min-width: 0;
}

.idea-explorer .master-card strong.text-truncate {
  max-width: 100%;
}

.idea-explorer .master-card .d-flex {
  min-width: 0;
}

.idea-explorer .master-card .min-w-0 {
  min-width: 0;
  overflow: hidden;
}

.idea-explorer .min-w-0 {
  min-width: 0;
}

@media (max-width: 767.98px) {
  .idea-explorer .detail-panel {
    margin-top: 1rem;
  }

  .idea-explorer .detail-header {
    flex-direction: column;
  }
}
.upgrade-hero { max-width: 58rem; }
.upgrade-support-box { display: flex; align-items: flex-start; gap: 1rem; padding: 1.5rem; border: 1px solid rgba(var(--bs-primary-rgb), .16); border-radius: .75rem; background: rgba(var(--bs-info-rgb), .08); }
.upgrade-support-icon, .upgrade-benefit-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; color: var(--bs-primary); }
.upgrade-support-icon { width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--bs-body-bg); font-size: 1.2rem; }
.upgrade-benefit-card { border-color: var(--bs-border-color); box-shadow: none; }
.upgrade-benefit-card .card-body { padding: 1.25rem; }
.upgrade-benefit-icon { width: 2rem; height: 2rem; border-radius: .5rem; background: rgba(var(--bs-primary-rgb), .1); font-size: 1rem; }
.upgrade-benefit-card li + li { margin-top: .35rem; }
.upgrade-details-accordion .accordion-button:focus-visible { outline: .2rem solid rgba(var(--bs-primary-rgb), .35); outline-offset: -.2rem; box-shadow: none; }
.upgrade-plan-card { cursor: pointer; border-width: 2px; transition: border-color .15s ease, box-shadow .15s ease; }
.upgrade-plan-card:hover { border-color: var(--bs-primary); }
.upgrade-plan-card:has(.form-check-input:checked) { border-color: var(--bs-primary); box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .18) !important; }
.upgrade-plan-card:has(.form-check-input:focus-visible) { outline: .2rem solid rgba(var(--bs-primary-rgb), .35); outline-offset: .15rem; }
.selected-plan-label { display: none; margin-left: .75rem; }
.upgrade-plan-card:has(.form-check-input:checked) .selected-plan-label { display: inline; }
.upgrade-price { font-size: clamp(1.55rem, 4vw, 2rem); white-space: nowrap; }
.upgrade-trust { border-left: .25rem solid var(--bs-primary); padding: .75rem 1rem; background: var(--bs-light); }
.quota-table th:first-child { min-width: 12rem; }
.upgrade-process-hint { max-width: 58rem; }
.upgrade-progress-desktop { gap: 0; }
.upgrade-progress-step { position: relative; flex: 1 1 0; min-width: 0; }
.upgrade-progress-step:not(:last-child)::after { content: ""; position: absolute; top: 1.05rem; left: calc(50% + 1.25rem); right: calc(-50% + 1.25rem); border-top: 2px solid var(--bs-border-color); z-index: 0; }
.upgrade-progress-step.is-complete:not(:last-child)::after { border-color: var(--bs-primary); }
.upgrade-progress-content { position: relative; z-index: 1; display: flex; align-items: flex-start; gap: .65rem; padding: .25rem .4rem; color: var(--bs-secondary-color); text-decoration: none; }
.upgrade-progress-content:focus-visible { outline: .2rem solid rgba(var(--bs-primary-rgb), .35); outline-offset: .15rem; border-radius: .25rem; }
.upgrade-progress-marker { display: inline-flex; flex: 0 0 2rem; width: 2rem; height: 2rem; align-items: center; justify-content: center; border: 2px solid var(--bs-border-color); border-radius: 50%; background: var(--bs-body-bg); font-weight: 600; }
.upgrade-progress-state, .upgrade-progress-label { display: block; overflow-wrap: anywhere; }
.upgrade-progress-state { font-size: .75rem; }
.upgrade-progress-label { font-weight: 600; color: var(--bs-secondary-color); }
.upgrade-progress-step.is-current .upgrade-progress-marker { border-color: var(--bs-primary); background: var(--bs-primary); color: var(--bs-white); }
.upgrade-progress-step.is-current .upgrade-progress-label { color: var(--bs-body-color); }
.upgrade-progress-step.is-complete .upgrade-progress-marker { border-color: var(--bs-primary); color: var(--bs-primary); }
.upgrade-progress-step.is-complete a:hover .upgrade-progress-label { color: var(--bs-primary); text-decoration: underline; }
.upgrade-progress-mobile .progress { height: .45rem; }
.billing-profile-card { max-width: 58rem; }
.billing-form-section { min-width: 0; padding: 0 0 1rem; margin: 0 0 1.5rem; border: 0; border-bottom: 1px solid var(--bs-border-color); }
.billing-form-section legend { float: none; width: auto; margin-bottom: .25rem; font-size: 1.25rem; font-weight: 600; }
.billing-form-section .form-text, .billing-form-section .invalid-feedback, .billing-error-summary { overflow-wrap: anywhere; }
.billing-country-fixed { background-color: var(--bs-secondary-bg); cursor: default; }
.billing-privacy-note { max-width: 46rem; }
@media (max-width: 575.98px) {
  .upgrade-offer { padding-left: .5rem; padding-right: .5rem; }
  .upgrade-support-box { padding: 1.25rem; }
  .upgrade-support-icon { display: none; }
  .upgrade-benefit-card .card-body { padding: 1.25rem; }
  .upgrade-details-accordion .accordion-button, .upgrade-details-accordion .accordion-body { padding: 1rem; }
  .quota-table { font-size: .875rem; }
  .quota-table th:first-child { min-width: 9rem; }
  .billing-profile-card .card-body { padding: 1rem; }
  .billing-form-actions .btn { width: 100%; min-height: 2.75rem; }
}
.upgrade-checkout { max-width: 72rem; }
.upgrade-price-card { border-color: rgba(var(--bs-primary-rgb), .45); }
.upgrade-checkout-price { color: var(--bs-primary); font-size: clamp(1.6rem, 4vw, 2.25rem); font-weight: 700; line-height: 1.2; overflow-wrap: anywhere; }
.upgrade-order-final { border-width: 2px; border-color: var(--bs-primary); }
.upgrade-order-button { min-height: 3rem; }
@media (max-width: 575.98px) {
  .upgrade-checkout .card-body { padding: 1rem; }
  .upgrade-checkout .card .btn-sm { min-height: 2.75rem; display: inline-flex; align-items: center; }
  .upgrade-order-button { width: 100%; }
}
/* Upgrade return status */
.upgrade-success-card { max-width: 48rem; }
.upgrade-success .badge { white-space: normal; text-align: left; }
@media (max-width: 575.98px) { .upgrade-success-actions > *, .upgrade-success-actions form { width: 100%; } }
.billing-price { white-space: normal; }
.billing-cancel-page { max-width: 920px; }
@media (max-width: 575.98px) { .billing-actions .btn, .billing-cancel-page form .btn { width: 100%; } }

/* Shared progress header for all analysis wizards. */
.wizard-overview {
  --wizard-section-gap: clamp(1.5rem, 2.5vw, 2rem);
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--wizard-section-gap);
  padding-bottom: var(--wizard-section-gap);
}
.wizard-overview__heading { margin: 0; align-items: flex-start; }
.wizard-overview__title-block { min-width: 0; }
.wizard-overview__archive { flex: 0 0 auto; padding-top: 1.75rem; }
.wizard-overview > .alert,
.wizard-overview > .mb-3 { margin: 0 !important; }
.wizard-progress-header {
  display: grid;
  grid-template-columns: minmax(10rem, .75fr) minmax(24rem, 2.25fr) minmax(12rem, .85fr);
  align-items: stretch;
  gap: 0;
  min-height: 11rem;
  padding: clamp(1.5rem, 2.5vw, 2rem);
  border: 1px solid var(--bs-border-color);
  border-radius: .75rem;
  background: var(--bs-body-bg);
  box-shadow: 0 .25rem 1rem rgba(33, 37, 41, .06);
}
.wizard-progress-header__count,
.wizard-progress-header__status,
.wizard-progress-header__time { min-width: 0; }
.wizard-progress-header__count,
.wizard-progress-header__status { display: flex; flex-direction: column; justify-content: center; }
.wizard-progress-header__status,
.wizard-progress-header__time { border-left: 1px solid var(--bs-border-color); padding-left: clamp(1.5rem, 3vw, 2.5rem); }
.wizard-progress-header__count,
.wizard-progress-header__status { padding-right: clamp(1.5rem, 3vw, 2.5rem); }
.wizard-progress-header__title { margin: 0 0 .55rem; font-size: 1.1rem; font-weight: 600; }
.wizard-progress-header__value { font-size: clamp(2rem, 3vw, 2.75rem); font-weight: 700; line-height: 1; letter-spacing: -.025em; }
.wizard-progress-header__caption,
.wizard-progress-header__hint,
.wizard-progress-header__eyebrow { color: var(--bs-secondary-color); font-size: .875rem; }
.wizard-progress-header__caption { margin-top: .5rem; }
.wizard-progress-header__percent { margin-bottom: .85rem; font-size: 1.05rem; font-weight: 600; }
.wizard-progress-header__bar { width: 100%; max-width: none; height: .75rem; background: var(--bs-secondary-bg); }
.wizard-progress-header__bar .progress-bar { border-radius: inherit; background: var(--bs-primary); }
.wizard-progress-header__hint { margin-top: .85rem; line-height: 1.45; }
.wizard-progress-header__time { display: flex; align-items: center; gap: 1rem; }
.wizard-progress-header__clock {
  display: inline-flex;
  flex: 0 0 3.5rem;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  border: 2px solid color-mix(in srgb, var(--bs-primary) 35%, transparent);
  border-radius: 50%;
  background: color-mix(in srgb, var(--bs-primary) 10%, transparent);
  color: var(--bs-primary);
  font-size: 1.65rem;
  line-height: 1;
}
.wizard-progress-header__eyebrow { margin-bottom: .35rem; font-weight: 600; }
@media (min-width: 768px) and (max-width: 1199.98px) {
  .wizard-progress-header { grid-template-columns: minmax(9rem, .7fr) minmax(16rem, 1.3fr); }
  .wizard-progress-header__time { grid-column: 1 / -1; margin-top: 1.5rem; padding-top: 1.5rem; padding-left: 0; border-top: 1px solid var(--bs-border-color); border-left: 0; }
}
@media (max-width: 767.98px) {
  .wizard-progress-header { grid-template-columns: 1fr; min-height: 0; padding: 1.5rem; }
  .wizard-progress-header__count,
  .wizard-progress-header__status,
  .wizard-progress-header__time { padding-right: 0; padding-left: 0; border-left: 0; }
  .wizard-progress-header__status { margin-top: 1.25rem; padding-top: 1.25rem; padding-bottom: 1.25rem; border-top: 1px solid var(--bs-border-color); border-bottom: 1px solid var(--bs-border-color); }
  .wizard-progress-header__time { margin-top: 1.25rem; }
}

/* Shared linear step sequence for all analysis wizards. */
.wizard-steps {
  --wizard-steps-border-color: var(--bs-gray-400, #ced4da);
  --wizard-steps-line-color: var(--bs-gray-500, #adb5bd);
  --wizard-steps-marker-bg: var(--bs-body-bg);
  --wizard-steps-number-bg: var(--bs-tertiary-bg);
  --wizard-steps-next-color: #c75b00;
  --wizard-steps-next-border-color: #e58a1f;
  --wizard-steps-next-bg: #fff8df;
  --wizard-steps-next-hover-bg: #ffefbd;
}
.wizard-steps__list {
  display: grid;
  grid-auto-rows: max-content;
  gap: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--wizard-steps-border-color);
  border-radius: .75rem;
  background: var(--bs-body-bg);
  list-style: none;
}
.wizard-steps__item {
  position: relative;
  min-height: 0;
  height: auto;
  padding: 0;
}
.wizard-steps__rail {
  position: relative;
  display: flex;
  align-self: stretch;
  justify-content: center;
  margin-block: -1rem;
  padding-block: 1rem;
}
.wizard-steps__item:not(:last-child) .wizard-steps__rail::after {
  position: absolute;
  z-index: 0;
  top: calc(1rem + 2.25rem);
  bottom: -1rem;
  left: 50%;
  width: 2px;
  background: var(--wizard-steps-line-color);
  content: "";
  transform: translateX(-50%);
}
.wizard-steps__marker {
  position: relative;
  z-index: 1;
  display: inline-flex;
  width: 2.25rem;
  height: 2.25rem;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--wizard-steps-border-color);
  border-radius: 50%;
  background: var(--wizard-steps-marker-bg);
  color: var(--bs-secondary-color);
  font-weight: 700;
}
.wizard-steps__link {
  display: grid;
  grid-template-columns: 2.75rem 3.25rem minmax(0, 1fr) minmax(9.5rem, 11rem);
  column-gap: .75rem;
  align-items: center;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 0;
  height: auto;
  padding: 1rem 1.125rem;
  border: 0;
  border-bottom: 1px solid var(--wizard-steps-border-color);
  border-radius: 0;
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  text-decoration: none;
  transition: background-color .15s ease, box-shadow .15s ease;
}
.wizard-steps__item:last-child .wizard-steps__link { border-bottom: 0; }
.wizard-steps__link:hover { background: var(--bs-tertiary-bg); color: var(--bs-body-color); text-decoration: none; }
.wizard-steps__link:focus-visible { position: relative; z-index: 2; outline: 0; box-shadow: inset 0 0 0 .2rem rgba(var(--bs-primary-rgb), .4); }
.wizard-steps__step-number {
  display: inline-flex;
  width: 3.25rem;
  height: 3.25rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--wizard-steps-border-color);
  border-radius: 50%;
  background: var(--wizard-steps-number-bg);
  color: var(--bs-secondary-color);
  font-weight: 700;
}
.wizard-steps__content { display: flex; min-width: 0; max-width: 100%; margin-left: .375rem; flex-direction: column; overflow-wrap: anywhere; }
.wizard-steps__title { font-weight: 700; overflow-wrap: anywhere; }
.wizard-steps__prompt { margin-top: .25rem; color: var(--bs-secondary-color); font-size: .9rem; line-height: 1.4; overflow-wrap: anywhere; }
.wizard-steps__preview { margin-top: .45rem; color: var(--bs-secondary-color); font-size: .875rem; overflow-wrap: anywhere; }
.wizard-steps__actions { display: flex; width: 100%; min-width: 0; align-items: center; justify-content: flex-end; gap: .65rem; }
.wizard-steps__status { display: inline-flex; width: fit-content; padding: .25rem .55rem; border-radius: 999px; background: var(--bs-secondary-bg); color: var(--bs-secondary-color); font-size: .75rem; font-weight: 700; line-height: 1.25; white-space: nowrap; }
.wizard-steps__status--next { margin-top: .65rem; background: #ffe3a3; color: var(--wizard-steps-next-color); }
.wizard-steps__chevron { flex: 0 0 auto; color: var(--bs-secondary-color); font-size: 1rem; }
.wizard-steps__cta { display: inline-flex; width: 100%; min-width: 0; min-height: 3rem; align-items: center; justify-content: center; gap: .5rem; font-size: .9rem; font-weight: 700; }
.wizard-steps__item--completed .wizard-steps__marker { border-color: var(--bs-success); background: var(--bs-success); color: #fff; }
.wizard-steps__item--completed .wizard-steps__step-number { border-color: rgba(var(--bs-success-rgb), .35); background: rgba(var(--bs-success-rgb), .09); color: var(--bs-success-text-emphasis, var(--bs-success)); }
.wizard-steps__item--completed .wizard-steps__status { background: rgba(var(--bs-success-rgb), .12); color: var(--bs-success); }
.wizard-steps__item--skipped .wizard-steps__marker { background: var(--bs-secondary-bg); }
.wizard-steps__item--skipped .wizard-steps__step-number { background: var(--bs-secondary-bg); color: var(--bs-secondary-color); }
.wizard-steps__item--skipped .wizard-steps__status { color: var(--bs-secondary-color); }
.wizard-steps__item--in_progress .wizard-steps__marker { border-color: var(--bs-info); color: var(--bs-info-text-emphasis, var(--bs-info)); }
.wizard-steps__item--in_progress .wizard-steps__step-number { border-color: var(--bs-info); color: var(--bs-info-text-emphasis, var(--bs-info)); }
.wizard-steps__item--pending .wizard-steps__marker { border-color: var(--wizard-steps-border-color); background: var(--wizard-steps-marker-bg); }
.wizard-steps__item--pending .wizard-steps__step-number { border-color: var(--wizard-steps-border-color); background: var(--wizard-steps-number-bg); color: var(--bs-secondary-color); }
.wizard-steps__item--next .wizard-steps__link {
  background: var(--wizard-steps-next-bg);
}
.wizard-steps__item--next .wizard-steps__link:hover { background: var(--wizard-steps-next-hover-bg); }
.wizard-steps__item--next .wizard-steps__marker { border-color: var(--wizard-steps-next-border-color); background: var(--wizard-steps-marker-bg); color: var(--wizard-steps-next-color); }
.wizard-steps__item--next .wizard-steps__step-number { border-color: var(--wizard-steps-next-border-color); background: var(--wizard-steps-next-bg); color: var(--wizard-steps-next-color); }
.wizard-steps__item--next .wizard-steps__status { color: var(--wizard-steps-next-color); }
.wizard-steps__item--next .wizard-steps__cta--next { border-color: var(--wizard-steps-next-color); background: var(--wizard-steps-next-color); color: #fff; }
.wizard-steps__item--next .wizard-steps__cta--next:hover { border-color: var(--wizard-steps-next-color); background: var(--wizard-steps-next-color); color: #fff; }
@media (min-width: 768px) and (max-width: 1199.98px) {
  .wizard-steps__link { grid-template-columns: 2.25rem 3rem minmax(0, 1fr) minmax(9rem, 10rem); }
  .wizard-steps__step-number { width: 3rem; height: 3rem; }
}
@media (max-width: 767.98px) {
  .wizard-steps__marker { width: 2rem; height: 2rem; font-size: .875rem; }
  .wizard-steps__rail { margin-block: -.875rem; padding-block: .875rem; }
  .wizard-steps__item:not(:last-child) .wizard-steps__rail::after { top: calc(.875rem + 2rem); bottom: -.875rem; }
  .wizard-steps__step-number { width: 2.75rem; height: 2.75rem; }
  .wizard-steps__link { grid-template-columns: 2rem 2.75rem minmax(0, 1fr); column-gap: .625rem; padding: .875rem; }
  .wizard-steps__content { margin-left: 0; }
  .wizard-steps__actions { grid-column: 3; width: 100%; }
  .wizard-steps__actions--standard { justify-content: space-between; }
  .wizard-steps__cta { width: 100%; min-width: 0; min-height: 2.75rem; }
  .wizard-overview__heading { flex-direction: column; }
  .wizard-overview__archive { width: 100%; padding-top: 0; }
  .wizard-overview__heading > .text-end,
  .wizard-overview__heading > .text-end form,
  .wizard-overview__heading .btn,
  .wizard-summary .card-header .btn { width: 100%; }
}

/* Completion and result cards share the timeline's rhythm and action sizing. */
.wizard-completion,
.wizard-summary { width: 100%; }
.wizard-completion__panel { padding: clamp(1rem, 2vw, 1.5rem); border-radius: .75rem; }
.wizard-completion__panel--open {
  --completion-green: #198754;
  --completion-green-dark: #146c43;
  --completion-green-soft: #f1faf5;
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(16rem, .75fr);
  align-items: center;
  gap: 1.25rem 2rem;
  border: 1px solid #b8dfca;
  background: var(--completion-green-soft);
  color: var(--bs-body-color);
}
.wizard-completion__open-main { display: flex; align-items: center; gap: 1rem; min-width: 0; }
.wizard-completion__icon {
  display: inline-flex; flex: 0 0 3.25rem; align-items: center; justify-content: center;
  width: 3.25rem; height: 3.25rem; border-radius: 50%;
  background: #dff4e8; color: var(--completion-green-dark); font-size: 1.4rem;
}
.wizard-completion__copy { min-width: 0; }
.wizard-completion__copy h2 { margin-bottom: .35rem; color: var(--completion-green-dark); font-weight: 700; }
.wizard-completion__copy p { margin-bottom: 0; color: var(--bs-secondary-color); }
.wizard-completion__progress { grid-column: 2; grid-row: 1 / span 2; min-width: 0; }
.wizard-completion__progress-label { margin-bottom: .5rem; font-size: .9rem; color: var(--bs-secondary-color); }
.wizard-completion__progress-label strong { color: var(--completion-green-dark); }
.wizard-completion__progress-bar { height: .45rem; overflow: hidden; background: #dfe5e2; }
.wizard-completion__progress-bar .progress-bar { background: var(--completion-green); }
.wizard-completion__panel--open > .wizard-completion__actions { grid-column: 1; }
.wizard-completion__actions--force { padding-top: 1rem; border-top: 1px solid rgba(var(--bs-danger-rgb), .25); }
.wizard-completion__panel > :last-child,
.wizard-completion__form > :last-child { margin-bottom: 0; }
.wizard-completion__actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: .75rem; }
.wizard-completion__form .btn,
.wizard-completion__actions > .btn { min-height: 2.375rem; }
.wizard-summary .card { border-radius: .75rem; box-shadow: 0 .25rem 1rem rgba(33, 37, 41, .06); }
.wizard-summary .card-header,
.wizard-summary .card-body { padding: clamp(1rem, 2vw, 1.5rem); }
@media (max-width: 767.98px) {
  .wizard-completion__panel--open { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .wizard-completion__progress { grid-column: 1; grid-row: auto; }
  .wizard-completion__panel--open > .wizard-completion__actions { grid-column: 1; }
  .wizard-completion__actions,
  .wizard-completion__form,
  .wizard-completion__actions > *,
  .wizard-completion__actions .btn,
  .wizard-completion__form .btn { width: 100%; }
  .wizard-completion__actions .btn,
  .wizard-completion__form .btn { min-height: 2.75rem; }
}

.upgrade-limit-notice {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin: 1rem 0;
  padding: 1rem 1.25rem;
  border: 1px solid rgba(var(--bs-info-rgb), .3);
  border-left: .3rem solid var(--bs-info);
  border-radius: var(--bs-border-radius);
  background: rgba(var(--bs-info-rgb), .08);
  overflow-wrap: break-word;
}
.upgrade-limit-notice__content { display: flex; align-items: flex-start; gap: .85rem; min-width: 0; flex: 1 1 auto; }
.upgrade-limit-notice__icon { color: var(--bs-primary); flex: 0 0 auto; margin-top: .1rem; }
.upgrade-limit-notice__text { min-width: 0; }
.upgrade-limit-notice__title { margin: 0 0 .35rem; color: var(--bs-body-color); }
.upgrade-limit-notice__message { margin: 0; color: var(--bs-secondary-color); }
.upgrade-limit-notice__action { flex: 0 0 auto; }
.upgrade-limit-notice__action:focus-visible { outline: .2rem solid rgba(var(--bs-primary-rgb), .35); outline-offset: .15rem; }
@media (max-width: 575.98px) {
  .upgrade-limit-notice { align-items: stretch; flex-direction: column; gap: 1rem; }
  .upgrade-limit-notice__action { width: 100%; }
}

/* Compact premium invitation on the account overview. */
.account-premium-invitation {
  width: 100%;
  padding: 1.25rem;
  border: 1px solid rgba(var(--bs-primary-rgb), .24);
  border-left: .3rem solid var(--bs-primary);
  border-radius: .75rem;
  background: rgba(var(--bs-info-rgb), .07);
  overflow-wrap: anywhere;
}
.account-premium-invitation__intro { display: flex; align-items: flex-start; gap: .85rem; }
.account-premium-invitation__icon {
  display: inline-flex;
  flex: 0 0 2.25rem;
  width: 2.25rem;
  height: 2.25rem;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--bs-body-bg);
  color: var(--bs-primary);
}
.account-premium-invitation__benefits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.25rem 0;
}
.account-premium-invitation__benefit { display: flex; align-items: flex-start; gap: .65rem; min-width: 0; }
.account-premium-invitation__benefit > i { flex: 0 0 auto; margin-top: .1rem; color: var(--bs-primary); }
.account-premium-invitation__benefit p,
.account-premium-invitation__support p { color: var(--bs-secondary-color); }
.account-premium-invitation__support { padding-top: 1rem; border-top: 1px solid rgba(var(--bs-primary-rgb), .16); }
.account-premium-invitation__actions { display: flex; align-items: center; gap: 1rem; margin-top: 1rem; }
.account-premium-invitation__quota-link { color: var(--bs-secondary-color); }
.account-premium-invitation__actions a:focus-visible {
  outline: .2rem solid rgba(var(--bs-primary-rgb), .4);
  outline-offset: .15rem;
}
@media (max-width: 767.98px) {
  .account-premium-invitation__benefits { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .account-premium-invitation { padding: 1rem; }
  .account-premium-invitation__actions { align-items: stretch; flex-direction: column; }
  .account-premium-invitation__actions .btn { width: 100%; }
  .account-premium-invitation__quota-link { text-align: center; }
}

/* Informational context between the wizard steps and completion card. */
.wizard-tip {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  width: 100%;
  margin: 1rem 0;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid rgba(var(--bs-primary-rgb), .28);
  border-radius: .75rem;
  background: #f4f9fc;
  overflow: hidden;
}
.wizard-tip__icon {
  display: inline-flex;
  width: 3rem;
  height: 3rem;
  flex: 0 0 3rem;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(var(--bs-primary-rgb), .12);
  color: var(--bs-primary);
  font-size: 1.35rem;
}
.wizard-tip__copy { min-width: 0; }
.wizard-tip__title { margin: 0 0 .3rem; color: var(--bs-primary); font-size: .9rem; font-weight: 700; }
.wizard-tip__text { margin: 0; color: var(--bs-secondary-color); line-height: 1.5; overflow-wrap: anywhere; }
.wizard-tip__sequence { display: flex; align-items: center; gap: .45rem; color: rgba(var(--bs-primary-rgb), .55); }
.wizard-tip__sequence span {
  display: inline-flex;
  width: 2rem;
  height: 2rem;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(var(--bs-primary-rgb), .25);
  border-radius: 50%;
  background: var(--bs-body-bg);
}
@media (max-width: 767.98px) {
  .wizard-tip { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
  .wizard-tip__sequence { display: none; }
}
