/* Sportverein Kalender – © TE-Medien.de */
.sv-cal{
  /* Akzent/Event-Farben (im Plugin einstellbar) */
  --sv-primary:#2563eb;
  --sv-ev-bg:#fde2e4;   --sv-ev-text:#9d174d;
  --sv-reg-bg:#dcfce7;  --sv-reg-text:#166534;
  /* Struktur-/Themefarben (Standard = hell) */
  --sv-text:#111; --sv-muted:#6b7280; --sv-border:#e5e7eb; --sv-surface:#fff; --sv-head:#f1f5f9;
  font-family:inherit;font-size:14px;color:var(--sv-text);
}
/* Themes */
.sv-cal.sv-theme-auto{ --sv-text:inherit; --sv-muted:inherit; --sv-border:rgba(128,128,128,.35); --sv-surface:transparent; --sv-head:rgba(128,128,128,.12); }
.sv-cal.sv-theme-auto .sv-muted, .sv-cal.sv-theme-auto .sv-day, .sv-cal.sv-theme-auto .sv-card h4 span{opacity:.72}
.sv-cal.sv-theme-hell{ --sv-text:#111; --sv-muted:#6b7280; --sv-border:#e5e7eb; --sv-surface:#fff; --sv-head:#f1f5f9; }
.sv-cal.sv-theme-dunkel{ --sv-text:#e5e7eb; --sv-muted:#9ca3af; --sv-border:#374151; --sv-surface:#1f2937; --sv-head:#111827; }

.sv-loading,.sv-muted{color:var(--sv-muted)}
.sv-err{color:#b91c1c}
.sv-toolbar{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:.8rem}
.sv-btn{cursor:pointer;border:1px solid var(--sv-border);background:var(--sv-surface);border-radius:6px;padding:.35rem .7rem;font-size:.85rem;color:var(--sv-text)}
.sv-btn.active{background:var(--sv-primary);color:#fff;border-color:var(--sv-primary)}
.sv-nav{display:inline-flex;align-items:center;gap:.4rem;margin-left:.4rem}
.sv-label{min-width:9rem;text-align:center;display:inline-block}
.sv-select,.sv-search{padding:.35rem;border:1px solid var(--sv-border);border-radius:6px;background:var(--sv-surface);color:var(--sv-text)}
.sv-search{width:100%;max-width:320px;margin-bottom:.6rem}

/* Termin-Chip (eigene Farben, auf jedem Hintergrund lesbar) */
.sv-ev{display:block;background:var(--sv-ev-bg);color:var(--sv-ev-text);border-radius:5px;padding:3px 6px;margin:3px 0;font-size:.74rem;line-height:1.25;white-space:normal;word-break:break-word}
.sv-ev .sv-ev-date{display:block;font-weight:700;font-variant-numeric:tabular-nums}
.sv-ev .sv-ev-time{display:inline-block;font-weight:700;font-variant-numeric:tabular-nums}
.sv-ev .sv-ev-title{display:block;font-weight:600}
.sv-ev .sv-ev-room{display:block;opacity:.85}
.sv-ev .sv-ev-aud{display:inline-flex;align-items:center;gap:.25rem;margin-top:2px;font-size:.72rem;font-weight:600;background:#e3000f;color:#fff;padding:.05rem .4rem;border-radius:999px}
.sv-ev .sv-ev-aud svg{width:12px;height:12px;flex:0 0 auto}
.sv-ev{cursor:pointer}
.sv-ev .sv-ev-cap{display:inline-block;margin-top:1px;opacity:.85;font-size:.7rem}
.sv-ev.sv-reg{background:var(--sv-reg-bg);color:var(--sv-reg-text);cursor:pointer}

/* Monatsraster */
.sv-grid{width:100%;border-collapse:collapse;table-layout:fixed}
.sv-grid th{background:var(--sv-head);border:1px solid var(--sv-border);padding:4px;font-size:.78rem}
.sv-grid td{border:1px solid var(--sv-border);vertical-align:top;min-height:96px;height:auto;padding:3px;font-size:.72rem;background:var(--sv-surface)}
.sv-grid td.sv-out{opacity:.55}
.sv-grid td.sv-today{outline:2px solid var(--sv-primary);outline-offset:-2px}
.sv-day{font-weight:700;color:var(--sv-muted);font-size:.72rem}

/* Woche / Jahr */
.sv-week,.sv-year{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.6rem}
.sv-card{border:1px solid var(--sv-border);border-radius:8px;padding:.6rem;background:var(--sv-surface)}
.sv-card h4{margin:.1rem 0 .4rem}.sv-card h4 span{color:var(--sv-muted);font-weight:400}

/* Liste / Tabelle */
.sv-table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}
.sv-table th,.sv-table td{border:1px solid var(--sv-border);padding:.4rem;text-align:left;font-size:.85rem}
.sv-table th{background:var(--sv-head);user-select:none;white-space:nowrap}

/* Karten */
.sv-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.7rem}
.sv-ccard{border:1px solid var(--sv-border);border-radius:10px;padding:.8rem;background:var(--sv-surface);border-top:4px solid var(--sv-primary)}
.sv-ccard-date{font-size:.8rem;color:var(--sv-muted)}
.sv-ccard-title{font-weight:700;font-size:1.05rem;margin:.15rem 0}
.sv-tag{display:inline-block;background:var(--sv-ev-bg);color:var(--sv-ev-text);border-radius:99px;padding:.1rem .55rem;font-size:.75rem;margin-bottom:.4rem}
.sv-ccard dl{margin:.3rem 0 0;display:grid;grid-template-columns:auto 1fr;gap:.1rem .5rem;font-size:.85rem}
.sv-ccard dt{color:var(--sv-muted)}.sv-ccard dd{margin:0}
.sv-ccard-act{margin-top:.6rem}

/* Agenda */
.sv-ag-day{margin-bottom:.9rem}
.sv-ag-head{font-weight:700;background:var(--sv-head);padding:.35rem .6rem;border-radius:6px;border-left:4px solid var(--sv-primary)}
.sv-ag-row{display:flex;gap:.7rem;align-items:flex-start;padding:.5rem .2rem;border-bottom:1px solid var(--sv-border)}
.sv-ag-time{flex:0 0 96px;font-weight:600;font-variant-numeric:tabular-nums}
.sv-ag-main{flex:1 1 auto}.sv-ag-main strong{display:block}
.sv-ag-act{flex:0 0 auto}

/* Kursplan */
.sv-kp{border:1px solid var(--sv-border);border-radius:10px;margin-bottom:.9rem;overflow:hidden;background:var(--sv-surface)}
.sv-kp-head{background:var(--sv-head);border-left:4px solid var(--sv-primary);padding:.6rem .8rem}
.sv-kp-title{font-weight:700;font-size:1.05rem}
.sv-kp-metas{display:flex;flex-wrap:wrap;gap:.2rem 1rem;margin-top:.2rem;font-size:.85rem}
.sv-kp-meta b{font-weight:600}
.sv-kp-row{display:flex;gap:.7rem;align-items:center;padding:.4rem .8rem;border-top:1px solid var(--sv-border);font-size:.88rem}
.sv-kp-date{flex:0 0 9.5rem;font-weight:600;font-variant-numeric:tabular-nums}
.sv-kp-time{flex:0 0 7rem;font-variant-numeric:tabular-nums}
.sv-kp-room{color:var(--sv-muted)}
.sv-kp-reg{margin-left:auto}

/* Upcoming */
.sv-up-row{display:flex;flex-wrap:wrap;gap:.2rem .8rem;align-items:baseline;padding:.4rem .2rem;border-bottom:1px solid var(--sv-border)}
.sv-up-date{font-weight:700;font-variant-numeric:tabular-nums;min-width:8.5rem}
.sv-up-time{font-variant-numeric:tabular-nums;color:var(--sv-muted)}
.sv-up-title{font-weight:600}
.sv-up-room,.sv-up-ul,.sv-up-cat{color:var(--sv-muted);font-size:.9em}
.sv-up-reg{margin-left:auto}

/* Modal (immer hell, eigenständig) */
.sv-modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:99999;padding:12px;box-sizing:border-box}
.sv-modal-box{background:#fff;color:#111;border-radius:10px;padding:1.2rem;max-width:420px;width:92%;max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch}
.sv-modal-box label{display:flex;flex-direction:column;gap:.2rem;margin:.5rem 0;font-size:.85rem}
.sv-modal-box input{padding:.45rem;border:1px solid #cbd5e1;border-radius:6px}
.sv-modal-box .sv-check{flex-direction:row;align-items:center;gap:.4rem}
.sv-modal-act{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.8rem}
.sv-msg{margin-top:.5rem;font-size:.85rem}.sv-msg.ok{color:#166534}.sv-msg.err{color:#b91c1c}

/* Credit (nur Admin-Vorschau) */
.sv-credit{margin-top:.6rem;font-size:.72rem;color:var(--sv-muted);text-align:right}

/* Mobil */
@media (max-width:560px){
  .sv-cards,.sv-week,.sv-year{grid-template-columns:1fr}
  .sv-ag-row,.sv-kp-row,.sv-up-row{flex-wrap:wrap}
  .sv-ag-time{flex-basis:100%}
  .sv-kp-date,.sv-up-date{flex-basis:100%}
  .sv-kp-reg,.sv-up-reg{margin-left:0;flex-basis:100%}
  .sv-toolbar .sv-label{min-width:7rem}
  .sv-grid td{font-size:.68rem}
}

/* Admin: Shortcode-Builder */
.svb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.7rem;max-width:760px}
.svb-grid label{display:flex;flex-direction:column;font-size:.85rem;gap:.2rem}
.svb-out{width:100%;max-width:760px;font-family:monospace;padding:.5rem;margin-top:.6rem}
.svb-preview{border:1px dashed #cbd5e1;border-radius:8px;padding:1rem;margin-top:.8rem;background:#fff}
.svb-f{display:inline-flex;align-items:center;gap:.25rem;margin-right:.8rem;font-size:.85rem}
.svb-tabs{display:flex;flex-wrap:wrap;gap:.3rem;border-bottom:2px solid #dcdcde;margin:.4rem 0 1rem}
.svb-tab-btn{cursor:pointer;border:1px solid #dcdcde;border-bottom:0;background:#f0f0f1;color:#1d2327;border-radius:6px 6px 0 0;padding:.45rem .9rem;font-size:.9rem;margin-bottom:-2px}
.svb-tab-btn.active{background:#fff;border-bottom:2px solid #fff;font-weight:600}
.svb-panel{margin-bottom:1rem}

/* Absage „fällt aus“ */
.sv-x{display:inline-block;background:#fee2e2;color:#991b1b;border-radius:4px;padding:0 5px;font-size:.7rem;font-weight:700;text-decoration:none}
.sv-ev-cancel .sv-ev-title{text-decoration:line-through;opacity:.75}
.sv-ev-note{display:block;font-size:.68rem;opacity:.85;text-decoration:none}
.sv-x-wrap{display:block;margin-top:2px;text-decoration:none}
.sv-x-note{font-size:.8em;opacity:.8;text-decoration:none}

/* ===== Team / Übungsleiter ===== */
.svt-photo{width:72px;height:72px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.svt-img{width:100%;height:100%;object-fit:cover;display:block}
.svt-ph{display:flex;align-items:center;justify-content:center;background:var(--sv-ev-bg,#eef2ff);color:var(--sv-ev-text,#64748b)}
.svt-ph svg{opacity:.7}
.svt-name{font-weight:600;font-size:1rem}
.svt-sub{color:var(--sv-muted,#6b7280);font-size:.85rem}
.svt-links{display:flex;gap:.45rem;flex-wrap:wrap}
.svt-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid #cbd5e1;text-decoration:none;color:var(--sv-text,#111)}
.svt-call{color:#334155}
.svt-wa{color:#1f9d55}
.svt-mail{color:#185fa5}
/* card */
.svt-cards{display:grid;gap:.8rem}
.svt-card{border:1px solid var(--sv-border,#e5e7eb);border-radius:var(--svt-radius,14px);padding:1.1rem;text-align:center;background:var(--sv-surface,#fff);display:flex;flex-direction:column;align-items:center;gap:.35rem}
.svt-card .svt-photo{margin-bottom:.2rem}
.svt-card .svt-links{justify-content:center;margin-top:.4rem}
/* row */
.svt-rows{display:flex;flex-direction:column;gap:.7rem}
.svt-row{display:flex;align-items:center;gap:14px;border:1px solid var(--sv-border,#e5e7eb);border-radius:var(--svt-radius,14px);padding:.8rem 1rem;background:var(--sv-surface,#fff)}
.svt-row .svt-photo{width:60px;height:60px;flex:0 0 60px}
.svt-row-body{flex:1}
.svt-row .svt-links{margin-left:auto}
/* inline */
.svt-inline-wrap{display:flex;flex-direction:column;gap:.4rem}
.svt-inline{display:flex;align-items:center;gap:10px;border:1px solid var(--sv-border,#e5e7eb);border-radius:var(--svt-radius,999px);padding:5px 12px;background:var(--sv-surface,#fff)}
.svt-inline .svt-photo{width:34px;height:34px;flex:0 0 34px}
.svt-inline .svt-links{margin-left:auto}
.svt-inline .svt-btn{width:30px;height:30px}
@media(max-width:560px){ .svt-row{flex-wrap:wrap} .svt-row .svt-links{margin-left:0;flex-basis:100%} }

/* ===== Datum-View (nextdate) ===== */
.sv-nd-wrap{display:flex;flex-direction:column;gap:.35rem}
.sv-nd-l{align-items:flex-start}
.sv-nd-c{align-items:center}
.sv-nd-r{align-items:flex-end}
.sv-nd{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.3}
.sv-nd-bg{padding:3px 10px;border-radius:var(--svt-radius,8px)}
.sv-nd-ico{display:inline-flex;align-items:center}
.sv-nd-shadow{text-shadow:-1px -1px 0 rgba(255,255,255,.7), 1px 1px 0 rgba(0,0,0,.6), 0 0 2px rgba(0,0,0,.35)}

/* ===== Räume: Verfügbarkeit + Buchung ===== */
.svr-nav{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem}
.svr-legend{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.8rem}
.svr-room{margin-bottom:1.2rem}
.svr-room h3{margin:.2rem 0 .5rem}
.svr-grid{border-collapse:collapse;width:100%;font-size:.8rem}
.svr-grid th{background:var(--sv-head,#f1f5f9);border:1px solid var(--sv-border,#e5e7eb);padding:4px;font-weight:500}
.svr-grid td{border:1px solid var(--sv-border,#e5e7eb);padding:2px;text-align:center;vertical-align:middle}
.svr-time{white-space:nowrap;font-weight:600;background:var(--sv-head,#f1f5f9)}
.svr-cell{display:block;padding:.3rem;border-radius:5px;font-size:.72rem;border:0}
.svr-cell.free{background:var(--sv-reg-bg,#dcfce7);color:var(--sv-reg-text,#166534);cursor:default}
button.svr-cell.free{cursor:pointer;width:100%}
button.svr-cell.free:hover{filter:brightness(.95)}
.svr-cell.confirmed{background:#e5e7eb;color:#374151}
.svr-cell.requested{background:#fef3c7;color:#92400e}
.svr-cell.blocked{background:#fed7aa;color:#9a3412}
.svr-cell.external{background:#ede9fe;color:#5b21b6}
.svr-cell.course{background:#fecaca;color:#991b1b}
.svr-cell.closed{background:transparent}
.svr-slots{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 .6rem}
.svr-slot{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem;border:1px solid #cbd5e1;border-radius:6px;padding:3px 8px}

/* ===== Login / Auth ===== */
.sv-auth-box{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.sv-auth-form{display:flex;flex-direction:column;gap:.5rem;max-width:320px}
.sv-auth-form label{display:flex;flex-direction:column;gap:.2rem;font-size:.9rem}
.sv-auth-form input{padding:.45rem;border:1px solid #cbd5e1;border-radius:6px}

/* Mini-Login im Buchungs-Modal */
.sv-mini{font-size:.85rem;margin:.2rem 0 .4rem;color:var(--sv-muted,#6b7280)}
.sv-mini-toggle{color:#185fa5;text-decoration:underline}
.sv-mini-form{display:none;flex-wrap:wrap;gap:.35rem;align-items:center;margin-top:.4rem}
.sv-mini-form input{padding:.35rem;border:1px solid #cbd5e1;border-radius:6px;flex:1 1 40%}
.sv-mini-msg{font-size:.8rem}.sv-mini-msg.err{color:#b91c1c}

/* Sperren/extern in Kalender-Events */
.sv-ev.sv-ev-block{background:#fed7aa;color:#9a3412}
.sv-ev.sv-ev-ext{background:#ede9fe;color:#5b21b6}

/* ===== Ticker (Laufband) ===== */
.sv-ticker{overflow:hidden;white-space:nowrap;width:100%;border-radius:var(--svt-radius,6px);padding:.4rem 0}
.sv-ticker-track{display:inline-block;white-space:nowrap;will-change:transform;animation-name:sv-marquee;animation-timing-function:linear;animation-iteration-count:infinite}
.sv-ticker:hover .sv-ticker-track{animation-play-state:paused}
@keyframes sv-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.sv-tk-item{padding:0 .4rem;font-weight:600}
.sv-tk-sep{opacity:.45;padding:0 .25rem}
.sv-tk-gap{display:inline-block;width:3rem}
@media (prefers-reduced-motion: reduce){ .sv-ticker-track{animation:none} }

/* Kategorie-Tags in Kalender-Events (max 2, rechtsbündig) */
.sv-ev-tags{float:right;display:flex;flex-direction:column;align-items:flex-end;gap:1px;margin:0 0 1px 4px}
.sv-ev-tag{font-size:.6rem;line-height:1.35;padding:0 4px;border-radius:3px;white-space:nowrap;max-width:7rem;overflow:hidden;text-overflow:ellipsis}

/* ===== Raumdetails: Kachel (Variante C) + Modal ===== */
.svd-grid{display:grid;gap:.9rem}
.svd-card{position:relative;height:190px;border-radius:var(--svd-radius,10px);overflow:hidden;background:#9aa6b2;cursor:pointer;outline:none}
.svd-card:focus-visible{box-shadow:0 0 0 3px var(--sv-primary,#2563eb)}
.svd-photo{position:absolute;inset:0;background-size:cover;background-position:center;background-color:#9aa6b2;transition:transform .5s ease}
.svd-card:hover .svd-photo,.svd-card:focus-visible .svd-photo{transform:scale(1.12)}
.svd-photo-ph{display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.55)}
.svd-scrim{position:absolute;inset:0;background:rgba(15,23,42,.5);transition:background .4s ease}
.svd-card:hover .svd-scrim,.svd-card:focus-visible .svd-scrim{background:rgba(15,23,42,.6)}
.svd-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px}
.svd-title{color:#fff;font-size:1.15rem;font-weight:600;line-height:1.2;text-shadow:0 1px 4px rgba(0,0,0,.55);transition:transform .45s ease}
.svd-sub{color:#fff;font-size:.8rem;opacity:0;text-shadow:0 1px 4px rgba(0,0,0,.6);transform:translateY(48px);transition:opacity .4s ease,transform .45s ease}
.svd-card:hover .svd-title,.svd-card:focus-visible .svd-title{transform:translateY(-56px)}
.svd-card:hover .svd-sub,.svd-card:focus-visible .svd-sub{opacity:1;transform:translateY(56px)}
@media (prefers-reduced-motion: reduce){ .svd-photo,.svd-title,.svd-sub,.svd-scrim{transition:none} .svd-sub{opacity:1;transform:none} .svd-card:hover .svd-title{transform:none} }
/* Modal (Variante 3, zentriert kompakt) */
.svd-box{position:relative;text-align:center;max-width:420px;padding:0 0 1.2rem}
.svd-x{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:20px;line-height:1;cursor:pointer;z-index:2}
.svd-m-photo{height:170px;background-size:cover;background-position:center;background-color:#9aa6b2;border-radius:10px 10px 0 0}
.svd-m-photo.svd-photo-ph{display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.6)}
.svd-m-title{font-size:1.2rem;font-weight:700;margin:.8rem 1.2rem 0}
.svd-m-sub{color:#6b7280;font-size:.9rem;margin:.1rem 1.2rem 0}
.svd-m-desc{font-size:.9rem;line-height:1.6;text-align:left;margin:.8rem 1.2rem 0;color:#111}
.svd-m-desc p{margin:.3rem 0}
.svd-map{margin:.9rem 1.2rem 0;border-radius:8px;overflow:hidden;border:1px solid #e5e7eb}
.svd-map iframe{display:block;width:100%;height:170px;border:0}
.svd-addr{font-size:.82rem;color:#6b7280;margin:.4rem 1.2rem 0;text-align:center}
.svd-addrlink{display:inline-block;margin:.9rem 1.2rem 0;font-size:.9rem;color:#185fa5}
.svd-m-cal{display:inline-flex;align-items:center;gap:.4rem;margin:1rem 1.2rem 0;text-decoration:none}
.svd-m-cal svg{width:16px;height:16px}
@media(max-width:560px){ .svd-grid{grid-template-columns:1fr!important} }

/* Kategorie-Tags in Kalender-Events (max 2, rechtsbuendig) */
.sv-ev-tags{float:right;display:flex;flex-direction:column;align-items:flex-end;gap:1px;margin:0 0 1px 4px}
.sv-ev-tag{font-size:.6rem;line-height:1.35;padding:0 4px;border-radius:3px;white-space:nowrap;max-width:7rem;overflow:hidden;text-overflow:ellipsis}

/* ===== Raumdetails: Kachel (Variante C) + Modal ===== */
.svd-grid{display:grid;gap:.9rem}
.svd-card{position:relative;height:190px;border-radius:var(--svd-radius,10px);overflow:hidden;background:#9aa6b2;cursor:pointer;outline:none}
.svd-card:focus-visible{box-shadow:0 0 0 3px var(--sv-primary,#2563eb)}
.svd-photo{position:absolute;inset:0;background-size:cover;background-position:center;background-color:#9aa6b2;transition:transform .5s ease}
.svd-card:hover .svd-photo,.svd-card:focus-visible .svd-photo{transform:scale(1.12)}
.svd-photo-ph{display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.55)}
.svd-scrim{position:absolute;inset:0;background:rgba(15,23,42,.5);transition:background .4s ease}
.svd-card:hover .svd-scrim,.svd-card:focus-visible .svd-scrim{background:rgba(15,23,42,.6)}
.svd-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px}
.svd-title{color:#fff;font-size:1.15rem;font-weight:600;line-height:1.2;text-shadow:0 1px 4px rgba(0,0,0,.55);transition:transform .45s ease}
.svd-sub{color:#fff;font-size:.8rem;opacity:0;text-shadow:0 1px 4px rgba(0,0,0,.6);transform:translateY(48px);transition:opacity .4s ease,transform .45s ease}
.svd-card:hover .svd-title,.svd-card:focus-visible .svd-title{transform:translateY(-56px)}
.svd-card:hover .svd-sub,.svd-card:focus-visible .svd-sub{opacity:1;transform:translateY(56px)}
@media (prefers-reduced-motion: reduce){ .svd-photo,.svd-title,.svd-sub,.svd-scrim{transition:none} .svd-sub{opacity:1;transform:none} .svd-card:hover .svd-title{transform:none} }
.svd-box{position:relative;text-align:center;max-width:420px;padding:0 0 1.2rem}
.svd-x{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:20px;line-height:1;cursor:pointer;z-index:2}
.svd-m-photo{height:170px;background-size:cover;background-position:center;background-color:#9aa6b2;border-radius:10px 10px 0 0}
.svd-m-photo.svd-photo-ph{display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.6)}
.svd-m-title{font-size:1.2rem;font-weight:700;margin:.8rem 1.2rem 0}
.svd-m-sub{color:#6b7280;font-size:.9rem;margin:.1rem 1.2rem 0}
.svd-m-desc{font-size:.9rem;line-height:1.6;text-align:left;margin:.8rem 1.2rem 0;color:#111}
.svd-m-desc p{margin:.3rem 0}
.svd-map{margin:.9rem 1.2rem 0;border-radius:8px;overflow:hidden;border:1px solid #e5e7eb}
.svd-map iframe{display:block;width:100%;height:170px;border:0}
.svd-addr{font-size:.82rem;color:#6b7280;margin:.4rem 1.2rem 0;text-align:center}
.svd-addrlink{display:inline-block;margin:.9rem 1.2rem 0;font-size:.9rem;color:#185fa5}
.svd-m-cal{display:inline-flex;align-items:center;gap:.4rem;margin:1rem 1.2rem 0;text-decoration:none}
.svd-m-cal svg{width:16px;height:16px}
@media(max-width:560px){ .svd-grid{grid-template-columns:1fr!important} }

/* Spielort (aus iCal) – optional, dezent */
.sv-ev-ort{display:block;opacity:.8;font-size:.95em}
.sv-up-ort{color:var(--sv-muted);font-size:.9em}

/* ===== Fußball: Ligaspiele + Tabelle ===== */
.svf-block{margin:0 0 1.2rem}
.svf-h{margin:.2rem 0 .5rem;font-size:1.05rem;border-left:4px solid var(--sv-primary);padding-left:.5rem}
.svf-scroll{overflow-x:auto}
.svf-matches td.svf-score{font-weight:700;text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}
.svf-link{color:var(--sv-primary);text-decoration:none;white-space:nowrap}
.svf-table td{font-variant-numeric:tabular-nums;text-align:center}
.svf-table td.svf-team{text-align:left}
.svf-table th:nth-child(2){text-align:left}
.svf-own{background:var(--sv-reg-bg);color:var(--sv-reg-text)}
.svf-own td{font-weight:600}

/* Fußball: Spielart-Badges + Tabellen-Markierung der eigenen Mannschaft */
.svf-art{display:inline-block;font-size:.7rem;line-height:1.4;padding:0 .45rem;border-radius:99px;white-space:nowrap;font-weight:600}
.svf-art-liga{background:#dbeafe;color:#1e40af}
.svf-art-pokal{background:#fef3c7;color:#92400e}
.svf-art-freundschaft{background:#e5e7eb;color:#374151}
.svf-art-turnier{background:#ede9fe;color:#5b21b6}
.svf-art-futsal{background:#ccfbf1;color:#0f766e}
.svf-art-beach{background:#ffedd5;color:#9a3412}
.svf-art-sonstige{background:#f1f5f9;color:#475569}
.svf-own td{background:var(--sv-reg-bg)!important;color:var(--sv-reg-text)!important;font-weight:600}

/* ===== Kurs-Kacheln (sv_kursdetails) ===== */
.svk-card .svd-inner{justify-content:center;gap:.45rem}
.svk-card:hover .svd-title,.svk-card:focus-visible .svd-title{transform:none}
.svk-next{display:inline-flex;align-items:center;gap:.35rem;color:#fff;font-size:.82rem;font-weight:500;text-shadow:0 1px 4px rgba(0,0,0,.6);opacity:.96}
.svk-next svg{flex:0 0 auto}
.svk-meta{margin:.25rem 0;font-size:.92rem}
.svk-sesh{margin-top:.7rem}
.svk-sesh-h{font-weight:600;margin-bottom:.35rem}
.svk-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}
.svk-list li{display:flex;align-items:center;gap:.4rem;font-size:.9rem}
.svk-list li svg{flex:0 0 auto;color:var(--sv-primary,#2563eb)}

/* Kurs-Kacheln: Hover-Animation wie bei den Räumen */
.svk-card .svd-photo{background-color:#475569}
.svk-card .svd-scrim{background:rgba(15,23,42,.34)}
.svk-card .svd-inner{transition:transform .45s ease}
.svk-card:hover .svd-inner,.svk-card:focus-visible .svd-inner{transform:translateY(-12px)}
.svk-cat{position:absolute;left:0;right:0;bottom:16px;text-align:center;color:#fff;font-size:.82rem;font-weight:500;opacity:0;transform:translateY(14px);text-shadow:0 1px 4px rgba(0,0,0,.6);transition:opacity .4s ease,transform .45s ease;padding:0 12px;box-sizing:border-box}
.svk-card:hover .svk-cat,.svk-card:focus-visible .svk-cat{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion: reduce){ .svk-card .svd-inner,.svk-cat{transition:none} .svk-cat{opacity:1;transform:none} .svk-card:hover .svd-inner{transform:none} }
/* Art-Badge (Kurs/Sportgruppe/Event) */
.svk-kind-wrap{position:absolute;top:10px;left:10px;z-index:2}
.svk-kind{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.7rem;font-weight:700;color:#fff;letter-spacing:.02em;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.svd-m-badge{margin:.15rem 1.2rem 0}
/* Alternierendes Farb-Overlay auf Angebots-Kacheln (Parameter overlay/overlay_a/overlay_b) */
.svk-ov{position:absolute;inset:0;background:var(--svk-ov-a,rgba(255,122,122,.5));transition:background .3s ease;pointer-events:none}
.svk-ov.svk-ov-b{background:var(--svk-ov-b,rgba(60,59,59,.5))}
/* Bei aktivem Farb-Overlay (sv_kursdetails) das Foto entsättigen, Farbe kommt nur vom Overlay */
.svk-ov-on .svd-photo{filter:grayscale(1)}
/* Zielgruppe-Anzeige */
.svk-aud{margin-top:5px;display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:600;color:#fff;background:rgba(0,0,0,.32);padding:.1rem .5rem;border-radius:999px}
.svk-hero-aud{display:inline-flex;align-items:center;gap:.4rem;margin:.15rem 0 .25rem;font-size:.95rem;font-weight:600;color:rgba(255,255,255,.92)}
.svk-hero-aud svg{flex:0 0 auto}
.sv-up-aud{color:var(--sv-primary,#2563eb);font-weight:600}
/* Zielgruppe als Badge oben-zentral über dem Titel (sv_kursdetails-Kachel) */
.svk-aud-top{align-self:center;margin:0 0 .45rem;background:#e3000f;color:#fff;font-size:.78rem;font-weight:700;padding:.16rem .65rem;border-radius:999px;box-shadow:0 1px 5px rgba(0,0,0,.35);max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== Kursliste (sv_kalender view="kursliste") ===== */
.svkl{display:flex;flex-direction:column;gap:.5rem}
.svkl-row{display:grid;grid-template-columns:var(--svkl-cols, minmax(160px,1.6fr) 1fr);align-items:center;column-gap:1.4rem;row-gap:.2rem;padding:.7rem .95rem;border:1px solid #e5e7eb;border-radius:12px;background:#fff;cursor:pointer;text-decoration:none;color:inherit;transition:box-shadow .15s ease,border-color .15s ease}
.svkl-row:hover,.svkl-row:focus-visible{box-shadow:0 6px 18px rgba(0,0,0,.09);border-color:var(--sv-primary,#2563eb);outline:none}
.svkl-cell{min-width:0;display:flex;align-items:center;gap:.35rem;color:#475569;font-size:.92rem}
.svkl-namecell{flex-direction:column;align-items:flex-start;gap:.18rem}
.svkl-thumbcell{padding:0;position:relative}
.svkl-thumb{position:relative;display:block;width:125px;height:85px;border-radius:8px;background-size:cover;background-position:center;background-color:#cbd5e1;overflow:hidden;flex:0 0 auto}
.svkl-thumb-gs{filter:grayscale(1)}
.svkl-thumb-ov::after{content:"";position:absolute;inset:0;border-radius:8px;background:var(--svkl-ov,rgba(255,122,122,.5));pointer-events:none}
.svkl-name{font-weight:700;font-size:1.06rem;color:#0f172a}
.svkl-aud{background:#e3000f;color:#fff;font-size:.72rem;font-weight:700;padding:.12rem .55rem;border-radius:999px;white-space:nowrap}
.svkl-termine{font-weight:600;color:#0f172a}
.svkl-termine svg{color:#e3000f}
.svkl-cell svg{flex:0 0 auto;width:14px;height:14px}
.sv-theme-dunkel .svkl-row{background:#1e293b;border-color:#334155}
.sv-theme-dunkel .svkl-name,.sv-theme-dunkel .svkl-termine{color:#f1f5f9}
.sv-theme-dunkel .svkl-cell{color:#cbd5e1}
@media (max-width:700px){
  .svkl-row{grid-template-columns:1fr;align-items:flex-start;row-gap:.3rem;column-gap:.7rem}
  .svkl-namecell{flex-direction:column;align-items:flex-start;gap:.15rem}
  /* mit Bild: größeres Bild links über mehrere Zeilen; Titel/Zielgruppe/Termin/ÜL/Ort rechts daneben gestapelt */
  .svkl-bild .svkl-row{grid-template-columns:auto 1fr;align-items:stretch;column-gap:.85rem;row-gap:.2rem}
  .svkl-bild .svkl-thumbcell{grid-column:1;grid-row:1 / span var(--svkl-rows,4);align-items:stretch}
  .svkl-bild .svkl-thumb{width:96px;height:100%;min-height:90px}
  .svkl-bild .svkl-namecell{grid-column:2}
  .svkl-bild .svkl-termine,.svkl-bild .svkl-ul,.svkl-bild .svkl-room,.svkl-bild .svkl-cat{grid-column:2}
}
/* Hervorgehobene Datum-Pills im Kachel */
.svk-dates{display:flex;flex-direction:column;align-items:center;gap:.35rem;margin-top:.5rem}
.svk-datepill{display:inline-flex;align-items:center;gap:.35rem;background:var(--svk-date-bg,#e3000f);color:#fff;font-size:.82rem;font-weight:600;line-height:1.15;padding:.2rem .6rem;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.svk-datepill svg{flex:0 0 auto;width:14px;height:14px}
.svk-datehint{display:inline-flex;align-items:center;gap:.35rem;color:#fff;font-size:.82rem;font-weight:500;text-shadow:0 1px 4px rgba(0,0,0,.6)}
/* === Kurs-Modal Redesign (Hero + Bogen + ÜL-Karten) === */
.svk-box{ max-width:880px !important; width:auto; padding:0 !important; border-radius:16px; overflow:hidden auto; max-height:92vh; text-align:left; }
.svk-box .svd-x{ position:absolute; top:10px; right:12px; z-index:5; background:rgba(0,0,0,.35); color:#fff; border:0; width:34px; height:34px; border-radius:50%; font-size:1.4rem; line-height:1; cursor:pointer; }
.svk-hero{ position:relative; background:#0f1216; color:#fff; padding:1.7rem 1.7rem 2.8rem; }
.svk-hero-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; align-items:center; }
.svk-hero-photo{ aspect-ratio:16/10; min-height:190px; border-radius:14px; background-size:cover; background-position:center; box-shadow:0 12px 30px rgba(0,0,0,.4); }
.svk-hero-title{ color:#fff; font-size:2rem; font-weight:800; line-height:1.08; margin:0 0 .5rem; }
.svk-hero-badge{ margin:0 0 .5rem; }
.svk-hero-sesh-h{ font-weight:700; font-size:1.05rem; margin:.5rem 0 .25rem; }
.svk-hero-list{ list-style:none; margin:0 0 .4rem; padding:0; max-width:340px; }
.svk-hero-list li{ display:flex; justify-content:space-between; gap:1.2rem; padding:.28rem 0; border-bottom:1px solid rgba(255,255,255,.14); font-variant-numeric:tabular-nums; font-size:.92rem; }
.svk-hd-time{ opacity:.92; white-space:nowrap; }
.svk-regular2{ display:inline-flex; align-items:center; gap:.4rem; font-size:.92rem; opacity:.92; }
.svk-hero-desc{ color:rgba(255,255,255,.86); font-size:.92rem; line-height:1.55; margin:.7rem 0 0; }
.svk-hero-desc p{ margin:.2rem 0; }
.svk-hero-cta{ display:inline-block; margin-top:1.1rem; background:var(--svk-date-bg,#e3000f); color:#fff; font-weight:600; padding:.7rem 1.5rem; border-radius:8px; text-decoration:none; transition:filter .15s; }
.svk-hero-cta:hover{ filter:brightness(1.08); }
.svk-wave{ position:absolute; left:0; right:0; bottom:-1px; width:100%; height:48px; display:block; }
.svk-body{ background:#fff; color:#111; padding:0; }
.svk-body-h{ font-weight:700; font-size:1.05rem; margin:.1rem 0 .7rem; }
.svk-ulrow{ display:flex; flex-wrap:wrap; gap:1.1rem; }
.svk-ulc{ width:150px; text-align:center; }
.svk-ulc-ph{ width:64px; height:64px; border-radius:50%; overflow:hidden; margin:0 auto .45rem; background:#eef2f7; display:flex; align-items:center; justify-content:center; color:#94a3b8; }
.svk-ulc-ph img{ width:100%; height:100%; object-fit:cover; }
.svk-ulc-name{ font-weight:600; font-size:.95rem; color:#111; }
.svk-ulc-sub{ color:#6b7280; font-size:.82rem; margin-top:.1rem; }
.svk-ulc-links{ display:flex; justify-content:center; gap:.5rem; margin-top:.5rem; }
.svk-cbtn{ display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; border:1px solid #d8dde3; color:#475569; text-decoration:none; transition:background .15s,border-color .15s; }
.svk-cbtn:hover{ background:#f1f5f9; }
.svk-cbtn.svk-cwa{ color:#25D366; border-color:#bfe9cd; }
.svk-cbtn.svk-cwa:hover{ background:#eafaf0; }
.svk-desc{ color:#374151; font-size:.95rem; line-height:1.6; margin:.1rem 0 0; }
.svk-desc p{ margin:.3rem 0; }
.svk-desc :first-child{ margin-top:0; }
.svk-cols{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; align-items:start; margin-top:0; }
.svk-descwrap{ position:relative; background:#fff; padding:1.2rem 1.7rem 2.6rem; }
.svk-wave2{ position:absolute; left:0; right:0; bottom:-1px; width:100%; height:40px; display:block; }
/* Raum-Modal nutzt jetzt das Kurs-Modal-Layout (Hero/Welle/Body) – Abstände im Body angleichen */
.svd-modal .svk-lower .svd-map{margin:0 0 .9rem;border:1px solid #e5e7eb}
.svd-modal .svk-lower .svd-addr,.svd-modal .svk-lower .svd-addrlink{display:block;margin:.2rem 0 .6rem;text-align:center}
.svd-modal .svk-lower .svk-termine{margin-bottom:.4rem}
.svk-lower{ background:#f5f7fa; padding:1.4rem 1.7rem 1.6rem; }
.svk-desc{ text-align:left; }
.svk-desc .ql-align-center{ text-align:center; }
.svk-desc .ql-align-right{ text-align:right; }
.svk-desc .ql-align-justify{ text-align:justify; }
.svk-termine-h{ font-weight:700; font-size:1.05rem; margin:0 0 .35rem; color:#111; }
.svk-tlist{ list-style:none; margin:0; padding:0; }
.svk-tlist li{ display:flex; justify-content:space-between; gap:1rem; padding:.32rem 0; border-bottom:1px solid #e5e7eb; font-variant-numeric:tabular-nums; font-size:.92rem; color:#1f2937; }
.svk-regular2{ color:#374151; }
@media (max-width:600px){
  .svk-box{ width:95vw !important; max-width:95vw !important; max-height:95vh; }
  .svk-hero{ padding:1.2rem 1.1rem 2.1rem; }
  .svk-hero-grid{ grid-template-columns:1fr; gap:1rem; }
  .svk-hero-photo{ order:-1; aspect-ratio:16/9; min-height:0; }
  .svk-hero-title{ font-size:1.5rem; }
  .svk-hero-list{ max-width:none; }
  .svk-descwrap{ padding:1rem 1.1rem 2.2rem; }
  .svk-lower{ padding:1.1rem 1.1rem 1.3rem; }
  .svk-wave2{ height:30px; }
  .svk-ulc{ width:46%; }
  .svk-cols{ grid-template-columns:1fr; gap:1rem; }
  .svk-wave{ height:34px; }
}
/* Kachelhöhe je Displaygröße: Tablet & Handy flacher */
@media (max-width:900px){ .svk-card{height:165px} }
@media (max-width:600px){ .svk-card{height:120px} .svk-card .svd-title{font-size:1.05rem} .svk-dates{margin-top:.35rem} .svk-datepill{font-size:.78rem;padding:.16rem .5rem} }

/* Team-Layout "zentriert" (Hero) */
.svt-hero{display:flex;flex-wrap:wrap;justify-content:center;gap:1.8rem;text-align:center}
.svt-hero-item{display:flex;flex-direction:column;align-items:center;gap:.45rem;max-width:300px}
.svt-hero .svt-photo{width:240px;max-width:82vw;aspect-ratio:8/5;height:auto;border-radius:16px}
.svt-hero .svt-name{font-size:1.3rem;font-weight:600;line-height:1.2}
.svt-hero .svt-sub{color:var(--sv-muted,#64748b);font-size:.95rem}
.svt-hero .svt-links{justify-content:center;margin-top:.4rem}

/* Kurs-Modal: Termine + Übungsleiter zentriert */
.svk-sesh{text-align:center}
.svk-list{align-items:center}
.svk-ul{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin-top:.3rem}
.svk-ul-item{display:inline-flex;align-items:center;gap:.4rem}
.svk-ul-img{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:0 0 auto}

/* Raum-Modal: Aktionen + Terminliste */
.svd-m-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;margin-top:.7rem}
.svd-m-termine{margin-top:.7rem;text-align:center}
.svd-term-list{margin-top:.3rem}

/* Kurs-Modal: Interessentenliste */
.svk-interest{margin-top:.8rem;text-align:center}
.svk-int-form{margin-top:.4rem;display:flex;flex-direction:column;gap:.3rem;max-width:260px;margin-left:auto;margin-right:auto}
.svk-int-form input{padding:.4rem;border:1px solid #cbd5e1;border-radius:6px;font:inherit}
.svk-int-msg{display:block;margin-top:.2rem;font-size:.85rem}
.svk-int-msg.ok{color:#16a34a}.svk-int-msg.err{color:#dc2626}

/* Regeltermin-Zeile im Kurs-Modal */
.svk-regular{display:inline-flex;align-items:center;gap:.4rem;justify-content:center;margin-top:.35rem;font-weight:500;color:var(--sv-text,#111)}
.svk-regular svg{flex:0 0 auto;color:var(--sv-primary,#2563eb)}
/* Interesse-Box prägnanter */
.svk-interest{margin-top:.9rem;padding:.75rem;border:2px dashed var(--sv-primary,#2563eb);border-radius:12px;background:rgba(37,99,235,.07)}
.svk-interest .svk-sesh-h{color:var(--sv-primary,#2563eb);font-size:1rem;margin-bottom:.4rem}

/* Kurs-Modal: Location-Block + Teilen */
.svk-loc{margin-top:.5rem}
.svk-loc-h{display:inline-flex;align-items:center;gap:.35rem;font-weight:600}
.svk-loc-h svg{color:var(--sv-primary,#2563eb);flex:0 0 auto}
.svk-loc-addr{color:var(--sv-muted,#64748b);font-size:.92rem;margin-top:.1rem}
.svk-loc-route{margin-top:.45rem}
.svk-share{margin-top:.8rem;display:flex;align-items:center;gap:.4rem;justify-content:center;flex-wrap:wrap}
.svk-share-h{font-size:.85rem;color:var(--sv-muted,#64748b)}
.svk-share-wa{background:#25D366;color:#fff}
