/* Theorieplan Fahrplan – Frontend (v0.2, gehobenes Design) */
.tpfp{
	--tpfp-blue:#00a3ff;--tpfp-blue-d:#0077be;
	--tpfp-ink:#141a22;--tpfp-mut:#6b7480;--tpfp-line:#eaedf1;--tpfp-bg:#f7f9fb;
	--tpfp-wa:#25d366;--tpfp-wa-d:#1eb257;
	--tpfp-shadow:0 1px 2px rgba(20,26,34,.04),0 6px 20px rgba(20,26,34,.05);
	font-size:16px;line-height:1.5;color:var(--tpfp-ink);
	font-feature-settings:"tnum" 0;
}
.tpfp *{box-sizing:border-box}

/* Filterleiste */
.tpfp-filterbar{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;padding:16px 18px;background:#fff;border:1px solid var(--tpfp-line);border-radius:16px;box-shadow:var(--tpfp-shadow);margin:0 0 28px}
.tpfp-fgroup{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tpfp-flabel{font-weight:600;color:var(--tpfp-mut);font-size:13px;text-transform:uppercase;letter-spacing:.04em;margin-right:4px}
.tpfp-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border:1px solid var(--tpfp-line);background:#fff;border-radius:999px;font-size:14px;font-weight:500;cursor:pointer;color:var(--tpfp-ink);line-height:1.2;transition:all .15s ease}
.tpfp-chip:hover{border-color:var(--tpfp-blue);color:var(--tpfp-blue-d)}
.tpfp-chip.is-active{background:var(--tpfp-ink);border-color:var(--tpfp-ink);color:#fff}
.tpfp-chip:focus-visible{outline:3px solid rgba(0,163,255,.35);outline-offset:2px}
.tpfp-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 auto}
.tpfp-count{width:100%;margin:2px 0 0;font-size:13px;color:var(--tpfp-mut)}

/* Monatsabschnitt */
.tpfp-month{margin:0 0 30px}
.tpfp-month-title{font-size:24px;font-weight:600;margin:0 0 16px;padding-bottom:10px;border-bottom:2px solid var(--tpfp-line);position:relative}
.tpfp-month-title::after{content:"";position:absolute;left:0;bottom:-2px;width:52px;height:2px;background:var(--tpfp-blue)}
.tpfp-days{display:flex;flex-direction:column;gap:12px}

/* Tageskarte */
.tpfp-day{display:flex;flex-wrap:nowrap;gap:20px;align-items:stretch;padding:16px 20px;border:1px solid var(--tpfp-line);border-radius:14px;background:#fff;box-shadow:var(--tpfp-shadow)}
.tpfp-day.is-holiday{background:var(--tpfp-bg);box-shadow:none;border-style:dashed}
.tpfp-date{flex:0 0 128px;display:flex;flex-direction:column;justify-content:center;gap:1px;padding-right:18px;border-right:1px solid var(--tpfp-line)}
.tpfp-wd{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--tpfp-mut)}
.tpfp-dm{font-size:19px;font-weight:600;color:var(--tpfp-ink);letter-spacing:-.01em}

/* Termine je Tag */
.tpfp-day .tpfp-entries{flex:1 1 auto;display:flex;flex-direction:column;gap:10px;min-width:0}
.tpfp-entry{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;padding:12px 14px;border-radius:10px;background:var(--tpfp-bg);border:1px solid transparent;border-left:4px solid #ccc}
.tpfp-entry.tpfp-sonder{background:#eef7ff}
.tpfp-entry.tpfp-holiday{background:transparent;border:0;padding:6px 0}
.tpfp-holi{color:var(--tpfp-mut);font-style:italic;font-size:15px}
.tpfp-time{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap;color:var(--tpfp-ink);font-size:15px}
.tpfp-time .tpfp-sep{margin:0 5px;color:var(--tpfp-mut);font-weight:400}
.tpfp-main{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;flex:0 1 auto;min-width:0}
.tpfp-theme{font-weight:600;font-size:16px}
.tpfp-loc{display:inline-flex;align-items:center;gap:7px;color:#4a5462;font-size:14px;font-weight:600}
.tpfp-locrow{display:inline-flex;align-items:center;order:1}
.tpfp-badge{display:inline-block;padding:3px 11px;border-radius:999px;background:var(--tpfp-blue);color:#fff;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}

/* Teilnehmen (WhatsApp) – nur am selben Tag sichtbar (clientseitig via .is-today) */
.tpfp-signup{display:none;align-items:center;gap:7px;order:2;margin-left:auto}
.tpfp-signup.is-today{display:inline-flex}
.tpfp-join{display:none;align-items:center;gap:7px;padding:8px 16px;border-radius:999px;background:var(--tpfp-wa);color:#fff;font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .15s ease,transform .05s ease;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.tpfp-join:hover{background:var(--tpfp-wa-d);color:#fff}
.tpfp-join:active{transform:scale(.97)}
.tpfp-join:focus-visible{outline:3px solid rgba(37,211,102,.4);outline-offset:2px}
.tpfp-signup-num{display:inline-flex;align-items:center;gap:7px;color:var(--tpfp-wa-d);font-size:14px;font-weight:600;white-space:nowrap}
.tpfp-signup-num a{color:inherit;text-decoration:none}
.tpfp-signup-num a:hover{text-decoration:underline}
.tpfp-wa-ic{flex:0 0 auto}
.tpfp-note{flex:1 1 100%;font-size:13px;color:var(--tpfp-mut);margin-top:2px;order:3}

.tpfp-empty{padding:22px;text-align:center;color:var(--tpfp-mut);background:#fff;border:1px solid var(--tpfp-line);border-radius:14px;box-shadow:var(--tpfp-shadow)}
.tpfp-day[hidden],.tpfp-entry[hidden]{display:none}

/* Intro (Überschrift + Erklärung) */
.tpfp-intro{margin:0 0 26px;padding:18px 20px;background:#fff;border:1px solid var(--tpfp-line);border-left:4px solid var(--tpfp-blue);border-radius:14px;box-shadow:var(--tpfp-shadow)}
.tpfp-intro-title{font-size:21px;font-weight:600;margin:0 0 8px;color:var(--tpfp-ink)}
.tpfp-intro-text{margin:0;color:var(--tpfp-mut);font-size:15px;line-height:1.6;max-width:74ch}
.tpfp-intro-text strong{color:var(--tpfp-ink);font-weight:600}

/* Standort als Link zur Wegbeschreibung */
a.tpfp-loc{cursor:pointer;text-decoration:none}
a.tpfp-loc:hover{color:var(--tpfp-blue-d);text-decoration:underline}
a.tpfp-loc:focus-visible{outline:3px solid rgba(0,163,255,.35);outline-offset:2px;border-radius:4px}
.tpfp-pin{opacity:.55;margin-left:2px;flex:0 0 auto}
a.tpfp-loc:hover .tpfp-pin{opacity:1}

/* Mobil */
@media(max-width:640px){
	.tpfp-day{flex-direction:column;gap:12px;padding:14px 16px}
	.tpfp-date{flex-basis:auto;flex-direction:row;align-items:baseline;gap:8px;padding-right:0;border-right:0;border-bottom:1px solid var(--tpfp-line);padding-bottom:10px}
	.tpfp-dm{font-size:17px}
	.tpfp-entry{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 12px}
	.tpfp-time{order:0;font-size:16px}
	.tpfp-signup{order:1;margin-left:auto;margin-top:0}
	.tpfp-signup.is-today{display:inline-flex}
	.tpfp-signup .tpfp-join{display:inline-flex;padding:6px 13px;font-size:13px;box-shadow:none}
	.tpfp-signup .tpfp-wa-ic{width:14px;height:14px}
	.tpfp-signup-num{display:none}
	.tpfp-entry::after{content:"";flex-basis:100%;height:0;order:2}
	.tpfp-main{order:3}
	.tpfp-locrow{order:4;margin-left:auto}
	.tpfp-note{order:5;flex-basis:100%}
	.tpfp-filterbar{gap:12px 18px;padding:14px}
}
