/* Uses Material for MkDocs theme tokens */
:root{
  --rtd-radius: 12px;
  --rtd-line: rgba(0,0,0,.08);
  --rtd-shadow: 0 2px 12px rgba(0,0,0,.06), 0 8px 24px rgba(0,0,0,.04);
}

.rtd-hero{
  margin: 1.2rem 0 .6rem;
}
.rtd-hero h1{
  margin: 0 0 .4rem;
}
.rtd-hero p{
  margin: 0 0 .4rem;
  color: var(--md-default-fg-color--light);
}
.rtd-badges{
  display:flex; flex-wrap:wrap; gap:.4rem; padding:0; margin:.6rem 0 0; list-style:none;
}
.rtd-badges li{
  border:1px solid var(--rtd-line);
  padding:.25rem .55rem; border-radius:999px; font-size:.85rem;
  background: var(--md-default-bg-color);
}

.rtd-grid{
  display:grid; gap:1rem; grid-template-columns: 1.1fr .9fr; align-items:start;
}
@media (max-width: 960px){
  .rtd-grid{ grid-template-columns: 1fr; }
}

.rtd-card{
  background: var(--md-default-bg-color);
  border: 1px solid var(--rtd-line);
  border-radius: var(--rtd-radius);
  box-shadow: var(--rtd-shadow);
}
.rtd-card__hd{
  padding: 1rem 1.1rem;
  border-bottom: 1px solid var(--rtd-line);
}
.rtd-card__bd{
  padding: 1.1rem;
}
.rtd-muted{ color: var(--md-default-fg-color--light); }

.rtd-field{ margin-bottom: .9rem; }
.rtd-label{ display:block; font-weight:700; margin: 0 0 .25rem; }
.rtd-input{
  width:100%; font: inherit; color: inherit; background: var(--md-default-bg-color);
  border:1px solid var(--rtd-line); border-radius:10px; padding:.7rem .85rem; outline:0;
}
.rtd-input:focus{
  border-color: var(--md-primary-fg-color);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--md-primary-fg-color) 25%, transparent);
}
.rtd-help{ font-size:.85rem; color: var(--md-default-fg-color--light); margin:.25rem 0 0; }
.rtd-error{ color:#b00020; font-size:.86rem; margin-top:.35rem; display:none; }

.rtd-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin-top:.4rem; }

/* Downloads list */
.rtd-dl{
  display:grid; gap:.6rem; grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 560px){
  .rtd-dl{ grid-template-columns: 1fr; }
}
.rtd-dl a{
  display:flex; align-items:center; justify-content:space-between;
  border:1px solid var(--rtd-line); border-radius:10px; padding:.7rem .85rem;
  text-decoration:none; font-weight:700;
}
.rtd-dl a:hover{ border-color: var(--md-primary-fg-color); }

.rtd-foot{ margin: 1.2rem 0 2rem; color: var(--md-default-fg-color--light); }

/* Emphasis & readability for the primary fields */
.rtd-field--emphasis{
  background: color-mix(in srgb, var(--md-primary-fg-color) 6%, transparent);
  border: 1px dashed color-mix(in srgb, var(--md-primary-fg-color) 30%, var(--rtd-line));
  border-radius: 12px;
  padding: .85rem;
}

.rtd-label{ font-weight: 800; }
.rtd-req{
  font-size: .75rem;
  font-weight: 700;
  color: var(--md-primary-fg-color);
  background: color-mix(in srgb, var(--md-primary-fg-color) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--md-primary-fg-color) 35%, transparent);
  padding: .1rem .4rem;
  border-radius: 999px;
  margin-left: .4rem;
}

/* Bigger, higher-contrast inputs */
.rtd-input--xl{
  font-size: 1.05rem;
  padding: 1rem 1.05rem;
  border-width: 2px;
  border-color: color-mix(in srgb, var(--md-primary-fg-color) 25%, var(--rtd-line));
  background: color-mix(in srgb, var(--md-primary-fg-color) 5%, var(--md-default-bg-color));
}

.rtd-input--xl:focus{
  border-color: var(--md-primary-fg-color);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--md-primary-fg-color) 25%, transparent);
}

/* Inline icons */
.rtd-input-wrap{ position: relative; }
.rtd-icon{
  position: absolute;
  left: .75rem;
  top: 50%;
  transform: translateY(-50%);
  opacity: .7;
  pointer-events: none;
}
.has-icon{ padding-left: 2.4rem; }

/* ===== Compact mode: reduziert vertikale Abstände auf dieser Seite ===== */
.rtd-compact .rtd-hero{ margin: .35rem 0 .2rem; }
.rtd-compact .rtd-hero h1{ margin: 0 0 .15rem; font-size: clamp(1.4rem, 1.6vw + .8rem, 1.8rem); }
.rtd-compact .rtd-hero p{ margin: 0; }
.rtd-compact .rtd-badges{ margin: .3rem 0 0; gap: .3rem; }
.rtd-compact .rtd-badges li{ padding: .15rem .4rem; font-size: .82rem; }

/* Grid & Cards */
.rtd-compact .rtd-grid{ gap: .6rem; }
.rtd-compact .rtd-card__hd{ padding: .55rem .7rem; }
.rtd-compact .rtd-card__bd{ padding: .7rem; }
.rtd-compact #rtd-demo-title{ font-size: 1.05rem; margin: 0; }
.rtd-compact .rtd-muted{ margin: 0; }

/* Form spacing */
.rtd-compact .rtd-field{ margin-bottom: .5rem; }
.rtd-compact .rtd-field--emphasis{ padding: .55rem; }
.rtd-compact .rtd-label{ margin: 0 0 .2rem; }

/* Inputs kompakter, ohne Lesbarkeit zu verlieren */
.rtd-compact .rtd-input--xl{
  padding: .65rem .8rem; 
  font-size: 1rem;
  border-width: 1px;
}
.rtd-compact .rtd-input-wrap{ min-height: 0; }
.rtd-compact .rtd-icon{ left: .6rem; }
.rtd-compact .has-icon{ padding-left: 2rem; }

/* Aktionen & Fußbereich */
.rtd-compact .rtd-actions{ margin-top: .2rem; gap: .4rem; }
.rtd-compact .md-button{ padding: .5rem .8rem; }
.rtd-compact .rtd-help{ margin-top: .2rem; }
.rtd-compact .rtd-foot{ margin: .6rem 0 1rem; }

/* Optional ultrakompakt: Help-Zeile ausblenden um noch mehr Höhe zu sparen */
/* .rtd-compact .rtd-help{ display:none; } */

/* --- Obere Luft nur auf der Demo-Seite entfernen --- */
.md-content__inner > #demo-data-page:first-child{
  /* Wert ggf. feinjustieren: -0.8rem bis -1.4rem */
  margin-top: -1.1rem;
}

/* Headline & Hero: garantiert kein zusätzlicher Top-Abstand */
#demo-data-page .rtd-hero{ margin-top: 0 !important; padding-top: 0 !important; }
#demo-data-page .rtd-hero h1{ margin-top: 0 !important; }

/* Falls auf kleineren Screens noch minimaler Versatz bleibt, etwas weniger "ziehen" */
@media (max-width: 960px){
  .md-content__inner > #demo-data-page:first-child{ margin-top: -0.8rem; }
}