.app-tv-admin-cards{display:flex;gap:16px;flex-wrap:wrap;margin:20px 0}.app-tv-admin-card{background:#fff;border:1px solid #ccd0d4;border-radius:10px;padding:18px;min-width:170px}.app-tv-admin-card strong{display:block;margin-bottom:8px}.app-tv-admin-card span{font-size:30px;font-weight:700}.app-tv-admin-box{background:#fff;border:1px solid #ccd0d4;border-radius:10px;padding:16px;margin:16px 0;max-width:1100px}.app-tv-box{background:#fff;border:1px solid #ddd;border-radius:12px;padding:16px;margin:12px 0}.app-tv-list{display:flex;flex-direction:column;gap:12px}.app-tv-card{background:#fff;border:1px solid #ddd;border-left:6px solid #64748b;border-radius:12px;padding:12px}.app-tv-card summary{cursor:pointer;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.app-tv-date{font-weight:700}.app-tv-title{font-weight:700}.app-tv-type{font-size:13px;opacity:.8}.app-tv-detail{padding-top:10px}.app-tv-calendar-wrap{max-width:1100px;margin:0 auto}.app-tv-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0}.app-tv-calendar-head h2{margin:0;text-align:center}.app-tv-nav{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:#f1f5f9;text-decoration:none;font-size:28px}.app-tv-today-link{text-align:center;margin:-8px 0 12px}.app-tv-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.app-tv-weekdays>div{font-weight:700;text-align:center;background:#f8fafc;border-radius:8px;padding:8px}.app-tv-day{min-height:115px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:6px;overflow:hidden}.app-tv-day-empty{background:#f8fafc}.app-tv-is-today{outline:2px solid #2563eb}.app-tv-day-number{font-weight:700;margin-bottom:6px}.app-tv-cal-event{border-left:5px solid #64748b;background:#f8fafc;border-radius:8px;margin:4px 0;padding:4px 6px;font-size:13px}.app-tv-cal-event summary{cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-tv-cal-detail{padding-top:6px;font-size:13px}@media(max-width:700px){.app-tv-calendar-grid{gap:3px}.app-tv-weekdays>div{font-size:12px;padding:5px 2px}.app-tv-day{min-height:86px;padding:4px}.app-tv-cal-event{font-size:11px;padding:3px}.app-tv-card summary{display:block}.app-tv-card summary span{display:block;margin-bottom:3px}}
.app-tv-success{border-left:4px solid #16a34a}.app-tv-error{border-left:4px solid #dc2626}.app-tv-response-form{margin-top:12px;padding:12px;border:1px solid #d0d7de;border-radius:10px;background:#fff}.app-tv-response-form textarea{box-sizing:border-box}

.app-tv-calendar-filter{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:12px 0}.app-tv-calendar-filter select,.app-tv-calendar-filter button{padding:8px;border-radius:8px;border:1px solid #cbd5e1}.app-tv-status{font-size:12px;border-radius:999px;background:#f1f5f9;padding:3px 8px}.app-tv-card{box-shadow:0 1px 4px rgba(15,23,42,.06)}.app-tv-card summary::-webkit-details-marker{display:none}.app-tv-card summary:before{content:'›';font-size:24px;line-height:1;margin-right:2px}.app-tv-card[open] summary:before{content:'⌄'}.app-tv-response-form .button,.app-tv-response-form button{min-height:42px;border-radius:10px;font-weight:700}.app-tv-response-form label{line-height:1.8}.app-tv-response-form input[type=radio]{transform:scale(1.15);margin-right:5px}
@media(max-width:700px){.app-tv-list{gap:14px}.app-tv-card{border-radius:16px;padding:14px}.app-tv-card summary{position:relative;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:start}.app-tv-card summary:before{grid-row:1 / span 3}.app-tv-date{font-size:14px}.app-tv-title{font-size:19px;line-height:1.25}.app-tv-type,.app-tv-status{display:inline-block;width:max-content}.app-tv-detail p{margin:8px 0}.app-tv-box{border-radius:14px;padding:13px}.app-tv-response-form{padding:14px}.app-tv-response-form label{display:block;margin:7px 0}.app-tv-response-form input[type=number]{width:90px;padding:6px}.app-tv-response-form textarea{font-size:16px}.app-tv-response-form .button,.app-tv-response-form button{width:100%;font-size:16px}.app-tv-calendar-filter{justify-content:stretch}.app-tv-calendar-filter select,.app-tv-calendar-filter button{width:100%;font-size:15px}.app-tv-calendar-grid{display:block}.app-tv-weekdays{display:none}.app-tv-day{min-height:auto;margin:8px 0}.app-tv-day-empty{display:none}.app-tv-day-number{font-size:18px}.app-tv-cal-event{font-size:14px;padding:9px;margin:7px 0}.app-tv-cal-event summary{white-space:normal}.app-tv-cal-detail{font-size:14px}}

/* v3.1: Kalender wieder als Monatsraster und klickbare Filter unter dem Kalender */
.app-tv-filter-legend{margin:18px 0 90px;background:#fff;border-radius:18px;padding:16px;box-shadow:0 4px 18px rgba(15,23,42,.08);display:flex;gap:12px 18px;flex-wrap:wrap;align-items:center}.app-tv-filter-link{display:inline-flex;align-items:center;gap:7px;color:#111827;text-decoration:underline;font-weight:500}.app-tv-filter-link.is-active{font-weight:800;text-decoration:none}.app-tv-filter-dot{width:18px;height:18px;border-radius:999px;display:inline-block}.app-tv-calendar-filter{display:none!important}
@media(max-width:700px){.app-tv-calendar-wrap{padding:0 4px}.app-tv-calendar-grid{display:grid!important;grid-template-columns:repeat(7,1fr)!important;gap:2px!important}.app-tv-weekdays{display:grid!important}.app-tv-weekdays>div{font-size:11px;padding:5px 0;border-radius:0}.app-tv-day{display:block!important;min-height:88px!important;margin:0!important;border-radius:0!important;padding:3px!important}.app-tv-day-empty{display:block!important;background:#f8fafc!important}.app-tv-day-number{font-size:16px!important;margin-bottom:3px}.app-tv-cal-event{display:inline-block;width:8px;height:8px;border-radius:999px!important;padding:0!important;margin:2px!important;border-left:0!important;vertical-align:top;overflow:hidden}.app-tv-cal-event summary{font-size:0!important;line-height:0}.app-tv-cal-event summary::-webkit-details-marker{display:none}.app-tv-cal-event[open]{position:fixed;left:12px;right:12px;top:80px;width:auto;height:auto;z-index:9999;border-radius:14px!important;background:#fff!important;padding:14px!important;box-shadow:0 10px 40px rgba(0,0,0,.25);overflow:visible}.app-tv-cal-event[open] summary{font-size:18px!important;line-height:1.3;font-weight:700;white-space:normal}.app-tv-cal-event[open] .app-tv-cal-detail{font-size:15px}.app-tv-filter-legend{margin-bottom:110px;border-radius:18px;gap:13px 16px}.app-tv-filter-link{font-size:16px}.app-tv-filter-dot{width:16px;height:16px}}

/* v4.0 Fix: mobile Monatsansicht zeigt echte farbige Termindots */
@media(max-width:700px){.app-tv-cal-event{background:var(--tv-event-color,#64748b)!important;border:0!important}.app-tv-cal-event[open]{background:#fff!important;border-left:6px solid var(--tv-event-color,#64748b)!important}.app-tv-day:has(.app-tv-cal-event){background:#fff!important}.app-tv-calendar-head h2{font-size:30px}.app-tv-calendar-wrap .app-tv-filter-legend{max-height:220px;overflow:auto}.app-tv-list{padding-bottom:90px}.app-tv-card{margin:0 4px}.app-tv-card summary{min-height:86px}.app-tv-title{font-size:22px!important}.app-tv-date{font-size:16px!important}.app-tv-status{font-size:15px!important}}

/* v4.2 Mannschaftsfilter-Fenster */
.app-tv-team-window{margin:18px 0 100px;background:#fff;border-radius:18px;padding:16px;box-shadow:0 8px 28px rgba(15,23,42,.16);border:1px solid #e5e7eb}
.app-tv-team-window-head{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:20px;margin-bottom:12px}
.app-tv-team-window-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:#f1f5f9;color:#111827;text-decoration:none;font-size:28px;line-height:1}
.app-tv-team-window-list{display:grid;gap:10px}
.app-tv-team-window-item{border-left:6px solid #64748b;background:#f8fafc;border-radius:12px;padding:12px}
@media(max-width:700px){.app-tv-team-window{position:fixed;left:12px;right:12px;top:70px;bottom:92px;z-index:9998;overflow:auto;margin:0;border-radius:18px}.app-tv-team-window-head{position:sticky;top:0;background:#fff;padding-bottom:10px}.app-tv-team-window-item{font-size:15px}}

/* v4.3: Mannschaftsfarben in Monatsansicht, größere klickbare Punkte, Filter vollständig sichtbar */
@media(max-width:700px){
  .app-tv-cal-event{
    width:18px!important;
    height:18px!important;
    min-width:18px!important;
    min-height:18px!important;
    margin:3px!important;
    cursor:pointer!important;
    box-shadow:0 0 0 5px transparent!important;
    position:relative!important;
  }
  .app-tv-cal-event summary{
    display:block!important;
    width:18px!important;
    height:18px!important;
    cursor:pointer!important;
    list-style:none!important;
  }
  .app-tv-cal-event summary::-webkit-details-marker{display:none!important}
  .app-tv-cal-event[open]{
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
    max-height:calc(100vh - 150px)!important;
    overflow:auto!important;
  }
  .app-tv-cal-event[open] summary{
    width:auto!important;
    height:auto!important;
    font-size:18px!important;
    line-height:1.3!important;
  }
  .app-tv-filter-legend{
    max-height:none!important;
    overflow:visible!important;
    padding-bottom:110px!important;
    margin-bottom:0!important;
  }
  .app-tv-team-window{
    top:40px!important;
    bottom:70px!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch;
  }
}


/* v4.4: harte Korrektur mobile Termindots + Filterbereich */
@media(max-width:700px){
  .app-tv-calendar-grid .app-tv-day .app-tv-cal-event:not([open]){
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:18px!important;
    height:18px!important;
    min-width:18px!important;
    min-height:18px!important;
    max-width:18px!important;
    max-height:18px!important;
    padding:0!important;
    margin:4px 3px!important;
    border-radius:999px!important;
    border:0!important;
    background:var(--tv-event-color,#64748b)!important;
    overflow:visible!important;
    cursor:pointer!important;
    -webkit-tap-highlight-color:rgba(37,99,235,.25)!important;
  }
  .app-tv-calendar-grid .app-tv-day .app-tv-cal-event:not([open]) summary{
    display:block!important;
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    min-height:28px!important;
    margin:-5px!important;
    padding:0!important;
    color:transparent!important;
    font-size:0!important;
    line-height:0!important;
    list-style:none!important;
    cursor:pointer!important;
  }
  .app-tv-calendar-grid .app-tv-day .app-tv-cal-event:not([open]) summary::-webkit-details-marker{display:none!important}
  .app-tv-calendar-grid .app-tv-day .app-tv-cal-event[open]{
    position:fixed!important;
    left:12px!important;
    right:12px!important;
    top:72px!important;
    bottom:90px!important;
    z-index:100000!important;
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
    max-width:none!important;
    max-height:none!important;
    overflow:auto!important;
    background:#fff!important;
    border-left:8px solid var(--tv-event-color,#64748b)!important;
    border-radius:18px!important;
    padding:16px!important;
    box-shadow:0 14px 55px rgba(0,0,0,.30)!important;
  }
  .app-tv-calendar-grid .app-tv-day .app-tv-cal-event[open] summary{
    display:block!important;
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
    margin:0 0 10px 0!important;
    color:#111827!important;
    font-size:20px!important;
    line-height:1.25!important;
    font-weight:800!important;
    white-space:normal!important;
  }
  .app-tv-calendar-grid .app-tv-day .app-tv-cal-event[open] .app-tv-cal-detail{font-size:16px!important;line-height:1.45!important;display:block!important}
  .app-tv-filter-legend{
    max-height:55vh!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    padding:22px 18px 130px 18px!important;
    margin:22px 0 0 0!important;
    border-radius:22px!important;
    display:flex!important;
    gap:22px 26px!important;
    align-items:flex-start!important;
  }
  .app-tv-filter-legend strong{font-size:22px!important;line-height:1.2!important}
  .app-tv-filter-link{font-size:22px!important;line-height:1.35!important;min-height:34px!important}
  .app-tv-filter-dot{width:24px!important;height:24px!important;min-width:24px!important;margin-top:2px!important}
}

/* v4.6: mobile Termin-Detailansicht als Bottom Sheet mit Schließen-Funktionen */
.app-tv-event-close{font:inherit;cursor:pointer}
.app-tv-event-close-top{display:none}
.app-tv-event-footer{display:none}
@media(max-width:700px){
  body.app-tv-modal-open{overflow:hidden!important;touch-action:none}
  body.app-tv-modal-open:before{
    content:"";position:fixed;inset:0;z-index:99999;
    background:rgba(15,23,42,.42);backdrop-filter:blur(2px);
    animation:appTvFadeIn .2s ease-out both;
  }
  .app-tv-calendar-grid .app-tv-day .app-tv-cal-event[open]{
    left:0!important;right:0!important;top:auto!important;bottom:0!important;
    width:100%!important;height:auto!important;max-height:calc(100dvh - 52px)!important;
    border-left:0!important;border-top:8px solid var(--tv-event-color,#64748b)!important;
    border-radius:24px 24px 0 0!important;padding:0 18px 22px!important;
    overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;
    animation:appTvSheetUp .22s ease-out both;
  }
  .app-tv-calendar-grid .app-tv-day .app-tv-cal-event[open]:before{
    content:"";display:block;width:46px;height:5px;border-radius:999px;
    background:#cbd5e1;margin:10px auto 6px;
  }
  .app-tv-calendar-grid .app-tv-day .app-tv-cal-event[open] summary{
    position:sticky!important;top:0!important;z-index:3!important;
    background:#fff!important;margin:0 -2px 12px!important;padding:12px 52px 12px 0!important;
    border-bottom:1px solid #e5e7eb!important;
  }
  .app-tv-cal-event[open] .app-tv-event-close-top{
    display:flex;position:sticky;top:13px;float:right;margin:0 0 -48px auto;
    z-index:5;align-items:center;justify-content:center;width:42px;height:42px;
    border:0;border-radius:999px;background:#eef2f7;color:#111827;
    font-size:30px;font-weight:500;line-height:1;box-shadow:0 1px 4px rgba(15,23,42,.16);
  }
  .app-tv-cal-event[open] .app-tv-cal-detail{clear:both;padding:2px 0 0!important}
  .app-tv-event-footer{display:block;margin-top:24px;padding-top:16px;border-top:1px solid #e5e7eb}
  .app-tv-event-close-bottom{
    display:block;width:100%;min-height:50px;border:0;border-radius:13px;
    background:#e8eef6;color:#0f2f66;font-size:17px;font-weight:800;
  }
  .app-tv-participant-list{max-height:42vh;overflow:auto;-webkit-overflow-scrolling:touch}
}
@keyframes appTvSheetUp{from{transform:translateY(105%);opacity:.75}to{transform:translateY(0);opacity:1}}
@keyframes appTvFadeIn{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.app-tv-calendar-grid .app-tv-day .app-tv-cal-event[open],body.app-tv-modal-open:before{animation:none!important}}
