:root {
  color-scheme: light;
}

.kumpelrechner {
  --kr-gap: 1rem;
  --kr-field-gap: 0.375rem;
  --kr-section-spacing: 2rem;
  --kr-control-padding-y: 0.75rem;
  --kr-control-padding-x: 0.875rem;
  --kr-control-border-width: 1px;
  --kr-control-border-style: solid;
  --kr-control-border-color: rgba(0, 0, 0, 0.18);
  --kr-control-radius: 0;
  --kr-control-bg: #ffffff;
  --kr-control-color: inherit;
  --kr-control-focus-ring: 0 0 0 3px rgba(0, 0, 0, 0.08);
  --kr-control-focus-border-color: currentColor;
  --kr-button-bg: transparent;
  --kr-button-color: inherit;
  --kr-button-border-color: currentColor;
  --kr-button-border-width: 1px;
  --kr-button-border-style: solid;
  --kr-button-radius: 0;
  --kr-button-padding-y: 0.75rem;
  --kr-button-padding-x: 1rem;
  --kr-button-hover-bg: rgba(0, 0, 0, 0.05);
  --kr-computed-bg: rgba(0, 0, 0, 0.06);
  --kr-message-padding-y: 0.75rem;
  --kr-message-padding-x: 0.875rem;
  --kr-message-radius: 0;
  --kr-message-info-bg: rgba(0, 0, 0, 0.04);
  --kr-message-info-color: inherit;
  --kr-message-warning-bg: rgba(255, 191, 0, 0.12);
  --kr-message-warning-color: inherit;
  --kr-message-error-bg: rgba(185, 28, 28, 0.1);
  --kr-message-error-color: inherit;
  --kr-message-accent-width: 0;
  --kr-message-info-accent-color: transparent;
  --kr-message-warning-accent-color: transparent;
  --kr-message-error-accent-color: transparent;
  --kr-legend-swatch-size: 0.875rem;
  --kr-note-opacity: 0.8;

  display: block;
  width: 100%;
  max-width: none;
  color: inherit;
  font: inherit;
}

.kumpelrechner,
.kumpelrechner * {
  box-sizing: border-box;
}

.kumpelrechner .kumpelrechner-panel,
.kumpelrechner .kumpelrechner-section {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.kumpelrechner .kumpelrechner-section + .kumpelrechner-section {
  margin-top: var(--kr-section-spacing);
}

.kumpelrechner .kumpelrechner-heading {
  margin: 0 0 0.5rem;
  color: inherit;
}

.kumpelrechner .kumpelrechner-note {
  margin: 0 0 1rem;
  color: inherit;
  opacity: var(--kr-note-opacity);
}

.kumpelrechner .kumpelrechner-form {
  width: 100%;
}

.kumpelrechner .kumpelrechner-grid {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--kr-gap);
  margin: 1rem 0;
}

.kumpelrechner .kumpelrechner-field-group {
  display: flex;
  flex-direction: column;
  gap: var(--kr-field-gap);
  min-width: 0;
}

.kumpelrechner .kumpelrechner-field-group label {
  color: inherit;
}

.kumpelrechner input[type="text"],
.kumpelrechner select,
.kumpelrechner button {
  font: inherit;
  line-height: inherit;
}

.kumpelrechner input[type="text"],
.kumpelrechner select {
  width: 100%;
  min-width: 0;
  padding: var(--kr-control-padding-y) var(--kr-control-padding-x);
  border-width: var(--kr-control-border-width);
  border-style: var(--kr-control-border-style);
  border-color: var(--kr-control-border-color);
  border-radius: var(--kr-control-radius);
  background: var(--kr-control-bg);
  color: var(--kr-control-color);
  box-shadow: none;
  appearance: auto;
}

.kumpelrechner input[type="text"]:focus,
.kumpelrechner select:focus {
  outline: none;
  border-color: var(--kr-control-focus-border-color);
  box-shadow: var(--kr-control-focus-ring);
}

.kumpelrechner input[type="text"].computed,
.kumpelrechner select.computed {
  background: var(--kr-computed-bg);
}

.kumpelrechner input[type="text"].field-error,
.kumpelrechner select.field-error {
  border-color: var(--kr-message-error-accent-color, var(--kr-control-focus-border-color));
}

.kumpelrechner .kumpelrechner-message {
  display: none;
  margin: 0.75rem 0 0;
  padding: var(--kr-message-padding-y) var(--kr-message-padding-x);
  border-left: var(--kr-message-accent-width) solid transparent;
  border-radius: var(--kr-message-radius);
  line-height: 1.45;
}

.kumpelrechner .kumpelrechner-message:not(:empty) {
  display: block;
}

.kumpelrechner .kumpelrechner-message--info {
  background: var(--kr-message-info-bg);
  color: var(--kr-message-info-color);
  border-left-color: var(--kr-message-info-accent-color);
}

.kumpelrechner .kumpelrechner-message--warning {
  background: var(--kr-message-warning-bg);
  color: var(--kr-message-warning-color);
  border-left-color: var(--kr-message-warning-accent-color);
}

.kumpelrechner .kumpelrechner-message--error {
  background: var(--kr-message-error-bg);
  color: var(--kr-message-error-color);
  border-left-color: var(--kr-message-error-accent-color);
}

.kumpelrechner .kumpelrechner-actions {
  margin-top: 1rem;
}

.kumpelrechner button {
  width: 100%;
  padding: var(--kr-button-padding-y) var(--kr-button-padding-x);
  border-width: var(--kr-button-border-width);
  border-style: var(--kr-button-border-style);
  border-color: var(--kr-button-border-color);
  border-radius: var(--kr-button-radius);
  background: var(--kr-button-bg);
  color: var(--kr-button-color);
  box-shadow: none;
  cursor: pointer;
}

.kumpelrechner button:hover,
.kumpelrechner button:focus-visible {
  background: var(--kr-button-hover-bg);
}

.kumpelrechner .kumpelrechner-legend {
  margin-top: 1rem;
  color: inherit;
  opacity: var(--kr-note-opacity);
}

.kumpelrechner .kumpelrechner-legend-swatch {
  display: inline-block;
  width: var(--kr-legend-swatch-size);
  height: var(--kr-legend-swatch-size);
  vertical-align: -0.125em;
  margin-right: 0.375rem;
  background: var(--kr-computed-bg);
}

@media (max-width: 560px) {
  .kumpelrechner .kumpelrechner-grid {
    grid-template-columns: 1fr;
  }
}
