.simulation-form {
  opacity: 0;
  position: relative;
  transition: opacity var(--duration-md), transform var(--duration-md);
}

.simulation-form.state--loaded {
  opacity: 1;
}

.simulation-form[aria-busy="true"] {
  opacity: 0.5;
  pointer-events: none;
  transform: scale(0.98);
}

.simulation-column .former-input.variant--text {
  font-size: var(--font-size-xl);
  padding-bottom: var(--spacing-xs);
  padding-top: var(--spacing-xs);
}

.simulation-column.state--active .former-input.variant--text {
  background-color: var(--color-white);
}

.simulation-main {
  --padding: calc(var(--spacing-lg) + var(--spacing-sm));

  background-color: var(--color-light);
  border-radius: var(--radius-md);
  box-shadow: 0 0 var(--spacing-sm) var(--color-darkener),
              0 0 var(--spacing-xl) var(--color-darkener);
  margin: 0 calc(var(--spacing-sm) * -1);
  overflow: hidden;
  position: absolute;
  width: calc(100% + var(--spacing-sm) * 2);
}

.simulation-background {
  background-position: right center;
  background-repeat: no-repeat;
  background-size: 60% auto;
  height: 200%;
  position: absolute;
  right: 0;
  top: 0;
  transform-origin: bottom right;
  transform: rotate(10deg);
  width: 100%;
}

.simulation-result {
  align-items: flex-start;
  background-image: linear-gradient(to right, var(--color-white), transparent),
                    radial-gradient(var(--color-white) 1px, transparent 0);
  background-size: 100% 100%,
                   4px 4px;
  background-position: center;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-lg);
  justify-content: center;
  padding: var(--padding);
  position: relative;
}

.simulation-result .simulation-values {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
}

.simulation-column {
  border: var(--border-sm) solid var(--color-darkener);
  border-radius: var(--radius-md);
  grid-column: span 4;
  padding: var(--spacing-lg);
}

.simulation-column.state--active {
  background-color: var(--color-light);
  border-color: var(--color-primary);
}

.simulation-column .simulation-target {
  font-weight: var(--font-weight-bold);
}

.simulation-column.variant--value_without_interest .target--value_without_interest,
.simulation-column.variant--bid_value .target--bid_value,
.simulation-column.variant--installment_value .target--installment_value {
  color: var(--color-primary);
  font-weight: var(--font-weight-heavy);
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: var(--border-md);
}

.simulation-column .former-sublabel {
  font-size: var(--font-size-lg);
}

.simulation-column.state--active .former-sublabel {
  color: var(--color-primary);
}

.simulation-title {
  align-items: center;
  display: flex;
  flex-direction: row;
  gap: var(--spacing-lg);
  justify-content: space-between;
  margin-bottom: var(--spacing-sm);
}

.simulation-column.state--active .simulation-title {
  font-weight: var(--font-weight-heavy);
  font-size: var(--font-size-xl);
}

.simulation-title .former-fieldset {
  flex: none;
}

.simulation-label {
  flex: 1;
  font-size: var(--font-size-lg);
}

.simulation-more {
  text-align: center;
  margin-bottom: var(--spacing-sm);
}

.simulation-options {
  align-items: stretch;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
  justify-content: center;
  list-style: none;
}

.simulation-share {
  width: 100%;
}

.simulation-result .simulation-share {
  width: auto;
}

.simulation-details {
  appearance: none;
  border: var(--border-sm) solid var(--color-darkener);
  border-radius: var(--radius-md);
}

.simulation-column.state--active .simulation-details {
  border-color: var(--color-darkener);
}

.simulation-details[open] {
  background-color: var(--color-light);
}

.simulation-column.state--active .simulation-details[open] {
  background-color: var(--color-white);
}

.simulation-details:not([open]):hover,
.simulation-details:not([open]):focus-within {
  background-color: var(--color-darkener);
}

.simulation-summary {
  appearance: none;
  align-items: center;
  cursor: pointer;
  display: flex;
  flex-direction: row;
  gap: var(--spacing-lg);
  justify-content: space-between;
  padding: var(--spacing-md);
}

.simulation-summary:focus {
  outline: none;
}

.simulation-chevron {
  font-size: var(--font-size-lg) !important;
  transition: transform var(--duration-sm);
}

.simulation-details[open] .simulation-chevron {
  transform: rotate(180deg);
}

.simulation-extras {
  color: var(--color-dark);
  display: block;
  list-style: none;
  padding: 0 var(--spacing-md) var(--spacing-md);
}

.simulation-extra {
  align-items: center;
  border-top: var(--border-sm) solid var(--color-darkener);
  display: flex;
  flex-direction: row;
  gap: var(--spacing-md);
  justify-content: space-between;
  margin-top: var(--spacing-sm);
  padding-top: var(--spacing-sm);
}

.simulation-extra:first-child {
  margin-top: 0;
}

.simulation-extra:last-child {
  padding-top: var(--spacing-md);
}

.simulation-extra b {
  text-align: right;
}

.simulation-spacing {
  display: block;
  margin: var(--spacing-lg) 0;
}
