/* Fördelotsen: Terminwahl */
.terminwahl { background: var(--weiss); color: var(--tiefe); border-radius: var(--radius); padding: clamp(1.25rem, 3.5vw, 2.25rem); display: grid; gap: 1.5rem; }
.terminwahl .tw-kopf { display: grid; gap: .35rem; }
.terminwahl .tw-kopf .tw-marke { font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blau); }
.terminwahl .tw-kopf h3 { font-size: clamp(1.4rem, 3.5vw, 1.75rem); line-height: 1.15; margin: 0; }
.terminwahl .tw-kopf p { margin: 0; color: var(--grau); font-size: .975rem; }

.terminwahl .tw-schritt { display: grid; gap: .7rem; }
.terminwahl .tw-schritt > h4 { margin: 0; font-size: .95rem; display: flex; align-items: center; gap: .6rem; }
.terminwahl .tw-nummer { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--tiefe); color: var(--nebel); font-size: .8rem; font-weight: 700; flex: none; }

.terminwahl .tw-tage { display: flex; gap: .5rem; overflow-x: auto; padding: .15rem .15rem .6rem; margin: 0 -.15rem; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
.terminwahl .tw-tag { flex: 0 0 auto; scroll-snap-align: start; display: grid; justify-items: center; gap: .05rem; min-width: 4.1rem; padding: .6rem .5rem; font: inherit; color: var(--tiefe); background: var(--weiss); border: 1.5px solid var(--linie); border-radius: var(--radius); cursor: pointer; transition: border-color .15s ease, background-color .15s ease, color .15s ease; }
.terminwahl .tw-tag:hover { border-color: var(--tiefe); }
.terminwahl .tw-tag .tw-wt { font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--grau); }
.terminwahl .tw-tag .tw-nr { font-size: 1.45rem; font-weight: 800; line-height: 1.1; }
.terminwahl .tw-tag .tw-mo { font-size: .75rem; color: var(--grau); }
.terminwahl .tw-tag[aria-pressed="true"] { background: var(--tiefe); border-color: var(--tiefe); color: var(--nebel); }
.terminwahl .tw-tag[aria-pressed="true"] .tw-wt, .terminwahl .tw-tag[aria-pressed="true"] .tw-mo { color: var(--gelb); }

.terminwahl .tw-zeiten { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.2rem, 1fr)); gap: .5rem; }
.terminwahl .tw-zeit { font: inherit; font-weight: 700; font-variant-numeric: tabular-nums; padding: .7rem .5rem; color: var(--tiefe); background: var(--weiss); border: 1.5px solid var(--linie); border-radius: var(--radius-klein); cursor: pointer; transition: border-color .15s ease, background-color .15s ease; }
.terminwahl .tw-zeit:hover { border-color: var(--tiefe); }
.terminwahl .tw-zeit[aria-pressed="true"] { background: var(--gelb); border-color: var(--gelb); }
.terminwahl .tw-leer { margin: 0; color: var(--grau); font-size: .95rem; }

.terminwahl .tw-form-titel { margin: 0 0 .75rem; font-size: .95rem; display: flex; align-items: center; gap: .6rem; }
.terminwahl .tw-auswahl { margin: 0; padding: .75rem 1rem; border-radius: var(--radius-klein); background: var(--nebel); color: var(--grau); font-weight: 600; font-size: .975rem; border-left: 4px solid var(--linie); }
.terminwahl .tw-auswahl.fertig { color: var(--tiefe); border-left-color: var(--gelb); background: #fbf4d9; }

.terminwahl .felder-2 { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.terminwahl .feld { margin-bottom: .9rem; }
.terminwahl .feld label { color: var(--tiefe); }
.terminwahl .feld input, .terminwahl .feld select, .terminwahl .feld textarea { background: var(--weiss); color: var(--tiefe); border: 1.5px solid var(--linie); }
.terminwahl .feld input:focus, .terminwahl .feld select:focus, .terminwahl .feld textarea:focus { border-color: var(--blau); }
.terminwahl .feld textarea { min-height: 5rem; }
.terminwahl .tw-fehler { margin: 0 0 1rem; padding: .85rem 1rem 1rem 2.1rem; border-radius: var(--radius-klein); background: #fdecea; color: #7a1c14; border: 1px solid #f0b8b2; font-size: .95rem; }
.terminwahl .tw-fehler[hidden] { display: none; }
.terminwahl .tw-fehler li { margin: .15rem 0; }
.terminwahl .tw-senden { width: 100%; justify-content: center; font-size: 1.05rem; }
.terminwahl .tw-senden:disabled { opacity: .45; cursor: not-allowed; }
.terminwahl .tw-klein { margin: .9rem 0 0; color: var(--grau); font-size: .875rem; }
.terminwahl .tw-klein a { color: var(--blau); }

.terminwahl .tw-erfolg { display: grid; gap: 1rem; padding: clamp(1rem, 3vw, 1.5rem); border-radius: var(--radius); background: #fbf4d9; border: 1.5px solid var(--gelb); }
.terminwahl .tw-erfolg[hidden] { display: none; }
.terminwahl .tw-erfolg h4 { margin: 0; font-size: 1.2rem; }
.terminwahl .tw-erfolg p { margin: 0; }
.terminwahl .tw-erfolg .tw-zeile { font-weight: 800; font-size: 1.1rem; }
.terminwahl .tw-erfolg .btn-reihe { display: flex; flex-wrap: wrap; gap: .6rem; }
.terminwahl .tw-erfolg .btn { padding: .8rem 1.1rem; font-size: .95rem; }
.terminwahl.gesendet > .tw-kopf, .terminwahl.gesendet > .tw-schritt, .terminwahl.gesendet > form { display: none; }

.terminwahl .btn-sekundaer, .dunkel .terminwahl .btn-sekundaer { background: var(--weiss); color: var(--tiefe); border-color: var(--tiefe); }
.terminwahl .btn-sekundaer:hover, .dunkel .terminwahl .btn-sekundaer:hover { background: var(--tiefe); color: var(--nebel); }
.terminwahl .btn-primaer, .dunkel .terminwahl .btn-primaer { color: var(--tiefe); }
.dunkel .terminwahl a:not(.btn) { color: var(--blau); }
.dunkel .terminwahl :focus-visible { outline-color: var(--blau); }
.terminwahl noscript p { margin: 0; padding: 1rem; background: var(--nebel); border-radius: var(--radius-klein); }

@media (max-width: 560px) {
  .terminwahl .felder-2 { grid-template-columns: 1fr; gap: 0; }
  .terminwahl .tw-tag { min-width: 3.7rem; }
}
@media (prefers-reduced-motion: reduce) {
  .terminwahl * { transition: none !important; }
}
