/* Termine */
.tm-tag { margin-bottom: 1rem; }
.tm-tag-kopf { font-size: .85rem; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; color: var(--app-muted); margin: 0 0 .35rem; }
.tm-tag.heute .tm-tag-kopf { color: var(--app-brand); }
.tm-termin { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr) auto; gap: .75rem; align-items: center; padding: .5rem .75rem; border: 1px solid var(--app-line); border-radius: var(--app-radius); background: #fff; margin-bottom: .35rem; }
.tm-termin.gebucht { background: #f4faf6; }
.tm-termin.abgesagt { opacity: .55; }
.tm-termin.abgesagt a { text-decoration: line-through; }
.tm-zeit { font-variant-numeric: tabular-nums; font-size: .9rem; color: #3d464b; }
.tm-aktion form { margin: 0; }
.tm-ok { color: #1d6b43; font-size: .85rem; white-space: nowrap; }
.tm-raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; align-items: start; }
.tm-code { background: #fff; border: 1px solid var(--app-line); border-radius: var(--app-radius); padding: .4rem .6rem; font-size: .8rem; white-space: pre-wrap; word-break: break-all; }
.tm-kal { border-top: 1px solid var(--app-line); padding: .6rem 0; }
.tm-kal:first-of-type { border-top: 0; }
.tm-kal-kopf { display: flex; flex-wrap: wrap; gap: .5rem; align-items: baseline; margin-bottom: .35rem; }
@media (max-width: 600px) { .tm-termin { grid-template-columns: 1fr; } }
