/* Öffentliche Terminliste zum Einbetten */
:root { --green: #223d24; --text: #1c211c; --muted: #5f6a60; --line: #e2e6e0; --soft: #eef4ee; }
body { margin: 0; font: 15px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color: var(--text); background: transparent; }
body.theme-dark { --text: #eef2ed; --muted: #a9b5a9; --line: #354035; --soft: #243224; }
.bsg-embed { padding: 4px 2px; }
.month { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 1rem 0 .3rem; font-weight: 600; }
.month:first-child { margin-top: 0; }
.ev { display: flex; gap: .8rem; padding: .55rem 0; border-bottom: 1px solid var(--line); }
.ev:last-of-type { border-bottom: 0; }
.date { flex: 0 0 3rem; text-align: center; background: var(--soft); border-radius: 6px; padding: .2rem 0; line-height: 1.15; }
.date .wd { display: block; font-size: .7rem; color: var(--muted); }
.date .day { display: block; font-weight: 700; font-size: 1.1rem; }
.title { font-weight: 600; }
.meta { color: var(--muted); font-size: .88rem; }
.desc { font-size: .88rem; margin-top: .2rem; }
.type { display: inline-block; margin-left: .4rem; font-size: .72rem; border: 1px solid var(--line); border-radius: 999px; padding: 0 .45rem; }
.cancelled .title { text-decoration: line-through; color: var(--muted); }
.tag-cancel { text-decoration: none; display: inline-block; background: #b3261e; color: #fff; font-size: .7rem; border-radius: 4px; padding: 0 .35rem; margin-right: .2rem; }
.subscribe { margin-top: .8rem; font-size: .88rem; }
.subscribe a { color: var(--green); font-weight: 500; }
.theme-dark .subscribe a { color: #9fd3a3; }
.empty { color: var(--muted); }

/* ---------- Monatskalender ---------- */
body.is-month { --cal-bg: #ffffff; --cal-line: #dfe3dc; --cal-other: #f6f7f4; --t-training: #2f7a3e; --t-wettkampf: #b06b00; --t-versammlung: #2a5d9f; --t-termin: #6b7280; }
body.is-month.theme-dark { --cal-bg: #1b201b; --cal-line: #354035; --cal-other: #161a16; --t-training: #6cc483; --t-wettkampf: #e6a640; --t-versammlung: #7fb0ea; --t-termin: #a3aab5; }
.bsg-cal { background: var(--cal-bg); border: 1px solid var(--cal-line); border-radius: 12px; padding: 12px; }
.cal-head { display: flex; align-items: center; gap: .4rem; margin-bottom: .6rem; flex-wrap: wrap; }
.cal-today { border: 1px solid var(--cal-line); border-radius: 999px; padding: .3rem .9rem; text-decoration: none; color: var(--text); font-weight: 500; }
.cal-arrow { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%; text-decoration: none; color: var(--text); font-size: 1.4rem; line-height: 1; }
.cal-arrow:hover, .cal-today:hover { background: var(--soft); }
.cal-title { font-size: 1.2rem; font-weight: 500; margin: 0 0 0 .4rem; }
.cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--cal-line); border-left: 1px solid var(--cal-line); border-radius: 8px; overflow: hidden; }
.cal-wd { font-size: .7rem; font-weight: 600; text-transform: uppercase; color: var(--muted); text-align: center; padding: .35rem 0; border-right: 1px solid var(--cal-line); border-bottom: 1px solid var(--cal-line); }
.cal-day { min-height: 88px; border-right: 1px solid var(--cal-line); border-bottom: 1px solid var(--cal-line); padding: 3px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cal-day.is-other { background: var(--cal-other); }
.cal-day.is-other .cal-num { color: var(--muted); opacity: .7; }
.cal-num { font-size: .78rem; text-align: center; padding: 2px 0; }
.cal-day.is-today .cal-num { align-self: center; background: #1a73e8; color: #fff; border-radius: 999px; min-width: 1.6rem; font-weight: 700; }
.cal-ev { all: unset; box-sizing: border-box; cursor: pointer; display: block; width: 100%; font-size: .72rem; line-height: 1.3; padding: 1px 4px; border-radius: 4px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text); background: var(--soft); border-left: 3px solid var(--t-termin); }
.cal-ev b { font-weight: 600; }
.cal-ev:hover, .cal-ev:focus-visible { filter: brightness(.95); outline: 2px solid var(--t-termin); outline-offset: -1px; }
.t-training { border-left-color: var(--t-training); } .t-wettkampf { border-left-color: var(--t-wettkampf); }
.t-versammlung { border-left-color: var(--t-versammlung); } .t-termin { border-left-color: var(--t-termin); }
.cal-ev.is-cancelled { text-decoration: line-through; opacity: .6; }
.cal-more { font-size: .68rem; color: var(--muted); padding-left: 4px; }
.cal-detail { margin-top: .6rem; border: 1px solid var(--cal-line); border-radius: 8px; padding: .6rem .8rem; }
.cal-detail .ag-ev { border: 0; padding: 0; }
.cal-agenda { margin-top: .8rem; display: none; }
.ag-ev { display: flex; gap: .7rem; padding: .5rem 0 .5rem .5rem; border-bottom: 1px solid var(--cal-line); border-left: 3px solid var(--t-termin); margin-bottom: 4px; }
.ag-date { flex: 0 0 3rem; text-align: center; font-size: .75rem; color: var(--muted); line-height: 1.2; }
.ag-date strong { display: block; color: var(--text); font-size: .95rem; }
.ag-title { font-weight: 600; }
.ag-meta, .ag-desc { font-size: .85rem; color: var(--muted); }
.ag-ev.is-cancelled .ag-title { text-decoration: line-through; }
.cal-foot { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: .7rem; font-size: .85rem; }
.cal-foot a { color: #1a73e8; text-decoration: none; }
.theme-dark .cal-foot a { color: #8ab4f8; }
@media (max-width: 560px) {
  .cal-day { min-height: 52px; }
  .cal-ev { font-size: 0; padding: 0; height: 6px; border-left-width: 0; background: var(--t-termin); border-radius: 3px; }
  .cal-ev.t-training { background: var(--t-training); } .cal-ev.t-wettkampf { background: var(--t-wettkampf); } .cal-ev.t-versammlung { background: var(--t-versammlung); }
  .cal-more { display: none; }
  .cal-agenda { display: block; }          /* auf dem Handy: Liste der Monatstermine unter dem Raster */
  .cal-detail { display: none; }
}
.ag-ev.t-training { border-left-color: var(--t-training); } .ag-ev.t-wettkampf { border-left-color: var(--t-wettkampf); }
.ag-ev.t-versammlung { border-left-color: var(--t-versammlung); } .ag-ev.t-termin { border-left-color: var(--t-termin); }
