/* JEvents im Vereinsdesign */
#jevents { font-size: 1rem; max-width: 100%; }
#jevents img[src*="spacer.gif"] { display: none; }
#jevents table { border-collapse: separate; border-spacing: 0; max-width: 100%; }
#jevents h2::before, #jevents h2::after, #jevents ul li::before { display: none; }
#jevents h2 { padding-bottom: 0; }

#jevents_header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; }
#jevents_header h2, #jevents h2.gsl-h2, #jevents .contentheading { margin: 0 0 .6rem; }
#jevents ul.actions { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; }
#jevents ul.actions a { display: inline-grid; place-content: center; min-width: 40px; height: 40px; border-radius: 999px; background: var(--teal-l); color: var(--teal); text-decoration: none; }
#jevents ul.actions a:hover { background: var(--teal); color: #fff; }

/* Navigationsleiste */
#jevents table.ev_navigation { background: transparent !important; width: 100%; margin-bottom: 1.2rem; }
#jevents table.ev_navigation > tbody > tr > td, #jevents table.ev_navigation > tr > td { padding: 0 !important; background: transparent !important; }
#jevents table.ev_navigation table { width: 100%; }
#jevents table.ev_navigation table tbody, #jevents table.ev_navigation table tr { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-start; }
#jevents table.ev_navigation td { padding: 0 !important; }
#jevents td.buttontext { display: block; white-space: normal; background: transparent !important; }
#jevents td.buttontext img { display: none; }
#jevents td.buttontext a, #jevents a.buttontext {
	display: inline-block; padding: .45rem 1.1rem; font-weight: 600; font-size: .92rem; text-decoration: none; color: var(--teal) !important;
	background: var(--teal-l); border-radius: 999px; transition: background .2s, color .2s;
}
#jevents td.buttontext a:hover, #jevents a.buttontext:hover { background: var(--teal); color: #fff !important; }
#jevents td.buttontext a br { display: none; }
#jumpto { padding: .8rem; margin: .5rem 0 1rem; background: var(--sand); border-radius: 10px; text-align: center; }
#jumpto.jev_none { display: none; }
#jumpto select, #jumpto input { width: auto !important; max-width: 100%; }

/* Monatsansicht */
#jevents table.maintable { width: 100%; table-layout: auto; background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
#jevents td.tableh1 { background: transparent !important; padding: .3rem .5rem; }
#jevents td.tableh1 table { width: 100%; }
#jevents td.tableh1 td { padding: 0 .4rem; }
#jevents td.tableh1 td.today { text-align: right; color: var(--muted); font-size: .95rem; }
#jevents td.tablev1 { width: 0 !important; min-width: 0 !important; padding: 0 !important; border: 0 !important; font-size: 0; line-height: 0; overflow: hidden; background: transparent !important; }
#jevents td.tablev1 * { display: none; }
#jevents td.previousmonth, #jevents td.nextmonth { padding: .6rem; font-weight: 600; background: transparent !important; font-size: .95rem; }
#jevents td.previousmonth a, #jevents td.nextmonth a { text-decoration: none; color: var(--teal); }
#jevents td.previousmonth a:hover, #jevents td.nextmonth a:hover { color: var(--rust); background: none; }
#jevents td.previousmonth img, #jevents td.nextmonth img { display: none; }
#jevents td.previousmonth a::before { content: "← "; }
#jevents td.nextmonth a::after { content: " →"; }
#jevents td.currentmonth { background: var(--teal) !important; color: #fff !important; font-family: var(--serif); font-size: 1.3rem; font-weight: 700; padding: .65rem !important; text-align: center; }
#jevents td.weekdaytopclr { background: var(--teal-d) !important; color: #fff; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; padding: .55rem 0; height: auto !important; border: 0; text-align: center; }
#jevents td.weekdaytopclr:nth-child(7), #jevents td.weekdaytopclr:nth-child(8) { color: var(--sun); }
#jevents td[class$="clr"]:not(.weekdaytopclr) {
	border-right: 1px solid var(--line); border-bottom: 1px solid var(--line);
	padding: .25rem .3rem .4rem !important; width: 14%; height: 96px !important; vertical-align: top; background: #fff !important; text-align: left !important; overflow: hidden;
}
#jevents td.todayclr, #jevents td.sundaytodayclr { background: #fff6e0 !important; box-shadow: inset 0 0 0 2px var(--sun); }
#jevents td.caldaydigits, #jevents tr.caldaydigits td { font-size: .85rem; padding: 0 0 .15rem; text-align: left; }
#jevents td.caldaydigits a { text-decoration: none; color: var(--ink); font-weight: 700; }
#jevents td.todayclr .caldaydigits a { display: inline-block; min-width: 1.7em; text-align: center; background: var(--sun); color: #2a1c00; border-radius: 50%; }
#jevents .eventfull { margin-top: 2px; }
#jevents .eventstyle { border: 0 !important; border-left: 4px solid var(--teal) !important; background: var(--teal-l); border-radius: 0 6px 6px 0; padding: 1px 6px !important; font-size: .8rem; line-height: 1.35; margin-bottom: 3px; }
#jevents .eventstyle a, #jevents a.cal_titlelink { color: var(--teal-d); text-decoration: none; font-weight: 600; overflow-wrap: anywhere; hyphens: auto; }
#jevents .eventstyle:hover { background: var(--teal); }
#jevents .eventstyle:hover a { color: #fff; background: none; }

/* Legende */
#jevents td:has(.event_legend_container) { background: transparent !important; }
#jevents .event_legend_container { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
#jevents .event_legend_container, #jevents .event_legend_container * { background-color: transparent; }
#jevents .event_legend_item { padding: .2rem .8rem; background: var(--sand) !important; border-radius: 999px; font-size: .88rem; }

/* Tages-, Wochen-, Jahres-, Listen- und Detailansichten */
#jevents table.ev_table, #jevents table.cal_table { width: 100%; }
#jevents .ev_td_left, #jevents .ev_td_right { padding: .3rem .6rem; vertical-align: top; }
#jevents .ev_td_right { color: var(--muted); }
#jevents .ev_tr_heading, #jevents td.cal_td_daysoutofmonth { background: var(--sand); }
#jevents .jev_listrow, #jevents .jevrow0, #jevents .jevrow1 { padding: .7rem .5rem; border-bottom: 1px solid var(--line); }
#jevents .jev_toprow, #jevents .jev_header2 { border-bottom: 3px solid var(--sun); padding-bottom: .5rem; margin-bottom: 1rem; }
#jevents .jev_toprow h2, #jevents .jev_header2 h2 { margin: 0; }
#jevents .jevrowheader, #jevents .jev_evdt_title { font-family: var(--serif); color: var(--teal-d); }
#jevents .jev_evdt_title { font-size: clamp(1.5rem, 5vw, 2.1rem) !important; font-weight: 700; line-height: 1.2; margin-bottom: .6rem; }
#jevents .jev_evdt_title a { color: inherit; text-decoration: none; }
#jevents .jev_evdt_title a:hover { color: var(--rust); background: none; }
#jevents .jev_evdt_header, #jevents .jev_evdt_summary { margin-bottom: .8rem; }
#jevents .jev_evdt_desc { margin-top: 1rem; }
#jevents .jev_evdt_location, #jevents .jev_evdt_contact { color: var(--muted); }
#jevents .jev_prevnext, #jevents .jev_prevnextlist { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
#jevents .jev_none { display: none; }
#jevents .jevents-search, #jevents .jev_searchbox { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
#jevents .jevents-search input, #jevents .jev_searchbox input { width: auto; flex: 1 1 12rem; }
#jevents .ev_table td, #jevents .cal_table td { overflow-wrap: anywhere; }
#jevents .jev_evdt_desc img { max-width: 100%; height: auto; }

/* Wochen-/Tagesansicht */
#jevents tr.tableh2 { background: var(--teal) !important; background-image: none !important; }
#jevents td.tableh2, #jevents tr.tableh2 td { font-size: 1rem; background: transparent !important; background-image: none !important; color: #fff; padding: .55rem .9rem; font-family: var(--serif); border: 0 !important; }
#jevents td.tableh2 a, #jevents a.ev_link_weekday { color: #fff !important; background: none !important; border: 0 !important; text-decoration: none; font-weight: 700; padding: 0; box-shadow: none; }
#jevents ul.ev_ul { list-style: none; margin: 0; padding: 0; }
#jevents li.ev_td_li { border: 0 !important; border-left: 5px solid var(--sun) !important; background: var(--sand); padding: .55rem .9rem !important; margin: .5rem 0 !important; overflow-wrap: anywhere; border-radius: 0 8px 8px 0; }
#jevents a.ev_link_row { color: var(--teal-d); font-weight: 700; text-decoration: none; }
#jevents a.ev_link_row:hover { color: var(--rust); background: none; }
#jevents td.ev_td_right { background: transparent !important; }

/* Tooltips */
.jevtt_title { font-family: var(--serif); font-weight: 700; padding: .3rem .6rem; background: var(--teal); color: #fff; }
.jevtt_text { padding: .4rem .6rem; }
.popover, .tooltip-inner { border-radius: 8px !important; border: 1px solid var(--teal) !important; max-width: min(320px, 90vw); }

@media (max-width: 1000px) and (min-width: 761px) {
	#jevents td[class$="clr"]:not(.weekdaytopclr) { height: 84px !important; padding: .2rem !important; }
	#jevents .eventstyle { font-size: .72rem; padding: 0 4px !important; }
}

/* Mobil: Monatskalender wird zur Terminliste */
@media (max-width: 760px) {
	#jevents table.maintable, #jevents table.maintable > tbody, #jevents table.maintable > tbody > tr, #jevents table.maintable > tr { display: block; width: 100%; }
	#jevents table.maintable { border: 0; background: transparent; border-radius: 0; overflow: visible; }

	#jevents table.maintable > tbody > tr:nth-child(2), #jevents table.maintable > tr:nth-child(2) {
		display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: .6rem; margin: .4rem 0 1.2rem;
	}
	#jevents table.maintable > tbody > tr:nth-child(2) > td.currentmonth, #jevents table.maintable > tr:nth-child(2) > td.currentmonth { grid-column: 1 / -1; grid-row: 1; border-radius: 10px; }
	#jevents td.previousmonth, #jevents td.nextmonth, #jevents td.currentmonth { display: block; width: auto !important; min-width: 0; height: auto !important; white-space: normal !important; }
	#jevents td.currentmonth { font-size: 1.05rem; text-align: center; }
	#jevents td.tableh1 table, #jevents td.tableh1 tbody, #jevents td.tableh1 tr { display: flex; width: 100%; justify-content: space-between; align-items: baseline; }
	#jevents td.tableh1 td { display: block; width: auto; white-space: normal; }
	#jevents td.tableh1 td.today { font-size: .85rem; text-align: right; }
	#jevents td.tableh1 table, #jevents td.tableh1 tbody, #jevents td.tableh1 tr { flex-wrap: wrap; gap: .2rem .8rem; }
	#jevents td.previousmonth { text-align: left; }
	#jevents td.nextmonth { text-align: right; }
	#jevents td.previousmonth a, #jevents td.nextmonth a { font-size: .85rem; }
	#jevents td.previousmonth, #jevents td.nextmonth { padding: .2rem 0; }

	#jevents table.maintable tr { height: auto !important; }
	#jevents table.maintable > tbody > tr:has(> td.weekdaytopclr), #jevents table.maintable > tr:has(> td.weekdaytopclr) { display: none; }
	#jevents td[class$="clr"]:not(.weekdaytopclr):not(:has(.eventfull)) { display: none; }
	#jevents table.maintable > tbody > tr:not(:has(.eventfull)):not(:has(.currentmonth)):has(> td.tablev1),
	#jevents table.maintable > tr:not(:has(.eventfull)):not(:has(.currentmonth)):has(> td.tablev1) { display: none; }
	#jevents td.tablev1 { display: none; }

	#jevents td[class$="clr"]:not(.weekdaytopclr) {
		display: block; width: 100% !important; height: auto !important; margin-bottom: .9rem; border: 1px solid var(--line); border-left: 6px solid var(--teal); border-radius: 10px;
		padding: .7rem .9rem !important; background: #fff !important; box-shadow: 0 4px 12px rgba(18, 53, 50, .08);
	}
	#jevents td[class$="clr"]:not(.weekdaytopclr)::before { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; color: var(--sun-d); font-weight: 700; }
	#jevents tr > td[class$="clr"]:nth-child(2)::before { content: "Montag"; }
	#jevents tr > td[class$="clr"]:nth-child(3)::before { content: "Dienstag"; }
	#jevents tr > td[class$="clr"]:nth-child(4)::before { content: "Mittwoch"; }
	#jevents tr > td[class$="clr"]:nth-child(5)::before { content: "Donnerstag"; }
	#jevents tr > td[class$="clr"]:nth-child(6)::before { content: "Freitag"; }
	#jevents tr > td[class$="clr"]:nth-child(7)::before { content: "Samstag"; }
	#jevents tr > td[class$="clr"]:nth-child(8)::before { content: "Sonntag"; }
	#jevents td[class$="clr"] table, #jevents td[class$="clr"] tbody, #jevents td[class$="clr"] tr, #jevents td[class$="clr"] td { display: block; width: 100%; }
	#jevents td.caldaydigits, #jevents tr.caldaydigits td { font-size: 1.6rem; font-family: var(--serif); }
	#jevents .eventstyle { font-size: .95rem; padding: .3rem .6rem !important; }
	#jevents td.todayclr, #jevents td.sundaytodayclr { border-color: var(--sun); border-left-color: var(--sun); }

	#jevents td.buttontext a, #jevents a.buttontext { padding: .4rem .9rem; font-size: .85rem; }
	#jevents table.ev_table, #jevents table.ev_table tbody, #jevents table.ev_table tr, #jevents table.ev_table td { display: block; width: 100%; }
	#jevents tr.tableh2, #jevents td.tableh2 { display: block; width: 100%; }
}
