/* =========================================================================
   NAK Liedvorschläge – Frontend
   Passt sich dem Theme an (Schrift, Text- und Hintergrundfarbe). Akzentfarbe:
   .lv-root { --lv-accent: #00508c; }
   ========================================================================= */

.lv-root, .lv:not(.lv-root .lv), .lv-dialog {
	--lv-accent: var(--wp--preset--color--primary, #1d4f7c);
	--lv-accent-ink: #fff;
	--lv-accent-soft: color-mix(in srgb, var(--lv-accent) 9%, transparent);
	--lv-accent-line: color-mix(in srgb, var(--lv-accent) 30%, transparent);
	--lv-ink-2: color-mix(in srgb, currentColor 70%, transparent);
	--lv-ink-3: color-mix(in srgb, currentColor 54%, transparent);
	--lv-border: color-mix(in srgb, currentColor 13%, transparent);
	--lv-border-strong: color-mix(in srgb, currentColor 24%, transparent);
	--lv-surface: color-mix(in srgb, currentColor 3%, transparent);
	--lv-surface-2: color-mix(in srgb, currentColor 6%, transparent);
	--lv-mark: color-mix(in srgb, #f5c542 55%, transparent);
	--lv-muted: var(--lv-ink-3);
	--lv-radius: 12px;
	--lv-radius-s: 8px;
	--lv-shadow: 0 1px 2px rgb(0 0 0 / .04), 0 4px 16px rgb(0 0 0 / .05);
	--lv-ease: cubic-bezier(.2, .7, .2, 1);
	position: relative;
	container-type: inline-size;
	margin-block: 0 2rem;
}
.lv { line-height: 1.55; font-variant-numeric: tabular-nums; }
.lv *, .lv *::before, .lv *::after { box-sizing: border-box; }
.lv a { color: var(--lv-accent); text-decoration-thickness: 1px; text-underline-offset: .18em; }
.lv a:hover { text-decoration-thickness: 2px; }
.lv :focus-visible { outline: 2px solid var(--lv-accent); outline-offset: 2px; border-radius: 4px; }
.lv h2, .lv h3, .lv h4 { line-height: 1.25; text-wrap: balance; }
.lv p { text-wrap: pretty; }
.lv-muted, .lv-footnote { color: var(--lv-ink-3); font-size: .9em; }
.lv-count { color: var(--lv-ink-2); font-size: .92em; margin: 0 0 .75rem; }
.lv-notice, .lv-empty-state { padding: 1.25rem 1.4rem; border: 1px dashed var(--lv-border-strong); border-radius: var(--lv-radius); color: var(--lv-ink-2); }
.lv-empty-state p { margin: .2rem 0; }
.lv mark { background: var(--lv-mark); color: inherit; padding: 0 .12em; border-radius: 3px; box-decoration-break: clone; -webkit-box-decoration-break: clone; }

/* ---------- Ladezustand (AJAX) ---------- */
.lv-root[aria-busy="true"]::before {
	content: ""; position: absolute; z-index: 5; inset: -6px 0 auto; height: 3px; border-radius: 3px;
	background: linear-gradient(90deg, transparent, var(--lv-accent), transparent);
	background-size: 40% 100%; background-repeat: no-repeat;
	animation: lv-load 1s linear infinite;
}
.lv-root[aria-busy="true"] .lv > :not(form) { opacity: .55; transition: opacity .2s; }
@keyframes lv-load { from { background-position: -40% 0; } to { background-position: 140% 0; } }
.lv-new { animation: lv-in .35s var(--lv-ease) both; }
@keyframes lv-in { from { opacity: 0; transform: translateY(6px); } }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .18s; }
@media (prefers-reduced-motion: reduce) {
	.lv-root[aria-busy="true"]::before, .lv-new { animation: none; }
}

/* ---------- Buttons & Formulare ---------- */
.lv-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .4em;
	font: inherit; font-weight: 600; line-height: 1.2; padding: .62rem 1.15rem;
	border: 1px solid var(--lv-accent); background: var(--lv-accent); color: var(--lv-accent-ink) !important;
	border-radius: 999px; cursor: pointer; text-decoration: none !important;
	transition: transform .12s var(--lv-ease), box-shadow .2s, background .2s;
}
.lv-btn:hover { box-shadow: 0 4px 14px color-mix(in srgb, var(--lv-accent) 30%, transparent); }
.lv-btn:active { transform: translateY(1px); }
.lv-btn--ghost { background: transparent; color: var(--lv-accent) !important; font-weight: 500; }
.lv-btn--ghost:hover { background: var(--lv-accent-soft); box-shadow: none; }
.lv-btn small { opacity: .7; font-weight: 400; }

.lv-filter {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .8rem 1rem; align-items: end;
	padding: 1rem 1.1rem; margin: 0 0 1.5rem; background: var(--lv-surface);
	border: 1px solid var(--lv-border); border-radius: var(--lv-radius);
}
.lv-filter--inline { display: flex; flex-wrap: wrap; align-items: flex-end; }
.lv-filter label { display: flex; flex-direction: column; gap: .3rem; margin: 0; font-size: .8rem; font-weight: 600; letter-spacing: .01em; color: var(--lv-ink-2); }
.lv-filter__q { grid-column: span 2; }
.lv-filter input, .lv-filter select, .lv-searchbar__input {
	font: inherit; font-size: 1rem; font-weight: 400; color: inherit; width: 100%; min-width: 0;
	padding: .58rem .75rem; background: color-mix(in srgb, Canvas 75%, transparent);
	border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s);
	transition: border-color .15s, box-shadow .15s;
}
.lv-filter input:focus, .lv-filter select:focus, .lv-searchbar__input:focus { outline: none; border-color: var(--lv-accent); box-shadow: 0 0 0 3px var(--lv-accent-soft); }
.lv-filter__actions { display: flex; gap: .8rem; align-items: center; }
.lv-reset { font-size: .9em; }
.lv-window { margin: -.75rem 0 1.25rem; font-size: .85em; color: var(--lv-ink-3); }
@container (max-width: 560px) { .lv-filter__q { grid-column: 1 / -1; } }

/* ---------- Übersicht Liedvorschläge ---------- */
.lv-month {
	position: sticky; top: 0; z-index: 2; margin: 2rem 0 .75rem; padding: .5rem 0 .4rem;
	font-size: 1.2em; border-bottom: 2px solid var(--lv-accent);
	background: var(--wp--preset--color--base, Canvas);
}
.lv-list { display: grid; gap: .65rem; }
.lv-row {
	display: grid; grid-template-columns: 11.5rem 1fr; gap: 1rem; padding: 1rem 1.1rem;
	border: 1px solid var(--lv-border); border-radius: var(--lv-radius);
	transition: border-color .2s, box-shadow .2s;
}
.lv-row:hover { border-color: var(--lv-border-strong); box-shadow: var(--lv-shadow); }
.lv-row__date { font-weight: 700; }
.lv-row__kind { font-size: .85em; color: var(--lv-ink-3); }
.lv-row__topic { font-weight: 650; font-size: 1.06em; }
.lv-row__topic a { text-decoration: none; color: inherit; }
.lv-row__topic a:hover { color: var(--lv-accent); text-decoration: underline; }
.lv-row__ref { font-size: .9em; margin-top: .1rem; }
.lv-row__note { margin: 0; font-style: italic; color: var(--lv-ink-2); }
.lv-row__songs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; margin: .7rem 0 0; }
.lv-row__songs > div { background: var(--lv-surface); border-radius: var(--lv-radius-s); padding: .4rem .6rem; }
.lv-row__songs dt { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--lv-ink-3); margin: 0; }
.lv-row__songs dd { margin: 0; }
.lv-row.lv-type-sonntag, .lv-row.lv-type-festtag { box-shadow: inset 3px 0 0 var(--lv-accent); }
.lv-row.lv-type-wochen { box-shadow: inset 3px 0 0 var(--lv-accent-line); }
.lv-row.lv-type-jugend, .lv-row.lv-type-kinder { box-shadow: inset 3px 0 0 color-mix(in srgb, var(--lv-accent) 55%, transparent); }
.lv-reading { color: var(--lv-ink-2); }
@container (max-width: 680px) {
	.lv-row { grid-template-columns: 1fr; gap: .35rem; }
	.lv-row__head { display: flex; gap: .6rem; align-items: baseline; flex-wrap: wrap; }
	.lv-row__songs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.lv-song { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .4rem; }
.lv-song__no { font-weight: 700; font-size: 1.06em; }
.lv-song__verses { font-size: .85em; }
.lv-song__title { flex-basis: 100%; font-size: .85em; color: var(--lv-ink-3); }
.lv-song__organ { font-size: .72em; color: var(--lv-ink-3); }
.lv-empty { color: var(--lv-ink-3); }
.lv-date-calc sup { color: var(--lv-ink-3); }

/* ---------- Detailseiten ---------- */
.lv-detail__head { margin-bottom: 1.5rem; }
.lv-detail__meta { margin: 0 0 .3rem; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; color: var(--lv-ink-3); font-size: .95em; }
.lv-detail__title { margin: 0 0 .4rem; font-size: clamp(1.5rem, 1.2rem + 1.4cqi, 2.1rem); }
.lv-detail__title:focus { outline: none; }
.lv-detail__ref { margin: 0; }
.lv-detail__note { padding: 1rem 1.2rem; border-radius: var(--lv-radius); background: var(--lv-accent-soft); }
.lv-badge { display: inline-block; padding: .18rem .65rem; border-radius: 999px; background: var(--lv-accent-soft); color: var(--lv-accent); font-weight: 650; font-size: .82em; }
.lv-bible { margin: 1.6rem 0; }
.lv-bible h3, .lv-songs h3, .lv-stats h3, .lv-songpage h3 { font-size: 1.1em; margin: 0 0 .65rem; }
.lv-bible__text { margin: 0 0 .5rem; padding: 1rem 1.25rem; border-left: 4px solid var(--lv-accent); background: var(--lv-surface); border-radius: 0 var(--lv-radius) var(--lv-radius) 0; font-size: 1.05em; }
.lv-bible__text p:last-child { margin-bottom: 0; }
.lv-vers { font-size: .62em; color: var(--lv-accent); font-weight: 700; margin-right: .15em; }
.lv-bible__src { font-size: .8em; color: var(--lv-ink-3); margin: 0 0 .5rem; }
.lv-songs__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .8rem; }
.lv-songcard { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: .9rem 1.05rem; background: var(--lv-surface); }
.lv-songcard__slot { margin: 0; font-size: .72rem; text-transform: uppercase; letter-spacing: .07em; color: var(--lv-ink-3); }
.lv-songcard__main { margin: .2rem 0 .45rem; font-size: 1.2em; }
.lv-songcard__text summary { cursor: pointer; color: var(--lv-accent); font-size: .9em; }
.lv-verse { display: grid; grid-template-columns: 1.8em 1fr; margin: .7rem 0; }
.lv-verse__no { font-weight: 700; color: var(--lv-ink-3); }
.lv-prevnext { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--lv-border); font-size: .92em; }
.lv-prevnext a { text-decoration: none; }
.lv-locked { display: flex; gap: .5rem; align-items: baseline; margin: 0 0 .9rem; padding: .8rem 1rem; border-radius: var(--lv-radius); background: var(--lv-surface); border: 1px solid var(--lv-border); font-size: .93em; }
span.lv-locked { display: flex; padding: .45rem .65rem; font-size: .84em; }
.lv-songtext { font-size: 1.06em; }
.lv-songtext .lv-verse { margin: 1rem 0; }
.lv-copyright { margin-top: 1rem; font-size: .8em; }
.lv-also { font-size: .92em; }

/* ---------- Tabellen, Kacheln, Listen ---------- */
.lv-table-wrap { overflow-x: auto; }
.lv-table { width: 100%; border-collapse: collapse; font-size: .92em; }
.lv-table th, .lv-table td { text-align: left; padding: .5rem .65rem; border-bottom: 1px solid var(--lv-border); vertical-align: top; }
.lv-table th { font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; color: var(--lv-ink-3); }
.lv-table tbody tr:hover { background: var(--lv-surface); }
.lv-stats section, .lv-songpage section { margin: 0 0 2rem; }
.lv-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.25rem; }
.lv-col h4 { margin: 0 0 .4rem; font-size: .95em; }
details.lv-more summary { cursor: pointer; color: var(--lv-accent); }
.lv-index { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(4.6rem, 1fr)); gap: .4rem; }
.lv-index a { display: flex; flex-direction: column; align-items: center; padding: .45rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); text-decoration: none; transition: background .15s, border-color .15s; }
.lv-index a:hover { background: var(--lv-accent-soft); border-color: var(--lv-accent-line); }
.lv-index__no { font-weight: 700; }
.lv-index__cnt { font-size: .74em; color: var(--lv-ink-3); }
.lv-pager { display: flex; flex-wrap: wrap; gap: .35rem; margin: 1.5rem 0; }
.lv-pager a, .lv-pager span { min-width: 2.3rem; text-align: center; padding: .35rem .7rem; border: 1px solid var(--lv-border); border-radius: 999px; text-decoration: none; }
.lv-pager a:hover { border-color: var(--lv-accent); }
.lv-pager__current { background: var(--lv-accent); color: var(--lv-accent-ink); border-color: var(--lv-accent) !important; }

/* ---------- Liederbücher ---------- */
.lv-bookgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .9rem; }
.lv-bookcard {
	display: flex; flex-direction: column; gap: .2rem; padding: 1.1rem 1.2rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius);
	text-decoration: none !important; color: inherit !important; background: var(--lv-surface);
	transition: border-color .2s, box-shadow .2s, transform .2s var(--lv-ease);
}
.lv-bookcard:hover, .lv-bookcard:focus-visible { border-color: var(--lv-accent-line); box-shadow: var(--lv-shadow); transform: translateY(-2px); }
.lv-bookcard__short { align-self: flex-start; padding: .12rem .6rem; border-radius: 999px; background: var(--lv-accent-soft); color: var(--lv-accent); font-weight: 700; font-size: .8em; }
.lv-bookcard__title { font-weight: 700; font-size: 1.12em; margin-top: .35rem; }
.lv-bookcard__meta { font-size: .85em; color: var(--lv-ink-3); }
.lv-bookcard__desc { font-size: .9em; margin-top: .3rem; color: var(--lv-ink-2); }
.lv-chips, .lv-forms { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.25rem; }
.lv-chips a, .lv-forms a { padding: .28rem .75rem; border: 1px solid var(--lv-border-strong); border-radius: 999px; font-size: .87em; text-decoration: none; transition: background .15s, border-color .15s; }
.lv-chips a:hover, .lv-forms a:hover { border-color: var(--lv-accent); }
.lv-chips a[aria-current], .lv-forms a[aria-current] { background: var(--lv-accent); border-color: var(--lv-accent); color: var(--lv-accent-ink); }
.lv-chips small, .lv-forms small { opacity: .7; }
.lv-forms .lv-form--familie { border-style: dashed; }
.lv-forms .lv-form--aehnlich { border-style: dotted; }
.lv-forms .lv-form--sinn { border-color: var(--lv-accent-line); background: var(--lv-accent-soft); }
.lv-register ul { list-style: none; margin: 0 0 1.5rem; padding: 0; columns: 2 20rem; column-gap: 2rem; }
.lv-register li { break-inside: avoid; margin: 0; }
.lv-register a { display: grid; grid-template-columns: 3.2rem 1fr; gap: .55rem; padding: .38rem .3rem; border-bottom: 1px solid var(--lv-border); text-decoration: none; border-radius: 4px; }
.lv-register a:hover { background: var(--lv-accent-soft); }
.lv-register__no { font-weight: 700; text-align: right; }
.lv-register__title small { display: block; color: var(--lv-ink-3); font-size: .82em; }
.lv-register__cat { margin: 1.6rem 0 .45rem; font-size: 1.02em; color: var(--lv-ink-2); }

/* ---------- Treffer (Suche & Konkordanz) ---------- */
.lv-hits { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.lv-hit { padding: .85rem 1rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); transition: border-color .2s, box-shadow .2s; }
.lv-hit:hover { border-color: var(--lv-border-strong); box-shadow: var(--lv-shadow); }
.lv-hit__head { display: flex; flex-wrap: wrap; gap: .25rem .55rem; align-items: baseline; text-decoration: none; color: inherit; }
a.lv-hit__head:hover .lv-hit__title { color: var(--lv-accent); text-decoration: underline; }
.lv-hit__book { padding: .05rem .5rem; border-radius: 999px; background: var(--lv-accent-soft); color: var(--lv-accent); font-weight: 700; font-size: .78em; }
.lv-hit__no { font-weight: 700; }
.lv-hit__title { font-weight: 600; }
.lv-hit__meta { display: block; font-size: .82em; color: var(--lv-ink-3); margin-top: .15rem; }
.lv-hit__snip { margin: .35rem 0 0; font-size: .92em; }
.lv-hit__places { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; gap: .25rem; }
.lv-hit__places li { display: flex; gap: .6rem; align-items: baseline; font-size: .93em; }
.lv-place { flex: none; min-width: 5.2rem; font-size: .8em; font-weight: 600; color: var(--lv-ink-3); }
.lv-hit__ctx { color: var(--lv-ink-2); }
.lv-hit__verse details { width: 100%; }
.lv-hit__verse summary { cursor: pointer; font-size: .85em; color: var(--lv-accent); }
.lv-hit__verse p { margin: .35rem 0 .2rem; padding: .6rem .8rem; background: var(--lv-surface); border-radius: var(--lv-radius-s); }
.lv-more { text-align: center; margin: 1.25rem 0; }

/* ---------- Konkordanz ---------- */
.lv-konk__form { margin: 0 0 1.25rem; }
.lv-searchbar { position: relative; display: flex; gap: .5rem; align-items: center; }
.lv-searchbar__icon { position: absolute; left: .85rem; width: 1.15rem; height: 1.15rem; fill: none; stroke: var(--lv-ink-3); stroke-width: 2; stroke-linecap: round; pointer-events: none; }
.lv-searchbar__input { padding: .8rem 1rem .8rem 2.6rem !important; font-size: 1.1rem !important; border-radius: 999px !important; }
.lv-konk__opts { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; align-items: center; margin-top: .8rem; }
.lv-seg { display: inline-flex; margin: 0; padding: .2rem; border: 1px solid var(--lv-border-strong); border-radius: 999px; background: var(--lv-surface); }
.lv-seg label { margin: 0; cursor: pointer; position: relative; }
.lv-seg input, .lv-bookchips input, .lv-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lv-seg span { display: block; padding: .35rem .85rem; border-radius: 999px; font-size: .88em; transition: background .15s, color .15s; }
.lv-seg input:checked + span { background: var(--lv-accent); color: var(--lv-accent-ink); }
.lv-seg input:focus-visible + span, .lv-bookchips input:focus-visible + span, .lv-switch input:focus-visible ~ .lv-switch__track { outline: 2px solid var(--lv-accent); outline-offset: 2px; }
.lv-switch { display: inline-flex; gap: .5rem; align-items: center; cursor: pointer; font-size: .92em; position: relative; }
.lv-switch__track { width: 2.4rem; height: 1.35rem; border-radius: 999px; background: var(--lv-border-strong); position: relative; transition: background .2s; flex: none; }
.lv-switch__track::after { content: ""; position: absolute; top: .15rem; left: .15rem; width: 1.05rem; height: 1.05rem; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgb(0 0 0 / .25); transition: transform .2s var(--lv-ease); }
.lv-switch input:checked ~ .lv-switch__track { background: var(--lv-accent); }
.lv-switch input:checked ~ .lv-switch__track::after { transform: translateX(1.05rem); }
.lv-bookchips { display: inline-flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; border: 0; }
.lv-bookchips label { margin: 0; cursor: pointer; position: relative; }
.lv-bookchips span { display: block; padding: .28rem .7rem; border: 1px solid var(--lv-border-strong); border-radius: 999px; font-size: .84em; }
.lv-bookchips input:checked + span { background: var(--lv-accent-soft); border-color: var(--lv-accent); color: var(--lv-accent); font-weight: 600; }
.lv-konk__summary { margin: 0 0 .5rem; }
.lv-konk__total { margin: 0 0 .7rem; font-size: 1.02em; }
.lv-az { display: flex; flex-wrap: wrap; gap: .25rem; margin: .5rem 0 1rem; }
.lv-az a { min-width: 2.1rem; text-align: center; padding: .3rem .4rem; border-radius: var(--lv-radius-s); text-decoration: none; font-weight: 600; }
.lv-az a:hover { background: var(--lv-accent-soft); }
.lv-az a[aria-current] { background: var(--lv-accent); color: var(--lv-accent-ink); }
.lv-wordlist { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .9rem; align-items: baseline; }
.lv-wordlist a { text-decoration: none; }
.lv-wordlist a:hover { text-decoration: underline; }
.lv-wordlist small { font-size: .65em; color: var(--lv-ink-3); }
.lv-w1 { font-size: .92em; opacity: .85; }
.lv-w2 { font-size: 1.02em; }
.lv-w3 { font-size: 1.18em; font-weight: 600; }
.lv-w4 { font-size: 1.36em; font-weight: 700; }
@container (max-width: 560px) {
	.lv-searchbar .lv-btn { display: none; }
	.lv-seg { width: 100%; justify-content: space-between; }
	.lv-seg span { padding: .35rem .6rem; }
	.lv-place { min-width: 4.3rem; }
}

/* ---------- Druck ---------- */
@media print {
	.lv-filter, .lv-konk__form, .lv-pager, .lv-more, .lv-prevnext, .lv-az { display: none !important; }
	.lv-row, .lv-hit, .lv-songcard { break-inside: avoid; box-shadow: none !important; }
}
.lv-hit__verses { color: var(--lv-ink-2); font-weight: 600; }

/* ---------- Tonart & Taktart ---------- */
.lv-musik { display: inline-block; padding: .05rem .5rem; border: 1px solid var(--lv-border-strong); border-radius: 999px; font-size: .74em; font-weight: 600; color: var(--lv-ink-2); white-space: nowrap; }
.lv-register a .lv-musik { grid-column: 2; justify-self: start; margin-top: .15rem; }
.lv-songcard__musik { margin: -.2rem 0 .4rem; }
.lv-musikinfo { display: flex; flex-wrap: wrap; gap: .5rem; margin: .6rem 0 0; }
.lv-musikinfo a { display: inline-flex; gap: .4rem; align-items: baseline; padding: .3rem .8rem; border: 1px solid var(--lv-border-strong); border-radius: 999px; text-decoration: none; font-weight: 650; }
.lv-musikinfo a:hover { border-color: var(--lv-accent); background: var(--lv-accent-soft); }
.lv-musikinfo span { font-size: .75em; font-weight: 500; text-transform: uppercase; letter-spacing: .05em; color: var(--lv-ink-3); }

/* ---------- Musikalische Angaben ---------- */
.lv-musikblock { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .55rem 1rem; margin: .9rem 0 0; padding: .85rem 1rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); background: var(--lv-surface); }
.lv-musikblock > div { min-width: 0; }
.lv-musikblock dt { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--lv-ink-3); margin: 0 0 .2rem; }
.lv-musikblock dd { margin: 0; display: flex; flex-wrap: wrap; gap: .3rem; }
.lv-tag a, .lv-tag { font-weight: 600; text-decoration: none; }
.lv-tag + .lv-tag::before { content: "·"; margin-right: .3rem; color: var(--lv-ink-3); font-weight: 400; }
.lv-tag a:hover { text-decoration: underline; }
.lv-morefilters { grid-column: 1 / -1; }
.lv-morefilters summary { cursor: pointer; font-size: .85rem; font-weight: 600; color: var(--lv-accent); }
.lv-morefilters__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .8rem 1rem; margin-top: .6rem; }
.lv-hit__musik { display: flex; flex-wrap: wrap; gap: .25rem; margin-top: .4rem; }
.lv-hit__musik span { padding: .05rem .5rem; border: 1px solid var(--lv-border-strong); border-radius: 999px; font-size: .74em; font-weight: 600; color: var(--lv-ink-2); }
.lv-konk__musik { margin-top: .8rem; padding: .7rem .9rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); background: var(--lv-surface); }
.lv-konk__musik label { display: flex; flex-direction: column; gap: .3rem; margin: 0; font-size: .8rem; font-weight: 600; color: var(--lv-ink-2); }
.lv-konk__musik select { font: inherit; font-size: .95rem; font-weight: 400; color: inherit; padding: .45rem .6rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); background: color-mix(in srgb, Canvas 75%, transparent); }

/* ---------- Ganze Treffer-Karte anklickbar ---------- */
.lv-hit { position: relative; }
.lv-hit:has(.lv-hit__link) { cursor: pointer; }
.lv-hit__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.lv-hit:has(.lv-hit__link) .lv-hit__places, .lv-hit:has(.lv-hit__link) .lv-hit__musik, .lv-hit:has(.lv-hit__link) .lv-hit__meta { pointer-events: none; }
.lv-hit__verse details, .lv-hit summary, .lv-hit a:not(.lv-hit__link) { position: relative; z-index: 1; pointer-events: auto; }
.lv-hit:has(.lv-hit__link):hover { border-color: var(--lv-accent-line); }
.lv-hit:has(.lv-hit__link:focus-visible) { outline: 2px solid var(--lv-accent); outline-offset: 2px; }
.lv-hit__link:focus-visible { outline: none; }
.lv-backlink { font-weight: 600; text-decoration: none; }
.lv-verse.is-hit { background: var(--lv-accent-soft); border-radius: var(--lv-radius-s); padding: .35rem .5rem; margin-inline: -.5rem; }
.lv-flash { animation: lv-flash 1.4s var(--lv-ease); }
@keyframes lv-flash { 0%, 30% { box-shadow: 0 0 0 4px var(--lv-accent-line); } 100% { box-shadow: 0 0 0 0 transparent; } }

/* ---------- Ausführliche Suche in den Liederbüchern ---------- */
.lv-filter__modes { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; align-items: center; }
.lv-filter .lv-seg label, .lv-filter .lv-switch { flex-direction: row; font-size: inherit; font-weight: 400; color: inherit; }
.lv-filter .lv-seg span { font-size: .85em; }
.lv-filter .lv-switch { font-size: .9em; }
.lv-subhead { margin: 1.5rem 0 .6rem; font-size: 1em; text-transform: uppercase; letter-spacing: .06em; color: var(--lv-ink-2); }
.lv-subhead small { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--lv-ink-3); margin-left: .3rem; }
.lv-titlehits { margin-bottom: 1rem; }
.lv-hits--compact { gap: .4rem; }
.lv-hits--compact .lv-hit { padding: .6rem .85rem; }
@container (max-width: 560px) { .lv-filter__modes .lv-seg { width: 100%; justify-content: space-between; } }

/* ---------- Mehrfachauswahl Bücher ---------- */
.lv-filter__books { display: flex; flex-direction: column; gap: .3rem; min-width: 0; }
.lv-picker__label { font-size: .8rem; font-weight: 600; color: var(--lv-ink-2); }
.lv-picker { position: relative; }
.lv-picker > summary {
	list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: .5rem;
	padding: .58rem .75rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s);
	background: color-mix(in srgb, Canvas 75%, transparent); font-size: 1rem;
}
.lv-picker > summary::-webkit-details-marker { display: none; }
.lv-picker > summary::after { content: ""; width: .5em; height: .5em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); opacity: .6; flex: none; transition: transform .15s; }
.lv-picker[open] > summary { border-color: var(--lv-accent); box-shadow: 0 0 0 3px var(--lv-accent-soft); }
.lv-picker[open] > summary::after { transform: rotate(-135deg) translateY(-2px); }
.lv-picker__value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lv-picker__panel {
	position: absolute; z-index: 20; top: calc(100% + 4px); left: 0; min-width: 100%; width: max-content; max-width: min(22rem, 90vw);
	max-height: 18rem; overflow: auto; padding: .4rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s);
	background: var(--wp--preset--color--base, Canvas); box-shadow: 0 8px 28px rgb(0 0 0 / .14);
}
.lv-picker__panel label { display: flex !important; flex-direction: row !important; align-items: center; gap: .5rem; padding: .4rem .5rem; border-radius: 6px; cursor: pointer; font-size: .95rem !important; font-weight: 400 !important; color: inherit !important; }
.lv-picker__panel label:hover { background: var(--lv-accent-soft); }
.lv-picker__panel input { width: auto !important; accent-color: var(--lv-accent); }
.lv-picker__panel small { color: var(--lv-ink-3); margin-left: auto; }
.lv-picker__actions { display: flex; gap: .4rem; padding: .4rem .5rem 0; margin-top: .3rem; border-top: 1px solid var(--lv-border); }
.lv-picker__actions button { font: inherit; font-size: .8rem; padding: .2rem .6rem; border: 1px solid var(--lv-border-strong); border-radius: 999px; background: transparent; color: var(--lv-accent); cursor: pointer; }
.lv-seg { max-width: 100%; }
@container (max-width: 560px) {
	.lv-seg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; }
	.lv-seg span { padding: .35rem .2rem; text-align: center; font-size: .8em; }
}

/* ---------- API-Zugangsseite ---------- */
.lv-keycard { margin: 0 0 2rem; padding: 1.25rem 1.35rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius); background: var(--lv-surface); }
.lv-keycard h3 { margin: 0 0 .8rem; font-size: 1.1em; }
.lv-keycard__key { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin-bottom: 1rem; }
.lv-keycard__value { flex: 1 1 18rem; padding: .7rem .9rem; border-radius: var(--lv-radius-s); background: color-mix(in srgb, Canvas 80%, transparent); border: 1px dashed var(--lv-border-strong); font-size: 1.02rem; letter-spacing: .04em; word-break: break-all; user-select: none; }
.lv-keycard__value.is-visible { border-style: solid; border-color: var(--lv-accent); user-select: all; }
.lv-keycard__otp { display: grid; gap: .4rem; max-width: 26rem; }
.lv-keycard__otp label { font-size: .85rem; font-weight: 600; color: var(--lv-ink-2); }
.lv-keycard__row { display: flex; gap: .5rem; }
.lv-keycard__row input { flex: 1; min-width: 0; font: inherit; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1.15rem; letter-spacing: .15em; padding: .55rem .75rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); background: color-mix(in srgb, Canvas 80%, transparent); color: inherit; }
.lv-keycard__row input:focus { outline: none; border-color: var(--lv-accent); box-shadow: 0 0 0 3px var(--lv-accent-soft); }
.lv-linkbtn { justify-self: start; background: none; border: 0; padding: 0; color: var(--lv-accent); font: inherit; font-size: .88em; text-decoration: underline; cursor: pointer; }
.lv-keycard__msg { margin: .8rem 0 0; font-size: .93em; min-height: 1.2em; }
.lv-keycard__msg.is-ok { color: color-mix(in srgb, #0a7d32 85%, currentColor); }
.lv-keycard__msg.is-error { color: #b32d2e; }
.lv-keycard__msg.is-warn { color: #996800; }
.lv-keycard__hint { margin: .6rem 0 0; font-size: .85em; }
.lv-keycard__status { margin: 0 0 .5rem; font-weight: 600; }
.lv-keycard__status .lv-dot { display: inline-block; margin-right: .35rem; vertical-align: .05em; }
.lv-keycard__status small { font-weight: 400; color: var(--lv-ink-2); }
.lv-keycard__status + .lv-muted { margin: 0 0 1rem; }
.lv-dot { width: .6rem; height: .6rem; border-radius: 50%; background: var(--lv-border-strong); flex: none; }
.lv-dot.is-on { background: #1a9a4a; box-shadow: 0 0 0 3px color-mix(in srgb, #1a9a4a 22%, transparent); }
.lv-keycard__result { margin: 0 0 1rem; padding: 1rem; border-radius: var(--lv-radius-s); background: var(--lv-accent-soft); }
.lv-keycard__result .lv-keycard__key { margin-bottom: .6rem; }
.lv-keycard__warn { margin: 0; font-size: .9em; font-weight: 600; color: #8a5a00; }
@media (prefers-color-scheme: dark) { .lv-keycard__warn { color: #e0b552; } }
.lv-docs h3 { margin: 2rem 0 .7rem; font-size: 1.12em; }
.lv-docs__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .6rem 1rem; margin: 0; }
.lv-docs__facts > div { padding: .65rem .85rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); }
.lv-docs__facts dt { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--lv-ink-3); }
.lv-docs__facts dd { margin: .15rem 0 0; word-break: break-all; }
.lv-docs__list li, .lv-docs__steps li { margin: .35rem 0; }
.lv-docs__eps td:first-child { white-space: nowrap; }
.lv-code { position: relative; margin: .6rem 0 1rem; }
.lv-code pre { margin: 0; padding: 1rem 1.1rem; overflow-x: auto; border-radius: var(--lv-radius-s); background: #16181d; color: #e6e8eb; font-size: .86rem; line-height: 1.5; }
.lv-code code { font-family: ui-monospace, Menlo, Consolas, monospace; background: none; color: inherit; padding: 0; }
.lv-code__copy { position: absolute; top: .45rem; right: .45rem; font: inherit; font-size: .75rem; padding: .2rem .6rem; border-radius: 999px; border: 1px solid rgb(255 255 255 / .25); background: rgb(255 255 255 / .08); color: #e6e8eb; cursor: pointer; }
.lv-tabs__bar { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .4rem; }
.lv-tabs__bar button { font: inherit; font-size: .88em; padding: .35rem .85rem; border: 1px solid var(--lv-border-strong); border-radius: 999px; background: transparent; color: inherit; cursor: pointer; }
.lv-tabs__bar button[aria-selected="true"] { background: var(--lv-accent); border-color: var(--lv-accent); color: var(--lv-accent-ink); }
.lv-portal [hidden] { display: none !important; }

/* ===== Nutzerangaben (Mitmachen) ===== */
.lv-vz { font-size: .82em; color: var(--lv-ink-2); margin-left: .35rem; white-space: nowrap; }
.lv-tag.is-pending { font-style: italic; font-weight: 600; color: var(--lv-ink-2); }
.lv-vorbehalt { display: inline-block; margin-left: .4rem; padding: .05rem .45rem; border-radius: 999px; font-size: .7rem; font-weight: 600; letter-spacing: .02em; color: #8a5a00; background: color-mix(in srgb, #f0b429 20%, transparent); border: 1px dashed color-mix(in srgb, #c98a00 55%, transparent); white-space: nowrap; vertical-align: .1em; cursor: help; }
.lv-change { display: inline-block; margin-left: .4rem; font-size: .7rem; color: var(--lv-ink-3); border-bottom: 1px dotted currentColor; cursor: help; }
.lv-vorbehalt-note { margin: .45rem 0 0; font-size: .8rem; color: var(--lv-ink-3); }
.lv-musik.has-pending i { font-style: italic; opacity: .8; }
.lv-contribwrap.is-busy { opacity: .65; transition: opacity .15s; pointer-events: none; }
.lv-contrib-login { margin: .6rem 0 0; font-size: .88rem; color: var(--lv-ink-2); }
.lv-contrib { margin: .9rem 0 0; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); background: var(--lv-surface); }
.lv-contrib > summary { display: flex; align-items: center; gap: .6rem; padding: .75rem 1rem; cursor: pointer; font-weight: 600; list-style: none; }
.lv-contrib > summary::-webkit-details-marker { display: none; }
.lv-contrib > summary::before { content: "✎"; color: var(--lv-accent); }
.lv-contrib > summary::after { content: "▾"; margin-left: auto; color: var(--lv-ink-3); transition: transform .2s; }
.lv-contrib[open] > summary::after { transform: rotate(180deg); }
.lv-contrib__count { font-size: .72rem; font-weight: 600; padding: .1rem .5rem; border-radius: 999px; background: var(--lv-accent-soft); color: var(--lv-accent); }
.lv-contrib__body { padding: 0 1rem 1rem; }
.lv-contrib__body > .lv-muted { margin: 0 0 .8rem; font-size: .88rem; }
.lv-contrib__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: .8rem; }
.lv-contrib__field { padding: .75rem .85rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); background: color-mix(in srgb, Canvas 70%, transparent); min-width: 0; }
.lv-contrib__field.is-missing { border-style: dashed; }
.lv-contrib__field h4 { margin: 0 0 .25rem; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--lv-ink-3); }
.lv-contrib__current { margin: 0 0 .5rem; font-size: .9rem; }
.lv-contrib__props { list-style: none; margin: 0 0 .6rem; padding: 0; display: grid; gap: .4rem; }
.lv-contrib__prop { display: grid; grid-template-columns: 1fr auto; gap: .1rem .5rem; align-items: center; padding: .45rem .55rem; border-radius: var(--lv-radius-s); background: var(--lv-surface); border: 1px solid var(--lv-border); }
.lv-contrib__prop.is-mine { border-color: color-mix(in srgb, var(--lv-accent) 45%, transparent); }
.lv-contrib__val { font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.lv-contrib__state { grid-column: 1; font-size: .72rem; color: var(--lv-ink-3); }
.lv-contrib__votes { grid-column: 2; grid-row: 1 / span 2; display: flex; gap: .3rem; }
.lv-vote { display: inline-flex; align-items: center; gap: .25rem; font: inherit; font-size: .8rem; padding: .3rem .55rem; border-radius: 999px; border: 1px solid var(--lv-border-strong); background: transparent; color: inherit; cursor: pointer; line-height: 1.2; }
.lv-vote span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.lv-vote b { font-variant-numeric: tabular-nums; }
.lv-vote:hover:not(.is-static) { border-color: var(--lv-accent); }
.lv-vote.is-up[aria-pressed="true"] { background: #1a9a4a; border-color: #1a9a4a; color: #fff; }
.lv-vote.is-down[aria-pressed="true"] { background: #b32d2e; border-color: #b32d2e; color: #fff; }
.lv-vote.is-static { cursor: default; opacity: .6; }
.lv-vote:focus-visible { outline: 2px solid var(--lv-accent); outline-offset: 2px; }
.lv-contrib__form { display: flex; gap: .4rem; flex-wrap: wrap; }
.lv-contrib__form select { flex: 1 1 9rem; min-width: 0; font: inherit; font-size: .9rem; padding: .4rem .5rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); background: var(--wp--preset--color--base, Canvas); color: inherit; }
.lv-contrib__hint { margin: .4rem 0 0; font-size: .75rem; }
.lv-contrib__msg { margin: .7rem 0 0; font-size: .88rem; min-height: 1.2em; }
.lv-contrib__msg.is-ok { color: color-mix(in srgb, #0a7d32 85%, currentColor); }
.lv-contrib__msg.is-error { color: #b32d2e; }
@media (prefers-color-scheme: dark) { .lv-vorbehalt { color: #e9c46a; } }
.lv-root .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ===== App einrichten (persönlicher Bereich) ===== */
.lv-appacc__head { display: flex; gap: 1rem; align-items: flex-start; margin: 0 0 1.2rem; }
.lv-appacc__head img { border-radius: 22%; flex: none; box-shadow: 0 4px 14px rgb(0 0 0 / .12); }
.lv-appacc__head h3 { margin: 0 0 .3rem; }
.lv-appacc__head p { margin: 0; }
.lv-appacc__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 1rem; }
.lv-appacc__card { padding: 1rem 1.1rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); background: var(--lv-surface); }
.lv-appacc__card h4 { margin: 0 0 .35rem; }
.lv-appacc__card p { margin: 0 0 .8rem; font-size: .93rem; }
.lv-appacc__card code { word-break: break-all; }
.lv-appacc__pair { margin-top: 1rem; text-align: center; }
.lv-appacc__qr svg { width: 200px; height: 200px; max-width: 100%; background: #fff; border-radius: 8px; padding: 4px; }
.lv-appacc__code { font: 700 1.6rem/1.2 ui-monospace, Menlo, Consolas, monospace; letter-spacing: .12em; margin: .5rem 0 .2rem !important; }
.lv-appacc__tips { margin: 1rem 0; font-size: .92rem; }
.lv-appacc__tips summary { cursor: pointer; font-weight: 600; }
.lv-appacc__devh { margin: 1.5rem 0 .6rem; }
.lv-devices { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.lv-devices li { display: flex; flex-wrap: wrap; gap: .4rem .8rem; align-items: center; padding: .7rem .9rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); background: var(--lv-surface); }
.lv-devices__icon { font-size: 1.4rem; }
.lv-devices__main { flex: 1 1 12rem; display: grid; }
.lv-devices__main small { color: var(--lv-ink-3); }
.lv-devices__lock { font-size: .85rem; color: var(--lv-ink-2); }

/* ===== Gesungene Lieder ===== */
.lv-sung { display: inline-flex; align-items: center; gap: .35rem; font-size: .78rem; font-weight: 600; padding: .12rem .55rem; border-radius: 999px; white-space: nowrap; line-height: 1.5; cursor: help; }
.lv-sung__dot { width: .55rem; height: .55rem; border-radius: 50%; flex: none; }
.lv-sung--rot { background: color-mix(in srgb, #d92d20 13%, transparent); color: #a8231a; }
.lv-sung--rot .lv-sung__dot { background: #d92d20; }
.lv-sung--gelb { background: color-mix(in srgb, #e9a400 18%, transparent); color: #7a5300; }
.lv-sung--gelb .lv-sung__dot { background: #e9a400; }
.lv-sung--gruen { background: color-mix(in srgb, #1a9a4a 12%, transparent); color: #146c36; }
.lv-sung--gruen .lv-sung__dot { background: #1a9a4a; }
@media (prefers-color-scheme: dark) { .lv-sung--rot { color: #ff9b91; } .lv-sung--gelb { color: #f3c55a; } .lv-sung--gruen { color: #7fd6a2; } }
.lv-hit.lv-hit--rot { box-shadow: inset 4px 0 0 #d92d20; }
.lv-hit.lv-hit--gelb { box-shadow: inset 4px 0 0 #e9a400; }
.lv-hit.lv-hit--gruen { box-shadow: inset 4px 0 0 color-mix(in srgb, #1a9a4a 55%, transparent); }
.lv-hit__sung { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin-top: .35rem; position: relative; z-index: 2; }
.lv-singbtn { font: inherit; font-size: .76rem; font-weight: 600; padding: .15rem .6rem; border-radius: 999px; border: 1px solid var(--lv-border-strong); background: var(--lv-surface); color: var(--lv-accent); cursor: pointer; }
.lv-singbtn:hover { border-color: var(--lv-accent); background: var(--lv-accent-soft); }
.lv-register .lv-sung { margin-left: .4rem; font-size: .7rem; padding: .05rem .45rem; }
.lv-sungbox { margin: 1rem 0; padding: .85rem 1rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); background: var(--lv-surface); }
.lv-sungbox__head { display: flex; align-items: center; gap: .5rem; background: none !important; padding: 0; }
.lv-sungbox__head .lv-sung__dot { width: .7rem; height: .7rem; }
.lv-sungbox__list { list-style: none; margin: .5rem 0 0; padding: 0; font-size: .9rem; }
.lv-sungbox__list li { display: grid; grid-template-columns: 9rem 1fr 1fr; gap: .2rem .8rem; padding: .3rem 0; border-top: 1px solid var(--lv-border); }
@media (max-width: 560px) { .lv-sungbox__list li { grid-template-columns: 1fr; } }
.lv-sungbox__act { margin: .7rem 0 0; }

/* Gemeindebereich */
.lv-gem__unit { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; margin: 0 0 1rem; }
.lv-gem__unit select { font: inherit; padding: .5rem .7rem; border-radius: var(--lv-radius-s); border: 1px solid var(--lv-border-strong); background: var(--lv-surface); color: inherit; max-width: 100%; }
.lv-gem__ctx { font-size: .85rem; }
.lv-tabs-nav { display: flex; gap: .25rem; flex-wrap: wrap; border-bottom: 1px solid var(--lv-border); margin: 0 0 1.2rem; }
.lv-tabs-nav a { padding: .55rem .9rem; text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; color: var(--lv-ink-2); font-weight: 600; }
.lv-tabs-nav a[aria-current] { color: var(--lv-accent); border-bottom-color: var(--lv-accent); }
.lv-count { display: inline-block; min-width: 1.3em; padding: 0 .4em; border-radius: 999px; background: #d92d20; color: #fff; font-size: .72em; text-align: center; }
.lv-field { display: grid; gap: .25rem; margin: 0 0 .8rem; min-width: 0; }
.lv-field > span { font-size: .8rem; font-weight: 600; color: var(--lv-ink-2); }
.lv-field input, .lv-field select, .lv-field textarea { font: inherit; padding: .55rem .7rem; border-radius: var(--lv-radius-s); border: 1px solid var(--lv-border-strong); background: var(--lv-surface); color: inherit; width: 100%; min-width: 0; }
.lv-field input:focus, .lv-field select:focus, .lv-field textarea:focus { outline: none; border-color: var(--lv-accent); box-shadow: 0 0 0 3px var(--lv-accent-soft); }
.lv-field--s { max-width: 12rem; }
.lv-entry__top, .lv-ef__grid, .lv-orgreg__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 0 .8rem; }
.lv-entry__search { position: relative; }
.lv-entry__search input { font-size: 1.05rem; }
.lv-entry__res { list-style: none; margin: -.4rem 0 .6rem; padding: 0; border-radius: var(--lv-radius-s); overflow: hidden; border: 1px solid var(--lv-border); }
.lv-entry__res:empty { display: none; }
.lv-entry__res li { border-top: 1px solid var(--lv-border); }
.lv-entry__res li:first-child { border-top: 0; }
.lv-entry__res li.lv-muted { padding: .6rem .8rem; }
.lv-entry__res button { all: unset; box-sizing: border-box; width: 100%; display: flex; gap: .7rem; align-items: center; flex-wrap: wrap; padding: .6rem .8rem; cursor: pointer; background: var(--lv-surface); }
.lv-entry__res button:hover, .lv-entry__res button:focus-visible { background: var(--lv-accent-soft); }
.lv-entry__no { font-weight: 800; min-width: 4.5rem; font-variant-numeric: tabular-nums; }
.lv-entry__t { flex: 1; min-width: 10rem; }
.lv-entry__form { margin: .6rem 0 1rem; padding: 1rem; border: 1px solid var(--lv-accent); border-radius: var(--lv-radius); background: var(--lv-surface); box-shadow: 0 0 0 3px var(--lv-accent-soft); }
.lv-ef__song { display: flex; flex-wrap: wrap; gap: .4rem .7rem; align-items: center; margin: 0 0 .9rem; font-size: 1.05rem; }
.lv-ef__no { font-weight: 800; color: var(--lv-accent); }
.lv-vbtns { display: flex; flex-wrap: wrap; gap: .35rem; }
.lv-vbtn { font: inherit; font-weight: 700; min-width: 2.6rem; height: 2.6rem; border-radius: .7rem; border: 1px solid var(--lv-border-strong); background: var(--lv-surface); color: inherit; cursor: pointer; font-variant-numeric: tabular-nums; }
.lv-vbtn[aria-pressed="true"] { background: var(--lv-accent); border-color: var(--lv-accent); color: #fff; }
.lv-vbtn--all { font-weight: 600; font-size: .85rem; padding: 0 .7rem; }
.lv-ef__vfree { margin-top: .4rem; max-width: 16rem; }
.lv-perf { display: flex; flex-wrap: wrap; gap: .35rem; }
.lv-perf .lv-chip { font: inherit; font-size: .88rem; padding: .35rem .8rem; border-radius: 999px; border: 1px solid var(--lv-border-strong); background: var(--lv-surface); color: inherit; cursor: pointer; }
.lv-perf .lv-chip[aria-pressed="true"] { background: var(--lv-accent); border-color: var(--lv-accent); color: #fff; }
.lv-ef__act { margin: .4rem 0 0; }
.lv-entry__msg, .lv-mem__msg, .lv-orgreg__msg { min-height: 1.2em; font-size: .92rem; }
.is-ok.lv-entry__msg, .is-ok.lv-mem__msg, .is-ok.lv-orgreg__msg { color: color-mix(in srgb, #0a7d32 85%, currentColor); }
.is-error.lv-entry__msg, .is-error.lv-mem__msg, .is-error.lv-orgreg__msg { color: #b32d2e; }
.lv-day__h { margin: 1.2rem 0 .4rem; font-size: 1rem; }
.lv-day { list-style: none; margin: 0; padding: 0; counter-reset: d; }
.lv-day li { display: flex; gap: .7rem; align-items: baseline; padding: .55rem .2rem; border-top: 1px solid var(--lv-border); }
.lv-day__no { font-weight: 800; min-width: 4.8rem; font-variant-numeric: tabular-nums; }
.lv-day__t { flex: 1; min-width: 0; }
.lv-day__t span { color: var(--lv-ink-2); }
.lv-day__t small { display: block; color: var(--lv-ink-3); }
.lv-hist__day h4 { margin: 1.2rem 0 .2rem; font-size: 1rem; }
.lv-hist__day h4 small { font-weight: 400; color: var(--lv-ink-3); }
.lv-gem__filter { display: flex; flex-wrap: wrap; gap: 0 .7rem; align-items: end; margin: 0 0 1rem; }
.lv-gem__filter .lv-btn { margin-bottom: .8rem; }
.lv-seg { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--lv-border-strong); border-radius: .6rem; overflow: hidden; margin: 0 0 .8rem; }
.lv-seg__b { font: inherit; font-size: .85rem; padding: .45rem .75rem; border: 0; border-left: 1px solid var(--lv-border); background: var(--lv-surface); color: inherit; cursor: pointer; display: inline-flex; gap: .3rem; align-items: center; }
.lv-seg__b:first-child { border-left: 0; }
.lv-seg__b[aria-pressed="true"], .lv-seg__b:has(input:checked) { background: var(--lv-accent); color: #fff; }
.lv-seg__b input { position: absolute; opacity: 0; pointer-events: none; }
.lv-gem__printrow { display: flex; flex-wrap: wrap; gap: 0 .8rem; }
.lv-tablewrap { overflow-x: auto; }
.lv-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.lv-table th, .lv-table td { text-align: left; padding: .45rem .6rem; border-bottom: 1px solid var(--lv-border); vertical-align: top; }
.lv-table th { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--lv-ink-3); }
.lv-nowrap { white-space: nowrap; }
.lv-mem__list { list-style: none; margin: 0 0 1.4rem; padding: 0; display: grid; gap: .5rem; }
.lv-mem__list > li { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: center; justify-content: space-between; padding: .75rem .9rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); background: var(--lv-surface); }
.lv-mem__act { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.lv-mem__act select { font: inherit; padding: .4rem .5rem; border-radius: var(--lv-radius-s); border: 1px solid var(--lv-border-strong); background: var(--lv-surface); color: inherit; }
.lv-mem__invite, .lv-mem__set { max-width: 40rem; }
.lv-mem__set fieldset { border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); padding: .6rem .9rem; margin: 0 0 1rem; }
.lv-mem__set legend { font-weight: 600; padding: 0 .3rem; }
.lv-mem__set .lv-check { display: inline-flex; margin: .2rem 1rem .2rem 0; }
.lv-danger { color: #b32d2e !important; }
.lv-dialog { border: 0; padding: 0; border-radius: var(--lv-radius); width: min(36rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); background: var(--wp--preset--color--base, Canvas); color: var(--wp--preset--color--contrast, CanvasText); box-shadow: 0 20px 60px rgb(0 0 0 / .3); }
.lv-dialog::backdrop { background: rgb(15 20 30 / .45); }
.lv-dialog__in { padding: 1.1rem 1.2rem; }
.lv-dialog__head { display: flex; align-items: center; justify-content: space-between; margin: 0 0 .6rem; }
.lv-dialog__head h3 { margin: 0; }
.lv-dialog__x { font-size: 1.6rem; line-height: 1; border: 0; background: none; cursor: pointer; color: inherit; }
/* Registrierung */
.lv-orgreg__form { max-width: 40rem; }
.lv-orgreg__units { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: .8rem 1rem .2rem; margin: 0 0 1rem; }
.lv-orgreg__units legend { font-weight: 700; padding: 0 .3rem; }
.lv-cascade { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: 0 .8rem; }
.lv-orgreg__path { margin: 0 0 .6rem; font-size: .85rem; }
.lv-orgreg__invite { padding: .8rem 1rem; border-radius: var(--lv-radius-s); background: var(--lv-accent-soft); margin: 0 0 1rem; }
.lv-hp { position: absolute !important; left: -9999px; }
.lv-dialog, .lv-dialog *, .lv-dialog *::before, .lv-dialog *::after { box-sizing: border-box; }
.lv-dialog { font-size: 1rem; line-height: 1.5; overflow: auto; }
.lv-dialog .lv-ef__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); }
.lv-unitpick__find { margin-bottom: .4rem; }
.lv-unitpick__hits { list-style: none; margin: 0 0 .8rem; padding: 0; border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); overflow: hidden; }
.lv-unitpick__hits li { border-top: 1px solid var(--lv-border); }
.lv-unitpick__hits li:first-child { border-top: 0; }
.lv-unitpick__hits li.lv-muted { padding: .55rem .8rem; }
.lv-unitpick__hits button { all: unset; box-sizing: border-box; width: 100%; display: grid; padding: .55rem .8rem; cursor: pointer; background: var(--lv-surface); }
.lv-unitpick__hits button:hover, .lv-unitpick__hits button:focus-visible { background: var(--lv-accent-soft); }
.lv-unitpick__hits small { color: var(--lv-ink-3); }
.lv-unitpick__or { margin: .2rem 0 .6rem; font-size: .82rem; color: var(--lv-ink-3); text-align: center; }
.lv-orgreg__path.is-ok { color: color-mix(in srgb, #0a7d32 85%, currentColor); font-weight: 600; }
.lv-orgreg__funcs { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: .8rem 1rem; margin: 0 0 1rem; }
.lv-orgreg__funcs legend { font-weight: 700; padding: 0 .3rem; }
.lv-orgreg__funcs legend small { font-weight: 400; color: var(--lv-ink-3); }
.lv-orgreg__fgrid { display: flex; flex-wrap: wrap; gap: .4rem; }
.lv-fchip { position: relative; cursor: pointer; }
.lv-fchip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.lv-fchip span { display: inline-block; padding: .4rem .85rem; border-radius: 999px; border: 1px solid var(--lv-border-strong); background: var(--lv-surface); font-size: .92rem; }
.lv-fchip input:checked + span { background: var(--lv-accent); border-color: var(--lv-accent); color: #fff; }
.lv-fchip input:checked + span::before { content: "✓ "; }
.lv-fchip input:focus-visible + span { outline: 2px solid var(--lv-accent); outline-offset: 2px; }
.lv-multi { position: relative; }
.lv-multi summary { cursor: pointer; padding: .4rem .7rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); background: var(--lv-surface); list-style: none; max-width: 18rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lv-multi summary::-webkit-details-marker { display: none; }
.lv-multi summary::after { content: " ▾"; color: var(--lv-ink-3); }
.lv-multi__box { position: absolute; z-index: 20; top: calc(100% + 4px); left: 0; min-width: 14rem; padding: .5rem .7rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); background: var(--wp--preset--color--base, Canvas); box-shadow: 0 10px 30px rgb(0 0 0 / .15); display: grid; gap: .15rem; }

/* ===== 2.1: Personen & Rechte, Protokoll ===== */
.lv-gem__crumbs { margin: .2rem 0 .6rem; font-size: .92rem; }
.lv-gem__crumbs a { color: inherit; }
.lv-gem__kids { margin: 0 0 1rem; }
.lv-gem__kids > summary { cursor: pointer; font-size: .92rem; color: var(--lv-muted); }
.lv-gem__kidlist { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .5rem; }
.lv-gem__kidlist .lv-chip { text-decoration: none; }
.lv-mem__list > li { display: grid; grid-template-columns: minmax(11rem, 1fr) minmax(0, 2.4fr) auto; gap: .4rem 1rem; align-items: center; padding: .65rem .9rem; transition: opacity .25s, box-shadow .25s, border-color .25s; }
.lv-mem__list > li > .lv-mem__edit { grid-column: 1 / -1; padding-top: .7rem; margin-top: .2rem; border-top: 1px solid var(--lv-border); }
.lv-mem__list > li.is-open { box-shadow: 0 4px 18px rgba(0,0,0,.07); }
@media (max-width: 640px) { .lv-mem__list > li { grid-template-columns: 1fr auto; } .lv-mem__sum { grid-column: 1 / -1; grid-row: 2; } }
.lv-mem__who { display: flex; flex-direction: column; min-width: 0; }
.lv-mem__who strong { overflow-wrap: anywhere; }
.lv-mem__mail { font-size: .82rem; overflow-wrap: anywhere; }
.lv-mem__sum { display: flex; flex-direction: column; gap: .3rem; min-width: 0; }
.lv-mem__funcs { font-weight: 600; font-size: .92rem; }
.lv-mem__tools { justify-self: end; }
.lv-mem__lock { font-size: 1rem; opacity: .55; cursor: help; }
.lv-btn--s { padding: .3rem .75rem; font-size: .86rem; min-height: 0; }
.lv-rchips { display: flex; flex-wrap: wrap; gap: .25rem; }
.lv-rchip { font-size: .74rem; line-height: 1.2; padding: .14rem .5rem; border-radius: 999px; background: var(--lv-accent-soft); color: color-mix(in srgb, var(--lv-accent) 85%, currentColor); border: 1px solid var(--lv-accent-line); white-space: nowrap; }
.lv-rchip--mitglieder, .lv-rchip--einstellungen, .lv-rchip--protokoll, .lv-rchip--bearbeiten { background: color-mix(in srgb, #b26a00 10%, transparent); border-color: color-mix(in srgb, #b26a00 35%, transparent); color: color-mix(in srgb, #8a5200 85%, currentColor); }
.lv-multi__box .lv-check { display: flex !important; align-items: center; gap: .5rem; margin: 0; padding: .3rem .4rem; border-radius: 6px; }
.lv-multi__box .lv-check:hover { background: var(--lv-surface-2); }
.lv-multi__box .lv-check input { margin: 0; flex: none; }
@media (max-width: 720px) { .lv-mem__list > li { grid-template-columns: 1fr; } }
.lv-mem__list > li.is-dirty { border-color: var(--lv-accent, #2557a7); box-shadow: 0 0 0 1px var(--lv-accent, #2557a7) inset; }
.lv-mem__list > li.is-saved { border-color: #0a7d32; box-shadow: 0 0 0 1px #0a7d32 inset; }
.lv-mem__list > li.is-gone { opacity: 0; }
.lv-mem__list > li.is-locked { background: color-mix(in srgb, var(--lv-surface) 92%, currentColor 8%); }
.lv-mem__list > li[hidden] { display: none; }
.is-busy { opacity: .6; pointer-events: none; }
.lv-mem__edit { display: grid; gap: .6rem; }
.lv-mem__unit { font-size: .85rem; }
.lv-mem__hint { margin: 0; font-size: .85rem; }
.lv-mem__filter { max-width: 22rem; margin-bottom: .6rem; }
.lv-mem__invrow { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: .6rem 1rem; }
.lv-mem__invite { max-width: 52rem; display: grid; gap: .8rem; padding: 1rem; border: 1px dashed var(--lv-border-strong); border-radius: var(--lv-radius-s); }
.lv-rights { display: flex; flex-wrap: wrap; gap: .35rem; }
.lv-right { display: inline-flex; gap: .4rem; align-items: center; font-size: .86rem; line-height: 1.25; padding: .35rem .65rem; border-radius: 999px; border: 1px solid var(--lv-border); background: var(--lv-surface); cursor: pointer; }
.lv-right:has(input:checked) { border-color: color-mix(in srgb, var(--lv-accent, #2557a7) 60%, transparent); background: color-mix(in srgb, var(--lv-accent, #2557a7) 9%, var(--lv-surface)); }
.lv-right.is-locked { cursor: not-allowed; opacity: .62; }
.lv-right input { margin: 0; accent-color: var(--lv-accent, #2557a7); }
.lv-orgreg__mine { padding: .7rem .9rem; border-radius: var(--lv-radius-s); border: 1px solid var(--lv-border); margin-bottom: 1rem; }
.lv-orgreg__mine ul { margin: .3rem 0 .4rem 1.1rem; }

/* Rückmeldungen ohne Neuladen */
.lv-toasts { position: fixed; z-index: 100000; right: 1rem; bottom: 1rem; display: grid; gap: .5rem; max-width: min(26rem, calc(100vw - 2rem)); }
.lv-toast { padding: .7rem 1rem; border-radius: 10px; color: #fff; background: #1f6f3d; box-shadow: 0 6px 24px rgba(0,0,0,.22); font: 500 .95rem/1.35 system-ui, sans-serif; animation: lv-toast-in .22s ease-out; transition: opacity .35s, transform .35s; }
.lv-toast.is-error { background: #a32020; }
.lv-toast.is-out { opacity: 0; transform: translateY(6px); }
@keyframes lv-toast-in { from { opacity: 0; transform: translateY(8px); } }
@media (prefers-reduced-motion: reduce) { .lv-toast { animation: none; transition: none; } }

/* Protokoll */
.lv-logtable td { vertical-align: top; font-size: .9rem; }
.lv-logtag { display: inline-block; padding: .1rem .5rem; border-radius: 999px; font-size: .78rem; font-weight: 600; white-space: nowrap; background: #e8eef9; color: #1d3f7a; }
.lv-logtag--eintraege { background: #e6f4ea; color: #145c2c; }
.lv-logtag--mitglieder { background: #fdf0dc; color: #7a4a06; }
.lv-logtag--einstellungen { background: #efe7fb; color: #4d2a85; }
.lv-logtag--exporte { background: #e4f3f6; color: #0c5464; }
.lv-logtag--struktur { background: #f1f1f1; color: #333; }
.lv-logtag--app { background: #fbe7ee; color: #7c1d40; }
.lv-logdata summary { cursor: pointer; font-size: .8rem; color: var(--lv-muted, #666); }
.lv-logdata pre { white-space: pre-wrap; font-size: .78rem; max-height: 16rem; overflow: auto; background: rgba(127,127,127,.08); padding: .5rem; border-radius: 6px; }
.lv-pager a, .lv-pager strong { display: inline-block; min-width: 1.8rem; text-align: center; }
.lv-matrix-wrap { overflow-x: auto; }
.lv-matrix th, .lv-matrix td { text-align: center; font-size: 12px; }
.lv-matrix thead th { writing-mode: initial; max-width: 7rem; white-space: normal; }
.lv-matrix tbody th { text-align: left; white-space: nowrap; }

.lv-mem__edit[hidden] { display: none !important; }
.lv-mem__who .lv-badge { align-self: flex-start; }
.lv-mem__block { display: grid; gap: .35rem; }
.lv-mem__lbl { font-size: .86rem; font-weight: 600; }
.lv-mem__lbl small { font-weight: 400; color: var(--lv-muted); }
.lv-right input[type=checkbox] { width: auto !important; height: auto; flex: none; }

.lv-logcount { font-size: .9rem; color: var(--lv-muted, #666); margin: .4rem 0 .6rem; }
.lv-logtable { width: 100%; border-collapse: collapse; }
.lv-logtable th, .lv-logtable td { text-align: left; padding: .5rem .6rem; border-bottom: 1px solid rgba(127,127,127,.18); }
.lv-logtable th { font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; color: var(--lv-muted, #666); }
.lv-logtable .lv-logdesc { min-width: 18rem; overflow-wrap: anywhere; }
@media (max-width: 760px) {
	.lv-logtable thead { display: none; }
	.lv-logtable, .lv-logtable tbody, .lv-logtable tr, .lv-logtable td { display: block; }
	.lv-logtable tr { padding: .6rem 0; border-bottom: 1px solid rgba(127,127,127,.25); display: grid; grid-template-columns: auto 1fr; gap: .15rem .6rem; }
	.lv-logtable td { border: 0; padding: 0; }
	.lv-logtable td[data-l="Zeitpunkt"] { font-weight: 600; }
	.lv-logtable td[data-l="Aktion"] { justify-self: end; }
	.lv-logtable td[data-l="Wer"], .lv-logtable td[data-l="Einheit"] { font-size: .85rem; color: var(--lv-muted, #666); }
	.lv-logtable td[data-l="Einheit"] { text-align: right; }
	.lv-logtable .lv-logdesc { grid-column: 1 / -1; min-width: 0; margin-top: .2rem; }
}

/* ===== 2.2: Liedplan ===== */
.lv-plan__head { display: flex; flex-wrap: wrap; gap: .8rem 1.2rem; align-items: flex-end; justify-content: space-between; margin-bottom: .8rem; }
.lv-plan__h { margin: 0 0 .2rem; }
.lv-plan__head p { margin: 0; }
.lv-plan__list { display: grid; gap: .55rem; margin-top: 1rem; }
.lv-plan__card { all: unset; box-sizing: border-box; cursor: pointer; display: grid; grid-template-columns: 9.5rem 1fr auto; gap: .4rem 1rem; align-items: center; padding: .85rem 1rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); background: var(--lv-surface); transition: border-color .15s, box-shadow .15s, transform .15s; }
.lv-plan__card:hover, .lv-plan__card:focus-visible { border-color: var(--lv-accent-line); box-shadow: 0 6px 20px rgba(0,0,0,.06); transform: translateY(-1px); }
.lv-plan__card.is-today { border-color: var(--lv-accent); box-shadow: inset 4px 0 0 var(--lv-accent); }
.lv-plan__date { display: flex; flex-direction: column; font-size: .9rem; color: var(--lv-muted); }
.lv-plan__date b { color: var(--lv-text, inherit); font-size: 1rem; }
.lv-plan__date em { font-style: normal; font-weight: 700; color: var(--lv-accent); }
.lv-plan__ct { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.lv-plan__ct small { color: var(--lv-muted); }
.lv-plan__nums { display: flex; flex-wrap: wrap; gap: .25rem; }
.lv-plan__nums span { font-size: .78rem; padding: .08rem .45rem; border-radius: 6px; background: var(--lv-surface-2); font-variant-numeric: tabular-nums; }
.lv-plan__nums i { font-size: .82rem; color: var(--lv-muted); }
.lv-plan__n { font-size: 1.4rem; font-weight: 700; color: var(--lv-accent); min-width: 2ch; text-align: right; }
@container (max-width: 560px) { .lv-plan__card { grid-template-columns: 1fr auto; } .lv-plan__date { grid-column: 1 / -1; flex-direction: row; gap: .4rem; } }
.lv-plan__empty { padding: 1.4rem; text-align: center; border: 1px dashed var(--lv-border-strong); border-radius: var(--lv-radius-s); list-style: none; }
.lv-plan__sk { height: 7rem; border-radius: var(--lv-radius-s); background: linear-gradient(90deg, var(--lv-surface-2), transparent, var(--lv-surface-2)); background-size: 200% 100%; animation: lv-sk 1.2s linear infinite; }
.lv-plan__sk--s { height: 3rem; }
@keyframes lv-sk { to { background-position: -200% 0; } }
.lv-plan__new { margin-top: 1rem; }
.lv-plan__form { padding: 1rem; border: 1px solid var(--lv-accent-line); border-radius: var(--lv-radius-s); background: var(--lv-accent-soft); display: grid; gap: .7rem; }
.lv-plan__grid, .lv-plan__meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .6rem 1rem; }
.lv-plan__svc { display: flex; flex-direction: column; gap: .15rem; padding: .6rem .8rem; border-radius: var(--lv-radius-s); background: var(--lv-surface); border-left: 3px solid var(--lv-accent); font-size: .92rem; }
.lv-plan__svc i { font-style: normal; font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--lv-muted); margin-right: .35rem; }
.lv-plan__svc--big { flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .6rem 1rem; margin: .8rem 0; }
.lv-plan__svc--big > div { display: flex; flex-direction: column; gap: .2rem; }
.lv-plan__bar { display: flex; align-items: center; gap: 1rem; margin-bottom: .8rem; position: sticky; top: 0; z-index: 3; padding: .5rem 0; background: var(--wp--preset--color--base, Canvas); }
.lv-plan__save { margin-left: auto; font-size: .85rem; color: var(--lv-muted); }
.lv-plan__save.is-ok { color: #0a7d32; }
.lv-plan__save.is-error { color: #b32d2e; }
.lv-plan__unit { margin: .4rem 0 0; }
.lv-plan__cols { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 1.4rem; align-items: start; margin-top: .8rem; }
@container (max-width: 860px) { .lv-plan__cols { grid-template-columns: 1fr; } .lv-plan__find { position: static; max-height: none; } }
.lv-plan__items h3, .lv-plan__find h3 { margin: 0 0 .6rem; font-size: 1.05rem; }
.lv-plan__find { position: sticky; top: 3.4rem; padding: 1rem; border-radius: var(--lv-radius-s); border: 1px solid var(--lv-border); background: var(--lv-surface); max-height: calc(100vh - 4.5rem); overflow: auto; }

.lv-plan__ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; counter-reset: lvp; }
.lv-plan__it { border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); background: var(--lv-surface); padding: .55rem .7rem; display: grid; gap: .45rem; }
.lv-plan__it.is-new { animation: lv-new 1.4s ease-out; }
@keyframes lv-new { from { box-shadow: 0 0 0 3px var(--lv-accent-line); } }
.lv-plan__it.is-note { background: var(--lv-surface-2); border-style: dashed; }
.lv-plan__ithead { display: flex; align-items: center; gap: .6rem; min-width: 0; }
.lv-plan__slot { width: 8.5rem; flex: none; font: inherit; font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: var(--lv-accent); border: 1px solid transparent; background: var(--lv-accent-soft); border-radius: 6px; padding: .25rem .45rem; }
.lv-plan__slot:hover, .lv-plan__slot:focus { border-color: var(--lv-accent-line); }
.lv-plan__no { flex: none; font-variant-numeric: tabular-nums; color: var(--lv-muted); font-size: .9rem; }
.lv-plan__no b { color: var(--lv-text, inherit); font-size: 1.15rem; }
.lv-plan__ti { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .5rem; }
.lv-plan__ti input, .lv-plan__notein { flex: 1; font: inherit; border: 1px solid var(--lv-border); border-radius: 6px; padding: .25rem .45rem; background: transparent; color: inherit; min-width: 8rem; }
.lv-plan__tools { display: flex; gap: .15rem; flex: none; }
.lv-ib { all: unset; box-sizing: border-box; cursor: pointer; width: 2rem; height: 2rem; display: inline-grid; place-items: center; border-radius: 8px; font-size: 1rem; color: var(--lv-muted); }
.lv-ib:hover:not([disabled]) { background: var(--lv-surface-2); color: inherit; }
.lv-ib[disabled] { opacity: .3; cursor: default; }
.lv-ib.lv-danger:hover { color: #b32d2e; }
.lv-plan__itbody { display: flex; flex-wrap: wrap; gap: .4rem .5rem; align-items: center; padding-left: 9.1rem; }
@container (max-width: 640px) { .lv-plan__itbody { padding-left: 0; } .lv-plan__slot { width: 6.8rem; } }
.lv-plan__itbody select, .lv-plan__itbody input { font: inherit; font-size: .88rem; border: 1px solid var(--lv-border); border-radius: 6px; padding: .25rem .45rem; background: transparent; color: inherit; }
.lv-plan__nin { flex: 1; min-width: 10rem; }
.lv-plan__vin { width: 9rem; }
.lv-plan__bl { width: 8rem; }
.lv-vbtns--s .lv-vbtn { min-width: 1.9rem; height: 1.9rem; font-size: .85rem; }
.lv-plan__addrow { margin: .7rem 0; font-size: .92rem; }
.lv-plan__del { margin-top: 1.4rem; font-size: .9rem; }
.lv-plan__search { display: flex; gap: .4rem; margin: .8rem 0; }
.lv-plan__search input { flex: 1; font: inherit; padding: .45rem .6rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); background: transparent; color: inherit; }
.lv-plan__hits { list-style: none; margin: 0; padding: 0; display: grid; }
.lv-plan__hits li { display: flex; gap: .6rem; align-items: flex-start; padding: .5rem 0; border-bottom: 1px solid var(--lv-border); }
.lv-plan__hits q { display: block; font-size: .85rem; color: var(--lv-muted); quotes: "„" "“"; }
.lv-plan__hits small { display: block; font-size: .8rem; color: var(--lv-muted); }
.lv-plan__add { all: unset; box-sizing: border-box; cursor: pointer; flex: none; width: 2.1rem; height: 2.1rem; display: grid; place-items: center; border-radius: 50%; background: var(--lv-accent); color: var(--lv-accent-ink); font-size: 1.25rem; font-weight: 600; line-height: 1; }
.lv-plan__add:hover:not([disabled]) { filter: brightness(1.1); }
.lv-plan__add[disabled] { background: #0a7d32; cursor: default; font-size: 1rem; }
.lv-plan__rescount { margin: 0 0 .3rem; font-size: .85rem; }
.lv-plan__ai { font-size: .85rem; }
.lv-kw__group { margin-bottom: .6rem; }
.lv-kw__lbl { display: flex; gap: .5rem; align-items: baseline; font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; color: var(--lv-muted); margin-bottom: .3rem; }
.lv-kw__lbl .lv-linkbtn { text-transform: none; letter-spacing: 0; font-size: .8rem; }
.lv-kw__row { display: flex; flex-wrap: wrap; gap: .35rem; }
.lv-kw { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; gap: .3rem; padding: .32rem .75rem; border-radius: 999px; font-size: .9rem; line-height: 1.2; border: 1px solid var(--lv-border-strong); background: var(--lv-surface); transition: background .12s, border-color .12s; }
.lv-kw:hover { border-color: var(--lv-accent); }
.lv-kw[aria-pressed="true"] { background: var(--lv-accent); color: var(--lv-accent-ink); border-color: var(--lv-accent); }
.lv-kw i { font-style: normal; opacity: .6; padding: 0 .1rem; }
.lv-kw i:hover { opacity: 1; }
.lv-kw--kirchenjahr { border-color: color-mix(in srgb, #7b4bb7 45%, transparent); background: color-mix(in srgb, #7b4bb7 8%, var(--lv-surface)); }
.lv-kw--thema, .lv-kw--anlass { border-color: color-mix(in srgb, #0f7b8a 45%, transparent); background: color-mix(in srgb, #0f7b8a 8%, var(--lv-surface)); }
.lv-kw--ki { border-color: color-mix(in srgb, #b26a00 45%, transparent); background: color-mix(in srgb, #b26a00 8%, var(--lv-surface)); }
.lv-kw--ki::before { content: "✦"; font-size: .7rem; opacity: .7; }
.lv-kw--plan { border-color: var(--lv-accent-line); background: var(--lv-accent-soft); }
.lv-kw--add { border-style: dashed; color: var(--lv-muted); }
.lv-kw__legend { display: flex; flex-wrap: wrap; gap: .3rem; margin: .4rem 0 0; }
.lv-kw__legend .lv-kw { cursor: default; font-size: .7rem; padding: .1rem .5rem; }
.lv-kw__pinf { display: inline-flex; gap: .3rem; }
.lv-kw__pinf input { font: inherit; font-size: .9rem; padding: .28rem .6rem; border-radius: 999px; border: 1px solid var(--lv-accent); width: 9rem; background: transparent; color: inherit; }
.lv-kw__edit { padding: .7rem; border: 1px solid var(--lv-accent-line); border-radius: var(--lv-radius-s); background: var(--lv-accent-soft); }
.lv-kw__addf { display: flex; gap: .4rem; margin: .6rem 0 .2rem; }
.lv-kw__addf input { flex: 1; font: inherit; padding: .35rem .6rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); background: var(--lv-surface); color: inherit; }

/* ===== Anleitungen ===== */
.lv-guide { max-width: 52rem; }
.lv-guide h2 { margin: 2rem 0 .7rem; font-size: 1.3rem; }
.lv-guide__hero { display: flex; gap: 1rem; align-items: center; padding: 1.1rem 1.2rem; border-radius: var(--lv-radius); background: linear-gradient(135deg, var(--lv-accent-soft), transparent); border: 1px solid var(--lv-accent-line); }
.lv-guide__kicker { margin: 0; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--lv-accent); font-weight: 700; }
.lv-guide__lead { margin: .1rem 0 0; font-size: 1.08rem; }
.lv-guide__ico { flex: none; width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 12px; background: var(--lv-accent); color: var(--lv-accent-ink); font-size: 1.5rem; }
.lv-guide__steps { list-style: none; counter-reset: st; margin: 0; padding: 0; display: grid; gap: .2rem; }
.lv-guide__steps > li { counter-increment: st; display: grid; grid-template-columns: 2.4rem 1fr; gap: .8rem; position: relative; padding-bottom: .8rem; }
.lv-guide__steps > li::before { content: counter(st); width: 2.2rem; height: 2.2rem; display: grid; place-items: center; border-radius: 50%; background: var(--lv-accent-soft); border: 2px solid var(--lv-accent); color: var(--lv-accent); font-weight: 700; }
.lv-guide__steps > li:not(:last-child)::after { content: ""; position: absolute; left: 1.08rem; top: 2.4rem; bottom: .1rem; width: 2px; background: var(--lv-accent-line); }
.lv-guide__steps p { margin: .15rem 0 0; color: var(--lv-ink-2); }
.lv-guide__ticks { padding-left: 0; list-style: none; }
.lv-guide__ticks li { padding-left: 1.6rem; position: relative; margin: .35rem 0; }
.lv-guide__ticks li::before { content: "✓"; position: absolute; left: 0; color: var(--lv-accent); font-weight: 700; }
.lv-guide__kw { list-style: none; padding: 0; display: grid; gap: .5rem; }
.lv-guide__kw .lv-kw { cursor: default; margin-right: .4rem; font-size: .8rem; }
.lv-guide__box { display: block; margin: 1.4rem 0; padding: .9rem 1.1rem; border-radius: var(--lv-radius-s); border-left: 4px solid var(--lv-accent); background: var(--lv-accent-soft); }
.lv-guide__box p { margin: .3rem 0 0; }
.lv-guide__box--tip { border-color: #0a7d32; background: color-mix(in srgb, #0a7d32 8%, transparent); }
.lv-guide__faq details { border-bottom: 1px solid var(--lv-border); padding: .6rem 0; }
.lv-guide__faq summary { cursor: pointer; font-weight: 600; }
.lv-guide__faq p { margin: .4rem 0 0; color: var(--lv-ink-2); }
.lv-guide__tablewrap { overflow-x: auto; border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); }
.lv-guide__rights { border-collapse: collapse; width: 100%; font-size: .82rem; }
.lv-guide__rights th, .lv-guide__rights td { padding: .4rem .5rem; border-bottom: 1px solid var(--lv-border); text-align: center; }
.lv-guide__rights thead th { font-weight: 600; vertical-align: bottom; min-width: 5.5rem; }
.lv-guide__rights tbody th { text-align: left; white-space: nowrap; font-weight: 600; }
.lv-guide__rights td { color: var(--lv-border-strong); }
.lv-guide__rights td.is-on { color: var(--lv-accent); }
.lv-guide__note { font-size: .85rem; color: var(--lv-muted); }
.lv-guide__legend { display: flex; flex-wrap: wrap; gap: .5rem; }
.lv-guide__cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .8rem; margin-top: 1rem; }
.lv-guide__card { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto 1fr; gap: .2rem .8rem; padding: 1rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); text-decoration: none; color: inherit; background: var(--lv-surface); transition: border-color .15s, box-shadow .15s, transform .15s; }
.lv-guide__card:hover { border-color: var(--lv-accent-line); box-shadow: var(--lv-shadow); transform: translateY(-2px); }
.lv-guide__card .lv-guide__ico { grid-row: span 2; width: 2.6rem; height: 2.6rem; font-size: 1.2rem; }
.lv-guide__card span:last-child { font-size: .88rem; color: var(--lv-ink-2); }
.lv-guide__more { margin-top: 2.5rem; padding-top: 1rem; border-top: 1px solid var(--lv-border); }
.lv-guide__more div { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; }
.lv-guide__more a { padding: .3rem .75rem; border: 1px solid var(--lv-border-strong); border-radius: 999px; font-size: .88rem; text-decoration: none; }
.lv-plan__tools { margin-left: auto; }
.lv-plan__search input { min-width: 0; }
@container (max-width: 640px) {
	.lv-plan__ithead { flex-wrap: wrap; row-gap: .3rem; }
	.lv-plan__ti { flex-basis: 100%; order: 3; }
	.lv-plan__notein { order: 3; flex-basis: 100%; }
	.lv-plan__nin { min-width: 0; flex-basis: 100%; }
	.lv-plan__itbody select { flex: 1; }
}

.lv-gem__links { display: flex; flex-wrap: wrap; gap: .4rem; margin: -.2rem 0 .8rem; }
.lv-gem__links a { font-size: .85rem; padding: .2rem .7rem; border: 1px solid var(--lv-border-strong); border-radius: 999px; text-decoration: none; }

/* Einheiten-Navigation */
.lv-gem__unit { display: grid; gap: .5rem; margin-bottom: .6rem; }
.lv-nav { display: flex; flex-wrap: wrap; gap: .5rem .6rem; align-items: flex-end; }
.lv-nav__find { position: relative; flex: 1 1 100%; max-width: 32rem; }
.lv-nav__find input { width: 100%; font: inherit; padding: .55rem .8rem .55rem 2.2rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); background: var(--lv-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat .7rem 50% / 1rem; color: inherit; }
.lv-nav__find input:focus { outline: 2px solid var(--lv-accent); outline-offset: 1px; }
.lv-nav__hits { position: absolute; z-index: 50; left: 0; right: 0; top: calc(100% + 4px); margin: 0; padding: .3rem; list-style: none; background: var(--wp--preset--color--base, Canvas); border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); box-shadow: 0 12px 32px rgba(0,0,0,.14); max-height: 22rem; overflow: auto; }
.lv-nav__hits li { padding: .45rem .6rem; border-radius: 6px; cursor: pointer; display: flex; flex-wrap: wrap; gap: .1rem .45rem; align-items: center; }
.lv-nav__hits li:hover, .lv-nav__hits li[aria-selected="true"] { background: var(--lv-accent-soft); }
.lv-nav__hits small { flex-basis: 100%; color: var(--lv-muted); font-size: .8rem; }
.lv-nav__lvl { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; color: var(--lv-accent); background: var(--lv-accent-soft); border-radius: 999px; padding: .05rem .45rem; }
.lv-nav__casc { display: flex; flex-wrap: wrap; gap: .4rem .5rem; align-items: flex-end; }
.lv-nav__sel, .lv-nav__fixed { display: flex; flex-direction: column; gap: .15rem; font-size: .92rem; }
.lv-nav__sel small, .lv-nav__fixed small { font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; color: var(--lv-muted); }
.lv-nav__sel select { font: inherit; padding: .4rem 1.8rem .4rem .55rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); background-color: var(--lv-surface); color: inherit; max-width: 15rem; }
.lv-nav__fixed { padding: .4rem 0; font-weight: 600; }
.lv-mem__invrow--unit { grid-template-columns: 1fr; }
.lv .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.lv-nav [hidden] { display: none !important; }
p.lv-count { display: block; background: none !important; color: var(--lv-muted) !important; padding: 0 !important; border-radius: 0 !important; font-size: .9rem !important; font-weight: 400 !important; min-width: 0; height: auto; margin: .8rem 0; }
p.lv-count a { color: var(--lv-accent); }
@container (max-width: 560px) { .lv-nav__sel { flex-basis: 100%; } .lv-nav__sel select { max-width: none; width: 100%; } .lv-nav__find { max-width: none; } }

/* ===== Eigene Bücher & Mappen ===== */
.lv-ub__head { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; justify-content: space-between; margin-bottom: 1.2rem; }
.lv-ub__head p { margin: .2rem 0 0; max-width: 40rem; }
.lv-ub__list { display: grid; gap: .7rem; }
.lv-ub__card { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: .9rem 1rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); background: var(--lv-surface); }
@container (max-width: 640px) { .lv-ub__card { grid-template-columns: auto 1fr; } .lv-ub__act { grid-column: 1 / -1; } }
.lv-ub__cover { width: 3.4rem; height: 4.4rem; border-radius: 4px 8px 8px 4px; display: grid; place-items: center; font-weight: 800; font-size: .95rem; color: #fff; background: linear-gradient(135deg, var(--lv-accent), color-mix(in srgb, var(--lv-accent) 55%, #000)); box-shadow: inset 4px 0 0 rgba(0,0,0,.18), 0 4px 10px rgba(0,0,0,.12); overflow: hidden; text-align: center; line-height: 1.1; padding: .2rem; }
.lv-ub__body h3 { margin: 0 0 .25rem; font-size: 1.08rem; }
.lv-ub__body p { margin: .15rem 0 0; }
.lv-ub__meta { display: flex; flex-wrap: wrap; gap: .3rem .9rem; font-size: .88rem; color: var(--lv-muted); }
.lv-ub__lang { font-weight: 700; color: var(--lv-accent); }
.lv-ub__st { display: inline-block; font-size: .78rem; font-weight: 600; padding: .12rem .6rem; border-radius: 999px; background: var(--lv-surface-2); }
.lv-ub__st--ok { background: color-mix(in srgb, #0a7d32 12%, transparent); color: #0a6a2b; }
.lv-ub__st--warn { background: color-mix(in srgb, #b26a00 14%, transparent); color: #8a5200; }
.lv-ub__st--bad { background: color-mix(in srgb, #b32d2e 12%, transparent); color: #a32020; }
.lv-ub__act { display: flex; flex-wrap: wrap; gap: .4rem .7rem; align-items: center; justify-content: flex-end; }
.lv-ub__steps { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin: 0 0 1.2rem; padding: 0; counter-reset: x; font-size: .92rem; color: var(--lv-muted); }
.lv-ub__steps li { display: flex; align-items: center; gap: .45rem; }
.lv-ub__steps span { width: 1.6rem; height: 1.6rem; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--lv-border-strong); font-size: .8rem; font-weight: 700; }
.lv-ub__steps .is-cur { color: inherit; font-weight: 600; }
.lv-ub__steps .is-cur span { background: var(--lv-accent); border-color: var(--lv-accent); color: #fff; }
.lv-ub__steps .is-done span { background: color-mix(in srgb, #0a7d32 14%, transparent); border-color: #0a7d32; color: #0a7d32; }
.lv-ub__form { display: grid; gap: .9rem; max-width: 46rem; }
.lv-ub__regions { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .4rem; }
.lv-ub__chip { display: inline-flex; align-items: center; gap: .2rem; padding: .2rem .3rem .2rem .7rem; border-radius: 999px; background: var(--lv-accent-soft); border: 1px solid var(--lv-accent-line); font-size: .9rem; }
.lv-ub__chip button { border: 0; background: none; cursor: pointer; color: var(--lv-muted); font-size: 1.05rem; line-height: 1; padding: 0 .3rem; }
.lv-ub__rq { width: 100%; max-width: 22rem; font: inherit; padding: .45rem .7rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); background: transparent; color: inherit; }
.lv-ub__rhits { list-style: none; margin: .2rem 0 0; padding: .3rem; max-width: 22rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); background: var(--wp--preset--color--base, Canvas); box-shadow: 0 10px 28px rgba(0,0,0,.12); position: absolute; z-index: 30; min-width: 16rem; }
.lv-ub__rhits li { padding: .4rem .55rem; border-radius: 6px; cursor: pointer; display: flex; flex-direction: column; }
.lv-ub__rhits li:hover { background: var(--lv-accent-soft); }
.lv-ub__rhits small { color: var(--lv-muted); font-size: .8rem; }
.lv-ub__form .lv-field { position: relative; }
.lv-ub__vis { border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); padding: .8rem 1rem; margin: 0; display: grid; gap: .5rem; }
.lv-ub__vis legend { font-weight: 600; padding: 0 .3rem; }
.lv-ub__opt { display: flex; gap: .7rem; align-items: flex-start; padding: .6rem .7rem; border-radius: var(--lv-radius-s); border: 1px solid var(--lv-border); cursor: pointer; }
.lv-ub__opt:has(input:checked) { border-color: var(--lv-accent); background: var(--lv-accent-soft); }
.lv-ub__opt input { margin-top: .3rem; accent-color: var(--lv-accent); }
.lv-ub__opt span { display: flex; flex-direction: column; }
.lv-ub__opt small { color: var(--lv-muted); }
.lv-ub__rights { display: grid; gap: .6rem; padding: .7rem .8rem; border-left: 3px solid #b26a00; background: color-mix(in srgb, #b26a00 7%, transparent); border-radius: 0 8px 8px 0; }
.lv-ub__err { color: #b32d2e; font-weight: 600; min-height: 1em; margin: 0; }
.lv-ub__title { margin: 0 0 1rem; }
.lv-ub__title small { font-weight: 400; color: var(--lv-muted); }
.lv-ub__drop { display: flex; flex-direction: column; align-items: center; gap: .3rem; padding: 2.4rem 1rem; border: 2px dashed var(--lv-border-strong); border-radius: var(--lv-radius); text-align: center; cursor: pointer; transition: border-color .15s, background .15s; }
.lv-ub__drop:hover, .lv-ub__drop.is-over { border-color: var(--lv-accent); background: var(--lv-accent-soft); }
.lv-ub__dropic { font-size: 2rem; color: var(--lv-accent); line-height: 1; }
.lv-ub__busy { display: flex; flex-direction: column; align-items: center; gap: .4rem; padding: 2.4rem 1rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); }
.lv-ub__spin { width: 2rem; height: 2rem; border-radius: 50%; border: 3px solid var(--lv-accent-line); border-top-color: var(--lv-accent); animation: lv-spin .8s linear infinite; }
@keyframes lv-spin { to { transform: rotate(360deg); } }
.lv-ub__help { margin-top: 1rem; font-size: .93rem; }
.lv-ub__fmt { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1rem 1.6rem; margin-top: .8rem; }
.lv-ub__fmt h4 { margin: 0 0 .3rem; }
.lv-ub__fmt pre { background: var(--lv-surface-2); padding: .7rem; border-radius: 8px; font-size: .82rem; white-space: pre-wrap; }
.lv-ub__tbl { border-collapse: collapse; font-size: .8rem; width: 100%; }
.lv-ub__tbl th, .lv-ub__tbl td { border: 1px solid var(--lv-border); padding: .2rem .35rem; text-align: left; }
.lv-ub__verdict { display: flex; flex-direction: column; gap: .2rem; padding: .9rem 1.1rem; border-radius: var(--lv-radius-s); margin-bottom: 1rem; }
.lv-ub__verdict--ok { background: color-mix(in srgb, #0a7d32 10%, transparent); color: #0a5f27; }
.lv-ub__verdict--warn { background: color-mix(in srgb, #b26a00 10%, transparent); color: #7a4a06; }
.lv-ub__verdict--bad { background: color-mix(in srgb, #b32d2e 10%, transparent); color: #8f1f20; }
.lv-ub__stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin-bottom: 1.2rem; }
@container (max-width: 560px) { .lv-ub__stats { grid-template-columns: repeat(2, 1fr); } }
.lv-ub__stats div { padding: .7rem; border-radius: var(--lv-radius-s); background: var(--lv-surface-2); display: flex; flex-direction: column; }
.lv-ub__stats b { font-size: 1.25rem; }
.lv-ub__stats span { font-size: .8rem; color: var(--lv-muted); }
.lv-ub__h4 { font-size: 1rem; margin: 1rem 0 .4rem; cursor: default; }
.lv-ub__h4.is-bad { color: #a32020; } .lv-ub__h4.is-warn { color: #8a5200; cursor: pointer; }
.lv-ub__issues { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; max-height: 22rem; overflow: auto; }
.lv-ub__issues li { padding: .45rem .7rem; border-radius: 6px; font-size: .92rem; border-left: 3px solid; }
.lv-ub__issues.is-bad li { border-color: #b32d2e; background: color-mix(in srgb, #b32d2e 6%, transparent); }
.lv-ub__issues.is-warn li { border-color: #b26a00; background: color-mix(in srgb, #b26a00 6%, transparent); }
.lv-ub__where { display: inline-block; font-weight: 700; margin-right: .5rem; font-variant-numeric: tabular-nums; }
.lv-ub__prev { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .5rem; }
.lv-ub__prev div { padding: .6rem .7rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); display: flex; flex-direction: column; gap: .15rem; }
.lv-ub__pno { font-size: .78rem; font-weight: 700; color: var(--lv-accent); }
.lv-ub__prev small { color: var(--lv-muted); font-size: .8rem; }
.lv-ub__prev q { font-size: .85rem; color: var(--lv-ink-2); white-space: pre-line; quotes: "„" "“"; }
.lv-ub__go { margin-top: 1.4rem; display: grid; gap: .8rem; max-width: 40rem; }
.lv-langsel { display: inline-flex; align-items: center; gap: .4rem; font-size: .92rem; }
.lv-langsel select { font: inherit; padding: .3rem .5rem; border-radius: var(--lv-radius-s); border: 1px solid var(--lv-border-strong); background: var(--lv-surface); color: inherit; }
.lv-langbadge { display: inline-block; margin-left: .35rem; padding: 0 .4rem; border-radius: 4px; font-size: .7em; font-weight: 700; letter-spacing: .04em; background: var(--lv-accent-soft); color: var(--lv-accent); vertical-align: .15em; text-transform: uppercase; }
.lv-plan__rate { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; padding-left: 9.1rem; font-size: .85rem; }
@container (max-width: 640px) { .lv-plan__rate { padding-left: 0; } }
.lv-plan__rb, .lv-plan__tag { font: inherit; font-size: .85rem; border: 1px solid var(--lv-border-strong); background: transparent; color: inherit; border-radius: 999px; padding: .2rem .65rem; cursor: pointer; }
.lv-plan__rb.is-ok[aria-pressed="true"] { background: #0a7d32; border-color: #0a7d32; color: #fff; }
.lv-plan__rb.is-ub[aria-pressed="true"] { background: #d97706; border-color: #d97706; color: #fff; }
.lv-plan__tag { border-style: dashed; }
.lv-plan__tag[aria-pressed="true"] { border-style: solid; border-color: #d97706; background: color-mix(in srgb, #d97706 14%, transparent); font-weight: 600; }
.lv-plan__practice { padding: .9rem 1rem; border-radius: var(--lv-radius-s); border: 1px solid color-mix(in srgb, #d97706 40%, transparent); background: color-mix(in srgb, #d97706 6%, transparent); margin-bottom: .6rem; }
.lv-plan__practice h3 { margin: 0 0 .5rem; font-size: 1.02rem; }
.lv-plan__practice ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.lv-plan__practice li { display: flex; align-items: center; gap: .7rem; }
.lv-plan__practice .lv-plan__ti small { display: block; color: var(--lv-muted); }
.lv-ready { display: inline-block; font-size: .74rem; font-weight: 700; padding: .08rem .5rem; border-radius: 999px; white-space: nowrap; vertical-align: .05em; }
.lv-ready--warn { background: color-mix(in srgb, #d97706 16%, transparent); color: #8a4b00; }
.lv-ready--new { background: color-mix(in srgb, #2563eb 13%, transparent); color: #1e4fb8; }
.lv-ready--ok { background: color-mix(in srgb, #0a7d32 13%, transparent); color: #0a6a2b; }
.lv-ready--info { background: var(--lv-surface-2); color: var(--lv-ink-2); }
.lv-plan__reh { display: grid; grid-template-columns: 1fr 1.4fr; gap: .4rem .5rem; padding-left: 9.1rem; }
.lv-plan__reh input { font: inherit; font-size: .88rem; border: 1px solid var(--lv-border); border-radius: 6px; padding: .25rem .45rem; background: transparent; color: inherit; min-width: 0; }
.lv-plan__hist { grid-column: 1 / -1; color: var(--lv-muted); font-size: .8rem; }
@container (max-width: 640px) { .lv-plan__reh { padding-left: 0; grid-template-columns: 1fr; } }
.lv-plan__kind .lv-seg { flex-wrap: wrap; }

/* ===== Chöre & Ensembles, Dienstplan, Abwesenheiten (2.6) ===== */
.lv-plan__tabs { margin-bottom: 1.1rem; }
.lv-duty__bar { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: center; justify-content: space-between; margin-bottom: .6rem; }
.lv-duty__bar select { min-height: 40px; border-radius: var(--lv-radius-s); border: 1px solid var(--lv-border-strong); padding: 0 .6rem; font: inherit; background: transparent; color: inherit; }
.lv-duty__name { font-size: 1.1rem; }
.lv-duty__month { display: flex; align-items: center; gap: .4rem; }
.lv-duty__month b { min-width: 9.5em; text-align: center; }
.lv-duty__stat { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; font-size: .85rem; }
.lv-duty__stat span { background: var(--lv-surface); border: 1px solid var(--lv-border); border-radius: 99px; padding: .15rem .7rem; }
.lv-duty__days { list-style: none; margin: 0 0 1rem; padding: 0; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); overflow: hidden; }
.lv-duty__day { display: grid; grid-template-columns: 6.5rem 1fr; gap: .8rem; padding: .7rem .9rem; border-top: 1px solid var(--lv-border); }
.lv-duty__day:first-child { border-top: 0; }
.lv-duty__day.is-today { background: var(--lv-accent-soft); }
.lv-duty__date b { display: block; }
.lv-duty__date em { font-style: normal; font-size: .75rem; font-weight: 600; color: var(--lv-accent); text-transform: uppercase; letter-spacing: .04em; }
.lv-duty__body { display: grid; gap: .5rem; min-width: 0; }
.lv-duty__plan { display: grid; grid-template-columns: 3.2rem 1fr minmax(9rem, 13rem) auto; gap: .6rem; align-items: center; padding: .45rem .6rem; border-radius: var(--lv-radius-s); background: var(--lv-surface); border: 1px solid var(--lv-border); }
.lv-duty__plan.is-open { border-style: dashed; }
.lv-duty__plan.is-conflict { border-color: #c2410c; background: color-mix(in srgb, #f97316 9%, transparent); }
.lv-duty__time { font-variant-numeric: tabular-nums; color: var(--lv-muted); font-size: .9rem; }
.lv-duty__what { min-width: 0; }
.lv-duty__what small { display: block; color: var(--lv-muted); font-size: .8rem; }
.lv-duty__plan.is-conflict .lv-duty__what small { color: #c2410c; font-weight: 600; }
.lv-duty__plan select { min-height: 38px; width: 100%; border-radius: var(--lv-radius-s); border: 1px solid var(--lv-border-strong); padding: 0 .5rem; font: inherit; font-size: .9rem; background: transparent; color: inherit; }
.lv-duty__lead { font-size: .9rem; }
.lv-duty__abs { display: flex; flex-wrap: wrap; gap: .35rem; }
.lv-duty__abs span { font-size: .8rem; padding: .1rem .55rem; border-radius: 99px; background: color-mix(in srgb, #64748b 12%, transparent); color: var(--lv-ink-2, inherit); }
.lv-duty__none { padding: 1rem 0; }
.lv-duty__add { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: .2rem .9rem; }
.lv-duty__add summary { cursor: pointer; font-weight: 600; padding: .6rem 0; color: var(--lv-accent); }
.lv-duty__form { display: flex; flex-wrap: wrap; gap: .6rem; align-items: flex-end; padding-bottom: .6rem; }
.lv-duty__form .lv-field { margin: 0; flex: 1 1 10rem; }
.lv-duty__form .lv-field--s { flex: 0 1 9rem; }
.lv-duty__hint:empty { display: none; }
.lv-duty__hint { color: #c2410c; margin: 0 0 .7rem; }
@media (max-width: 640px) {
	.lv-duty__day { grid-template-columns: 1fr; gap: .35rem; }
	.lv-duty__plan { grid-template-columns: 3rem 1fr auto; }
	.lv-duty__what { grid-column: 2 / -1; }
	.lv-duty__plan select, .lv-duty__lead { grid-column: 1 / 3; }
	.lv-duty__plan .lv-linkbtn { grid-column: 3; }
}
.lv-ens { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: .9rem 1rem; margin: 0 0 1rem; box-shadow: var(--lv-shadow); }
.lv-ens__h { display: flex; gap: 1rem; justify-content: space-between; align-items: flex-start; }
.lv-ens__h h3 { margin: 0; font-size: 1.1rem; }
.lv-ens__h p { margin: .15rem 0 0; font-size: .85rem; }
.lv-ens__mem { list-style: none; margin: .8rem 0; padding: 0; display: grid; gap: .4rem; }
.lv-ens__mem li { display: flex; align-items: center; gap: .6rem; padding: .35rem 0; border-top: 1px solid var(--lv-border); }
.lv-ens__mem li:first-child { border-top: 0; }
.lv-ens__av { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--lv-accent-soft); color: var(--lv-accent); font-weight: 700; font-size: .8rem; }
.lv-ens__who { flex: 1; min-width: 0; display: grid; }
.lv-ens__who small { color: var(--lv-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lv-ens__mem select, .lv-ens__add select, .lv-ens__add input { min-height: 38px; border-radius: var(--lv-radius-s); border: 1px solid var(--lv-border-strong); padding: 0 .5rem; font: inherit; font-size: .9rem; background: transparent; color: inherit; }
.lv-ens__add { display: flex; flex-wrap: wrap; gap: .5rem; }
.lv-ens__add input { flex: 1 1 14rem; }
.lv-ens__form { border: 1px solid var(--lv-accent-line); background: var(--lv-accent-soft); border-radius: var(--lv-radius); padding: .9rem 1rem; margin: 0 0 1rem; }
.lv-ens .lv-ens__form { margin: .8rem 0 0; }
.lv-abs { margin-top: 1.6rem; border-top: 1px solid var(--lv-border); padding-top: 1rem; }
.lv-abs h3 { margin: 0 0 .2rem; }
.lv-abs__list { list-style: none; padding: 0; margin: .6rem 0; display: grid; gap: .35rem; }
.lv-abs__list li { display: flex; gap: .6rem; align-items: center; padding: .45rem .7rem; border-radius: var(--lv-radius-s); background: var(--lv-surface); border: 1px solid var(--lv-border); }
.lv-abs__list li .lv-linkbtn { margin-left: auto; }
.lv-abs__form { display: flex; flex-wrap: wrap; gap: .6rem; align-items: flex-end; }
.lv-abs__form .lv-field { margin: 0; flex: 1 1 12rem; }
.lv-abs__form .lv-field--s { flex: 0 1 10rem; }
.lv-duty__absbar { display: flex; flex-wrap: wrap; gap: .35rem .5rem; align-items: center; margin: 0 0 1rem; padding: .55rem .8rem; border-radius: var(--lv-radius-s); background: color-mix(in srgb, #64748b 8%, transparent); font-size: .85rem; }
.lv-duty__absbar span { padding: .1rem .55rem; border-radius: 8px; background: color-mix(in srgb, #64748b 14%, transparent); }
@media (max-width: 640px) {
	.lv-plan__tabs { display: flex; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
	.lv-plan__tabs a { white-space: nowrap; flex: none; }
}

/* ===== 2.7: Teilchöre, Organist, Dienstbörse ===== */
.lv-plan__tabs .lv-badge { margin-left: .4rem; background: #d9480f; color: #fff; padding: .05rem .45rem; font-size: .72rem; vertical-align: 1px; }
.lv-plan__tabs .lv-badge[hidden] { display: none; }
.lv-duty__plan { grid-template-columns: 3.2rem minmax(0, 1fr) minmax(10rem, 14rem) auto; }
.lv-duty__who { display: grid; gap: .3rem; }
.lv-duty__acts { display: grid; gap: .15rem; justify-items: start; font-size: .85rem; }
.lv-duty__grp { font: inherit; font-size: .75rem; font-weight: 600; border: 1px solid var(--lv-border-strong); background: transparent; color: var(--lv-ink-2, inherit); border-radius: 99px; padding: .05rem .55rem; cursor: pointer; vertical-align: 1px; }
.lv-duty__grp.is-part { border-color: #7c3aed; color: #6d28d9; background: color-mix(in srgb, #7c3aed 8%, transparent); }
.lv-duty__grp[disabled] { cursor: default; }
.lv-duty__gedit { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .4rem 1rem; align-items: center; padding: .55rem .7rem; border-radius: var(--lv-radius-s); background: var(--lv-accent-soft); }
.lv-duty__gedit[hidden] { display: none; }
.lv-duty__gset { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .3rem 1rem; flex-basis: 100%; }
.lv-duty__gset legend { font-weight: 600; font-size: .85rem; margin-bottom: .2rem; }
.lv-plan__grps { border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); padding: .5rem .8rem; margin: 0 0 1rem; display: flex; flex-wrap: wrap; gap: .3rem 1.1rem; align-items: center; }
.lv-plan__grps legend { font-weight: 600; font-size: .85rem; padding: 0 .3rem; }
@media (max-width: 640px) {
	.lv-duty__plan { grid-template-columns: 3rem 1fr; }
	.lv-duty__who, .lv-duty__acts { grid-column: 1 / -1; }
	.lv-duty__acts { display: flex; flex-wrap: wrap; gap: .3rem 1rem; }
}
.lv-ens__gl { display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; font-size: .82rem; margin-top: .35rem !important; }
.lv-ens__gl span, .lv-ens__mg { padding: .05rem .5rem; border-radius: 99px; background: color-mix(in srgb, #7c3aed 9%, transparent); color: #6d28d9; font-size: .8rem; }
.lv-ens__groups { display: flex; flex-wrap: wrap; gap: .4rem; }
.lv-ens__g { display: inline-flex; align-items: center; gap: .2rem; }
.lv-ens__g input { min-height: 36px; width: 12rem; max-width: 60vw; border-radius: var(--lv-radius-s); border: 1px solid var(--lv-border-strong); padding: 0 .5rem; font: inherit; background: transparent; color: inherit; }
.lv-ens__gbtns { margin: .3rem 0 0 !important; font-size: .9rem; }
.lv-small { font-size: .85rem; }

.lv-rq__sec { margin: 0 0 1.8rem; }
.lv-rq__sec > h3 { font-size: 1.05rem; margin: 0 0 .7rem; display: flex; align-items: center; gap: .5rem; }
.lv-rq__cnt { display: inline-grid; place-items: center; min-width: 1.5rem; height: 1.5rem; padding: 0 .4rem; border-radius: 99px; background: var(--lv-accent); color: var(--lv-accent-ink); font-size: .75rem; }
.lv-rq { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: .9rem 1rem; margin: 0 0 .8rem; box-shadow: var(--lv-shadow); background: var(--lv-bg, transparent); }
.lv-rq.is-closed { opacity: .7; box-shadow: none; }
.lv-rq__h { display: flex; gap: .8rem; align-items: flex-start; }
.lv-rq__h h4 { margin: 0; font-size: 1rem; }
.lv-rq__h p { margin: .1rem 0 0; font-size: .85rem; }
.lv-rq__role { flex: none; width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; font-size: 1.15rem; color: #fff; background: var(--lv-accent); }
.lv-rq__role--organist { background: #0f766e; }
.lv-rq__st { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: .05rem .5rem; border-radius: 99px; vertical-align: 2px; background: color-mix(in srgb, #f59e0b 18%, transparent); color: #92400e; }
.lv-rq__st--vergeben { background: color-mix(in srgb, #16a34a 15%, transparent); color: #166534; }
.lv-rq__st--zurueck { background: color-mix(in srgb, #64748b 15%, transparent); color: #475569; }
.lv-rq__dates { list-style: none; margin: .7rem 0 .4rem; padding: 0; display: grid; gap: .3rem; }
.lv-rq__dates li { padding: .35rem .6rem; border-radius: var(--lv-radius-s); background: var(--lv-surface); font-size: .92rem; }
.lv-rq__dates li.is-done { background: color-mix(in srgb, #16a34a 8%, transparent); }
.lv-rq__dates li.is-busy { opacity: .65; }
.lv-rq__ok { color: #166534; font-weight: 600; font-size: .85rem; }
.lv-rq__busy { color: #b45309; font-size: .82rem; }
.lv-rq__note { margin: .4rem 0; font-style: italic; color: var(--lv-ink-2, inherit); }
.lv-rq__acts { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; margin-top: .6rem; }
.lv-rq__answers { list-style: none; padding: 0; margin: .6rem 0 0; display: grid; gap: .35rem; border-top: 1px solid var(--lv-border); padding-top: .6rem; }
.lv-rq__ans { display: flex; flex-wrap: wrap; gap: .3rem .6rem; align-items: center; font-size: .92rem; }
.lv-rq__ans small { color: var(--lv-muted); }
.lv-rq__ans .lv-btn { margin-left: auto; }
.lv-rq__ans--nein { color: var(--lv-muted); }
.lv-rq__gaps { list-style: none; padding: 0; margin: 0; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); overflow: hidden; }
.lv-rq__gaps li { display: grid; grid-template-columns: 6.5rem 1fr auto; gap: .8rem; align-items: center; padding: .55rem .9rem; border-top: 1px solid var(--lv-border); }
.lv-rq__gaps li:first-child { border-top: 0; }
.lv-rq__gd { display: grid; font-size: .85rem; color: var(--lv-muted); }
.lv-rq__gd b { color: inherit; color: var(--lv-ink, inherit); font-size: .95rem; }
.lv-rq__gl small { display: block; color: #b45309; font-size: .8rem; }
@media (max-width: 640px) { .lv-rq__gaps li { grid-template-columns: 1fr; gap: .2rem; } }

.lv-rq__dlg { border: 0; padding: 0; border-radius: 16px; width: min(40rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); box-shadow: 0 30px 80px rgb(0 0 0 / .3); color: inherit; background: var(--lv-dlg-bg, #fff); }
.lv-rq__dlg::backdrop { background: rgb(15 20 30 / .45); backdrop-filter: blur(2px); }
.lv-rq__dlgin { padding: 1rem 1.2rem 1.2rem; }
.lv-rq__dh { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .6rem; position: sticky; top: 0; }
.lv-rq__dh h3 { margin: 0; font-size: 1.15rem; }
.lv-rq__dlg .lv-field { margin-bottom: .9rem; }
.lv-rq__dlg textarea, .lv-rq__dlg input[type=text], .lv-rq__dlg input[type=date], .lv-rq__dlg input[type=time], .lv-rq__dlg input[type=email], .lv-rq__dlg input[type=search], .lv-rq__dlg input:not([type]), .lv-rq__dlg select { font: inherit; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); padding: .45rem .6rem; background: transparent; color: inherit; }
.lv-rq__dlg textarea { width: 100%; box-sizing: border-box; resize: vertical; }
.lv-rq__addd { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin: .4rem 0 0 !important; }
.lv-rq__addd input:not([type]) { flex: 1 1 10rem; }
.lv-rq__sel { list-style: none; padding: 0; margin: 0 0 .4rem; display: grid; gap: .3rem; }
.lv-rq__sel li { display: flex; gap: .5rem; align-items: center; padding: .3rem .3rem .3rem .6rem; border-radius: var(--lv-radius-s); background: var(--lv-accent-soft); font-size: .92rem; }
.lv-rq__sel li .lv-ib { margin-left: auto; }
.lv-rq__gchips { display: flex; flex-wrap: wrap; gap: .35rem; }
.lv-chip { font: inherit; font-size: .82rem; border: 1px dashed var(--lv-accent-line); color: var(--lv-accent); background: transparent; border-radius: 99px; padding: .2rem .65rem; cursor: pointer; }
.lv-chip:hover { background: var(--lv-accent-soft); }
.lv-rq__cand { margin-top: .5rem; }
.lv-rq__people { list-style: none; padding: 0; margin: 0; max-height: 15rem; overflow: auto; border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); }
.lv-rq__people li label { display: flex; gap: .6rem; align-items: center; padding: .45rem .7rem; border-top: 1px solid var(--lv-border); cursor: pointer; }
.lv-rq__people li:first-child label { border-top: 0; }
.lv-rq__people li label span:nth-of-type(1) { flex: 1; display: grid; }
.lv-rq__people small { color: var(--lv-muted); font-size: .8rem; }
.lv-rq__people input:disabled ~ span { opacity: .5; }
.lv-rq__av { display: flex; gap: .2rem; }
.lv-rq__av i { font-style: normal; width: 1.4rem; height: 1.4rem; display: grid; place-items: center; border-radius: 6px; font-size: .75rem; }
.lv-rq__av .is-ok { background: color-mix(in srgb, #16a34a 14%, transparent); color: #166534; }
.lv-rq__av .is-abwesend { background: color-mix(in srgb, #64748b 16%, transparent); }
.lv-rq__av .is-eingeteilt { background: color-mix(in srgb, #f59e0b 20%, transparent); color: #92400e; }
.lv-rq__send { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; margin: 0 !important; }
.lv-rq__msgs { list-style: none; padding: 0; margin: .4rem 0; display: grid; gap: .5rem; max-height: 50dvh; overflow: auto; }
.lv-rq__msgs li { max-width: 85%; padding: .5rem .75rem; border-radius: 14px 14px 14px 4px; background: var(--lv-surface); border: 1px solid var(--lv-border); }
.lv-rq__msgs li.is-me { justify-self: end; border-radius: 14px 14px 4px 14px; background: var(--lv-accent-soft); border-color: var(--lv-accent-line); }
.lv-rq__msgs b { font-size: .8rem; }
.lv-rq__msgs p { margin: .1rem 0; }
.lv-rq__msgs small { color: var(--lv-muted); font-size: .72rem; }
.lv-rq__cf { display: flex; gap: .5rem; align-items: flex-end; border-top: 1px solid var(--lv-border); padding-top: .7rem; }
.lv-rq__cf textarea { flex: 1; }
@media (prefers-color-scheme: dark) { .lv-rq__dlg { --lv-dlg-bg: #1b1f26; } }
.lv-rq__people li label { flex-wrap: nowrap; }
.lv-rq__people input[type=radio] { flex: none; width: auto !important; margin: 0; }
.lv-rq__people li label > span:nth-of-type(1) { flex: 1 1 auto; min-width: 0; }
.lv-rq__addd input { width: auto !important; }
.lv-rq__addd input[type=date] { flex: 0 0 10.5rem; }
.lv-rq__addd input[type=time] { flex: 0 0 7.5rem; }
.lv-rq__dates .lv-check input, .lv-duty__gedit input, .lv-duty__gset input, .lv-plan__grps input { width: auto !important; }
.lv-plan__grid { align-items: start; } .lv-plan__grid > .lv-field { justify-content: flex-start; }

/* ===== Bebilderte Anleitungen ===== */
.lv-guide { container-type: inline-size; }
.lv-guide__st { display: grid; gap: .9rem; }
.lv-guide__steps > li.has-fig { padding-bottom: 1.6rem; }
@container (min-width: 520px) {
	.lv-guide__steps > li.has-phone .lv-guide__st { grid-template-columns: minmax(0, 1fr) minmax(9rem, 13rem); align-items: start; }
}
.lv-gfig { margin: 0; }
.lv-gfig__z { display: block; position: relative; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; text-align: inherit; font: inherit; color: inherit; }
.lv-gfig img { display: block; width: 100%; height: auto; }
.lv-gfig--browser .lv-gfig__z { border-radius: 12px; overflow: hidden; border: 1px solid var(--lv-border-strong); background: #fff; box-shadow: 0 18px 40px -22px rgb(15 25 40 / .45); }
.lv-gfig__bar { display: flex; align-items: center; gap: .35rem; padding: .45rem .7rem; background: #eef0f3; border-bottom: 1px solid #dfe2e7; }
.lv-gfig__bar i { width: .6rem; height: .6rem; border-radius: 50%; background: #d4d7dd; }
.lv-gfig__bar i:nth-child(1) { background: #ff5f57; } .lv-gfig__bar i:nth-child(2) { background: #febc2e; } .lv-gfig__bar i:nth-child(3) { background: #28c840; }
.lv-gfig__bar span { margin-left: .6rem; font-size: .72rem; color: #6b7280; background: #fff; border-radius: 6px; padding: .1rem .7rem; flex: 0 1 16rem; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.lv-gfig--browser img { max-height: 34rem; object-fit: cover; object-position: top; }
.lv-gfig--phone { max-width: 13rem; }
.lv-gfig--phone .lv-gfig__z { border-radius: 1.6rem; padding: .4rem; background: #12161c; box-shadow: 0 1px 0 1px #2c333d inset, 0 20px 40px -18px rgb(15 25 40 / .5); }
.lv-gfig--phone img { border-radius: 1.25rem; }
.lv-gfig--tablet .lv-gfig__z { border-radius: 1.2rem; padding: .5rem; background: #12161c; box-shadow: 0 20px 40px -18px rgb(15 25 40 / .5); }
.lv-gfig--tablet img { border-radius: .7rem; }
.lv-gfig__plus { position: absolute; right: .55rem; bottom: .55rem; width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; background: rgb(15 20 30 / .65); color: #fff; font-size: .95rem; opacity: 0; transition: opacity .2s; }
.lv-gfig__z:hover .lv-gfig__plus, .lv-gfig__z:focus-visible .lv-gfig__plus { opacity: 1; }
.lv-gfig figcaption { font-size: .82rem; color: var(--lv-muted); margin-top: .5rem; line-height: 1.4; }
.lv-gfigs { display: flex; flex-wrap: wrap; gap: 1.2rem; align-items: flex-start; margin: 1rem 0 1.4rem; }
.lv-gfigs > .lv-gfig--phone { flex: 0 1 12rem; }
.lv-gfigs > .lv-gfig--browser, .lv-gfigs > .lv-gfig--tablet { flex: 1 1 18rem; }
.lv-guide > .lv-gfig, .lv-guide__shot { margin: 1rem 0 1.6rem; }
.lv-gbox { border: 0; padding: 0; background: transparent; max-width: min(96vw, 1400px); max-height: 94dvh; overflow: auto; }
.lv-gbox.is-phone { max-width: min(96vw, 430px); }
.lv-gbox::backdrop { background: rgb(10 14 20 / .82); }
.lv-gbox img { display: block; max-width: 100%; height: auto; border-radius: 10px; cursor: zoom-out; }
.lv-gbox__x { position: fixed; top: .8rem; right: .8rem; width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 0; background: #fff; color: #111; font-size: 1.4rem; cursor: pointer; box-shadow: 0 4px 14px rgb(0 0 0 / .3); }
.lv-guide__hero--img { display: grid; gap: 1.2rem; }
.lv-guide__card.has-thumb { grid-template-rows: auto auto 1fr; padding-top: 0; overflow: hidden; }
.lv-guide__thumb { grid-column: 1 / -1; margin: 0 -1rem .6rem; height: 8.5rem; overflow: hidden; border-bottom: 1px solid var(--lv-border); background: #eef0f3; }
.lv-guide__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top left; display: block; transition: transform .3s; }
.lv-guide__card:hover .lv-guide__thumb img { transform: scale(1.03); }
.lv-guide__card.has-thumb .lv-guide__ico { grid-row: auto; }
.lv-guide__card.has-thumb > span:last-child { grid-column: 1 / -1; } .lv-guide__card.has-thumb { align-content: start; } .lv-guide__card.has-thumb b { align-self: center; }

/* ===== 3.0: Gottesdienstplan ===== */
.lv-gd { --gd-guest: #1d4ed8; --gd-ret: #b45309; --gd-di: #7c3aed; --gd-lead: #0f2f52; }
.lv-gd__top { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; align-items: center; margin-bottom: 1rem; }
.lv-gd__top select { min-height: 40px; font: inherit; border-radius: var(--lv-radius-s); border: 1px solid var(--lv-border-strong); padding: 0 .6rem; background: transparent; color: inherit; }
.lv-gd__bez { font-size: 1.05rem; }
.lv-gd__tabs { margin: 0; flex: 1 1 auto; }
.lv-gd__help { font-size: .9rem; }
.lv-gd__daybar { display: flex; flex-wrap: wrap; gap: .5rem .8rem; align-items: center; margin: 0 0 1rem; padding: .6rem .8rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); background: var(--lv-surface); }
.lv-gd__date { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .6rem; min-width: 12rem; }
.lv-gd__date b { font-size: 1.15rem; }
.lv-gd__hol { font-size: .78rem; font-weight: 700; padding: .1rem .55rem; border-radius: 99px; background: color-mix(in srgb, #dc2626 12%, transparent); color: #b91c1c; }
.lv-gd__daybar input[type=date] { font: inherit; min-height: 36px; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); padding: 0 .4rem; background: transparent; color: inherit; width: auto !important; }
.lv-gd__st { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: .15rem .6rem; border-radius: 99px; background: color-mix(in srgb, #f59e0b 18%, transparent); color: #92400e; }
.lv-gd__st--veroeffentlicht { background: color-mix(in srgb, #16a34a 15%, transparent); color: #166534; }
.lv-gd__tools { margin-left: auto; display: flex; flex-wrap: wrap; gap: .4rem; }
.lv-gd__day { display: grid; gap: 1rem; align-items: start; }
@container (min-width: 900px) { .lv-gd__day { grid-template-columns: 17rem minmax(0, 1fr); } }
.lv-gd { container-type: inline-size; }
.lv-gd__pal { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: .7rem; background: var(--lv-surface); position: sticky; top: .8rem; max-height: calc(100dvh - 1.6rem); overflow: auto; }
.lv-gd__pal.is-over { outline: 2px dashed #b91c1c; outline-offset: -4px; }
.lv-gd__palh { display: flex; gap: .5rem; align-items: center; justify-content: space-between; margin-bottom: .4rem; }
.lv-gd__palh input { width: 8rem !important; min-height: 32px; font: inherit; font-size: .85rem; border: 1px solid var(--lv-border-strong); border-radius: 99px; padding: 0 .7rem; background: transparent; color: inherit; }
.lv-gd__how { font-size: .8rem; color: var(--lv-muted); margin: 0 0 .5rem; }
.lv-gd__grp { margin: .35rem 0; }
.lv-gd__grp summary { cursor: pointer; font-weight: 650; font-size: .85rem; padding: .25rem 0; }
.lv-gd__grp summary span { font-weight: 500; color: var(--lv-muted); }
.lv-gd__note { font-size: .75rem; color: var(--lv-muted); margin: 0 0 .3rem; }
.lv-gd__chips { display: flex; flex-wrap: wrap; gap: .3rem; }
.lv-gc { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .3rem; padding: .3rem .55rem; border-radius: 9px; background: #fff; border: 1px solid var(--lv-border-strong); border-left: 4px solid var(--lv-accent); font-size: .86rem; line-height: 1.25; user-select: none; -webkit-user-select: none; max-width: 100%; position: relative; color: #111; }
.lv-gc b { font-size: .74rem; color: var(--lv-accent); letter-spacing: .01em; }
.lv-gc small { flex-basis: 100%; font-size: .72rem; color: #6b7280; }
.lv-gc.is-drag { cursor: grab; touch-action: none; }
.lv-gc.is-drag:hover { box-shadow: 0 2px 8px rgb(0 0 0 / .12); }
.lv-gc.is-lead { border-left-color: var(--gd-lead); }
.lv-gc.is-lead b { color: var(--gd-lead); }
.lv-gc.is-guest { border-left-color: var(--gd-guest); background: color-mix(in srgb, var(--gd-guest) 7%, #fff); }
.lv-gc.is-guest b { color: var(--gd-guest); }
.lv-gc.is-ret { border-left-color: var(--gd-ret); background: color-mix(in srgb, var(--gd-ret) 8%, #fff); }
.lv-gc.is-ret b { color: var(--gd-ret); }
.lv-gc.is-di { border-left-color: var(--gd-di); background: color-mix(in srgb, var(--gd-di) 7%, #fff); }
.lv-gc.is-di b { color: var(--gd-di); }
.lv-gc.is-off { opacity: .5; border-left-color: #9ca3af; }
.lv-gc.is-dl { font-weight: 700; box-shadow: 0 0 0 2px color-mix(in srgb, #f59e0b 45%, transparent); }
.lv-gc__dl { color: #d97706; font-style: normal; margin-right: .1rem; }
.lv-gc.is-sel { outline: 3px solid var(--lv-accent); outline-offset: 1px; }
.lv-gc.is-moving { opacity: .35; }
.lv-gc--ghost { position: fixed; left: 0; top: 0; z-index: 99999; pointer-events: none; box-shadow: 0 12px 28px rgb(0 0 0 / .25); transform-origin: 0 0; rotate: -2deg; }
.lv-gc--mark.is-before { box-shadow: -4px 0 0 0 var(--lv-accent); }
.lv-gc__x { border: 0; background: none; color: #9ca3af; cursor: pointer; padding: 0 0 0 .25rem; font-size: 1rem; line-height: 1; }
.lv-gc__x:hover { color: #b91c1c; }
.lv-gc--mini { padding: .05rem .4rem; }
.lv-gd__units { display: grid; grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr)); gap: .8rem; }
.lv-gd__unit { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: .6rem .7rem; background: var(--lv-bg, transparent); box-shadow: var(--lv-shadow); }
.lv-gd__unit.is-empty { box-shadow: none; background: var(--lv-surface); opacity: .85; }
.lv-gd__unit > header { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-bottom: .3rem; }
.lv-gd__unit > header b { font-size: 1rem; }
.lv-gd__unit > header small { color: var(--lv-muted); }
.lv-gd__unit.is-over { outline: 2px solid var(--lv-accent); }
.lv-gd__svc { border-top: 1px solid var(--lv-border); padding-top: .45rem; margin-top: .45rem; }
.lv-gd__unit > header + .lv-gd__svc { border-top: 0; margin-top: 0; padding-top: 0; }
.lv-gd__svch { display: flex; align-items: center; gap: .4rem; margin-bottom: .35rem; }
.lv-gd__time { font-weight: 700; font-variant-numeric: tabular-nums; }
.lv-gd__kind { flex: 1; font-size: .8rem; color: var(--lv-muted); min-width: 0; }
.lv-gd__kind em { font-style: normal; color: #b45309; font-weight: 700; }
.lv-gd__ph, .lv-gd__msg, .lv-gd__more { border: 1px solid var(--lv-border); background: transparent; border-radius: 8px; min-width: 32px; height: 30px; cursor: pointer; font-size: .9rem; color: inherit; display: inline-flex; align-items: center; justify-content: center; gap: .15rem; padding: 0 .35rem; opacity: .55; }
.lv-gd__ph:hover, .lv-gd__msg:hover, .lv-gd__more:hover { opacity: 1; }
.lv-gd__ph.is-on { opacity: 1; background: #0f766e; border-color: #0f766e; color: #fff; }
.lv-gd__ph[disabled] { cursor: default; }
.lv-gd__msg small { font-size: .72rem; font-weight: 700; color: var(--lv-accent); }
.lv-gd__msg:has(small) { opacity: 1; }
.lv-gd__zone { min-height: 2.6rem; display: flex; flex-wrap: wrap; gap: .3rem; align-content: flex-start; padding: .35rem; border-radius: 10px; background: var(--lv-surface); border: 1px dashed transparent; transition: background .15s, border-color .15s; }
.lv-gd__zone.is-open { border-color: #fca5a5; background: color-mix(in srgb, #ef4444 6%, transparent); }
.is-dragging .lv-gd__zone { border-color: var(--lv-accent-line); }
.lv-gd__zone.is-over { border-color: var(--lv-accent); background: var(--lv-accent-soft); border-style: solid; }
.lv-gd__drop { font-size: .8rem; color: #b91c1c; align-self: center; padding: 0 .3rem; }
.lv-gd__svc.is-wort .lv-gd__zone { background: color-mix(in srgb, var(--gd-di) 6%, transparent); }
.lv-gd__svc.is-cancel { opacity: .6; }
.lv-gd__cancel { margin: 0; font-size: .85rem; text-decoration: line-through; color: var(--lv-muted); }
.lv-gd__sug { margin: .35rem 0 0; font-size: .78rem; color: var(--lv-muted); display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; }
.lv-gd__warn { margin: .3rem 0 0; font-size: .78rem; color: #b45309; }
.lv-gd__selbar { position: sticky; top: .4rem; z-index: 5; margin: 0 0 .8rem; padding: .55rem .8rem; border-radius: var(--lv-radius-s); background: var(--lv-accent); color: var(--lv-accent-ink); font-weight: 600; display: flex; gap: 1rem; align-items: center; }
.lv-gd__selbar .lv-linkbtn { color: inherit; }
.lv-gd__legend { display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: .8rem; color: var(--lv-muted); margin: 1rem 0 0; }
.lv-gd__legend .g { color: var(--gd-guest); } .lv-gd__legend .r { color: var(--gd-ret); } .lv-gd__legend .w { color: var(--gd-di); } .lv-gd__legend .o { color: #b91c1c; }
.lv-gd__legend .lv-gc__dl { margin-right: .2rem; }
.lv-gd__menu { display: grid; gap: .5rem; }
.lv-gd__fbtn { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; }
.lv-gd__rules { padding-left: 1.2rem; margin: 0 0 .8rem; display: grid; gap: .35rem; font-size: .92rem; }
.lv-gd__who { list-style: none; padding: 0; margin: 0 0 .6rem; display: grid; gap: .2rem; font-size: .9rem; }
.lv-gd__who a { font-size: .82rem; margin-left: .4rem; }
.lv-gd__sum { margin: 0 0 .6rem; }
.lv-gd__openc { color: #b91c1c; font-weight: 700; }
.lv-gd__tblwrap { overflow-x: auto; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); }
.lv-gd__tbl { border-collapse: collapse; width: 100%; font-size: .82rem; min-width: 40rem; }
.lv-gd__tbl th, .lv-gd__tbl td { border: 1px solid var(--lv-border); padding: .3rem .4rem; vertical-align: top; text-align: left; }
.lv-gd__tbl thead th { background: var(--lv-accent); color: var(--lv-accent-ink); text-align: center; position: sticky; top: 0; }
.lv-gd__tbl thead th.is-sun { background: color-mix(in srgb, var(--lv-accent) 82%, #000); }
.lv-gd__tbl thead th:first-child { text-align: left; }
.lv-gd__dhd { all: unset; cursor: pointer; display: block; font-weight: 650; }
.lv-gd__dhd small { display: block; font-weight: 400; font-size: .7rem; opacity: .9; }
.lv-gd__tbl tbody th { background: var(--lv-surface); white-space: nowrap; position: sticky; left: 0; z-index: 1; }
.lv-gd__tbl td { cursor: pointer; min-width: 6.5rem; }
.lv-gd__tbl td:hover { background: var(--lv-accent-soft); }
.lv-gd__tbl td.is-sun { background: color-mix(in srgb, var(--lv-accent) 3%, transparent); }
.lv-gd__cs { margin: 0 0 .3rem; line-height: 1.3; }
.lv-gd__cs:last-child { margin: 0; }
.lv-gd__cs .t { display: block; font-size: .72rem; color: var(--lv-muted); }
.lv-gd__cs .t i { font-style: normal; color: #0f766e; }
.lv-gd__cs .n { display: inline; }
.lv-gd__cs .n + .n::before { content: ", "; color: var(--lv-muted); font-weight: 400; }
.lv-gd__cs .n.dl { font-weight: 700; }
.lv-gd__cs .n.dl + .n::before { content: " · "; }
.lv-gd__cs .n:not(.dl) { color: var(--lv-ink-2, #4b5563); font-size: .76rem; }
.lv-gd__cs .g { color: var(--gd-guest) !important; } .lv-gd__cs .r { color: var(--gd-ret) !important; } .lv-gd__cs .w { color: var(--gd-di) !important; }
.lv-gd__cs .o { color: #b91c1c; font-weight: 700; }
.lv-gd__cs.is-open { background: color-mix(in srgb, #ef4444 8%, transparent); border-radius: 4px; padding: .1rem .2rem; }
.lv-gd__cs.is-x { text-decoration: line-through; color: var(--lv-muted); }
.lv-gd__cs.is-changed .t::after { content: " · geändert"; color: #b45309; font-weight: 700; }
.lv-gd__dist td { padding: .25rem .5rem; border-bottom: 1px solid var(--lv-border); font-size: .9rem; }
.lv-gd__bar { display: inline-block; height: .6rem; border-radius: 3px; background: var(--lv-accent); vertical-align: middle; }
.lv-gd__ctbl { width: 100%; border-collapse: collapse; font-size: .9rem; }
.lv-gd__ctbl th, .lv-gd__ctbl td { padding: .45rem .6rem; border-bottom: 1px solid var(--lv-border); text-align: left; vertical-align: middle; }
.lv-gd__ctbl thead th { font-size: .78rem; color: var(--lv-muted); font-weight: 600; background: var(--lv-surface); }
.lv-gd__ctbl tr.is-inactive { opacity: .5; }
.lv-gd__abs { font-size: .78rem; padding: .05rem .45rem; border-radius: 99px; background: color-mix(in srgb, #64748b 13%, transparent); white-space: nowrap; }
.lv-gd__checks { display: grid; gap: .3rem; }
.lv-gd__checks input, .lv-gd__radios input, .lv-gd__set .lv-check input { width: auto !important; }
.lv-gd__cols { display: flex; flex-wrap: wrap; gap: .3rem; }
.lv-gd__cols code { font-size: .78rem; padding: .1rem .4rem; border-radius: 6px; background: var(--lv-surface); border: 1px solid var(--lv-border); }
.lv-gd__ierr { color: #b91c1c; font-size: .88rem; padding-left: 1.1rem; }
.lv-gd__iprev { margin: .5rem 0; font-size: .84rem; }
[data-it] { width: 100%; box-sizing: border-box; font: .85rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); padding: .5rem; background: transparent; color: inherit; }
.lv-gd__settings { display: grid; gap: 1rem; max-width: 52rem; }
.lv-gd__set { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: .8rem 1rem; margin: 0; }
.lv-gd__set legend { font-weight: 650; padding: 0 .3rem; }
.lv-gd__radios { display: grid; gap: .4rem; }
.lv-gd__times { display: grid; gap: .4rem; }
.lv-gd__trow { display: grid; grid-template-columns: 10rem 1fr auto; gap: .6rem; align-items: center; padding: .35rem 0; border-bottom: 1px solid var(--lv-border); }
.lv-gd__trow [data-tl] { display: flex; flex-wrap: wrap; gap: .3rem; }
.lv-gd__tadd { display: flex; gap: .3rem; align-items: center; }
.lv-gd__tadd select, .lv-gd__tadd input { font: inherit; font-size: .88rem; min-height: 32px; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); padding: 0 .3rem; background: transparent; color: inherit; width: auto !important; }
@media (max-width: 640px) {
	.lv-gd__trow { grid-template-columns: 1fr; }
	.lv-gd__pal { position: static; max-height: none; }
	.lv-gd__tools { margin-left: 0; width: 100%; }
	.lv-gd__date { min-width: 0; flex: 1; }
}
.lv-toast.is-warn { background: #b45309; color: #fff; }
@media (prefers-color-scheme: dark) { .lv-gc { background: #1f2430; color: #e5e7eb; } .lv-gc small { color: #9ca3af; } }
.lv-gd__pal .lv-gc { width: 100%; box-sizing: border-box; }
.lv-gd__kind { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 640px) {
	.lv-gd__tabs { display: flex; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; flex-basis: 100%; }
	.lv-gd__tabs a { white-space: nowrap; flex: none; padding: .5rem .7rem; }
	.lv-gd__daybar { display: grid; grid-template-columns: auto 1fr auto; gap: .5rem; }
	.lv-gd__date { grid-column: 2; grid-row: 1; justify-content: center; text-align: center; }
	.lv-gd__date b { font-size: 1rem; }
	.lv-gd__daybar > .lv-ib:first-child { grid-column: 1; grid-row: 1; }
	.lv-gd__daybar > .lv-ib:nth-of-type(2) { grid-column: 3; grid-row: 1; }
	.lv-gd__daybar input[type=date] { grid-column: 1 / 3; }
	.lv-gd__daybar .lv-gd__st { justify-self: end; }
	.lv-gd__tools { grid-column: 1 / -1; }
	.lv-gd__tools .lv-btn { flex: 1 1 auto; }
	.lv-gd__selbar { font-size: .9rem; }
}

/* ===== 3.1: Besonderheiten, Freigabe, Verteiler ===== */
.lv-gd__tag { text-decoration: none; display: inline-block; font-size: .7rem; font-weight: 700; padding: .02rem .35rem; margin-left: .25rem; border-radius: 5px; background: #ede9fe; color: #5b21b6; vertical-align: 1px; cursor: help; }
.lv-gd__tags { margin: 0 0 .35rem; font-size: .8rem; display: flex; flex-wrap: wrap; gap: .25rem .4rem; align-items: center; }
.lv-gd__tags .lv-gd__tag { margin-left: 0; }
.lv-gd__tags span { color: var(--lv-muted); }
.lv-gd__svc.is-chg { background: #fff4e5; border-radius: 10px; padding: .45rem; margin-left: -.45rem; margin-right: -.45rem; box-shadow: inset 3px 0 #f59e0b; }
.lv-gd__chg { margin: 0 0 .35rem; font-size: .8rem; color: #92400e; display: grid; gap: .15rem; }
.lv-gd__chg span::before { content: "✎ "; }
.lv-gd__cs.is-chg { background: #fff1d6; border-radius: 4px; box-shadow: inset 3px 0 #f59e0b; padding: .1rem .25rem; }
.lv-gd__legend .c { background: #fff1d6; padding: 0 .4rem; border-radius: 4px; color: #92400e; }
.lv-gd__st--dirty { background: #fff1d6; color: #92400e; }
.lv-gd__unit.is-mine { box-shadow: 0 0 0 2px var(--lv-accent-line), var(--lv-shadow); }
.lv-gd__codes { display: flex; flex-wrap: wrap; gap: .35rem; }
.lv-gd__code { display: inline-flex; cursor: pointer; }
.lv-gd__code input { position: absolute; opacity: 0; width: 1px !important; height: 1px; }
.lv-gd__code span { font-size: .82rem; padding: .25rem .6rem; border-radius: 99px; border: 1px solid var(--lv-border-strong); }
.lv-gd__code input:checked + span { background: #ede9fe; border-color: #8b5cf6; color: #4c1d95; }
.lv-gd__code input:focus-visible + span { outline: 2px solid var(--lv-accent); }
.lv-gd__codelist { display: grid; gap: .3rem; margin-bottom: .5rem; }
.lv-gd__crow { display: flex; gap: .3rem; align-items: center; }
.lv-gd__crow input, .lv-gd__tadd input:not([type=time]) { font: inherit; font-size: .88rem; min-height: 32px; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); padding: 0 .5rem; background: transparent; color: inherit; }
.lv-gd__crow input:first-child { width: 5.5rem !important; font-weight: 700; }
.lv-gd__crow input:nth-child(2) { flex: 1; width: auto !important; }
.lv-gd__rel { margin-top: 1.6rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: 1rem; background: var(--lv-surface); }
.lv-gd__rel h3 { margin: 0 0 .6rem; font-size: 1.05rem; display: flex; align-items: center; gap: .5rem; }
.lv-gd__relh { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; align-items: center; }
.lv-gd__flow { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .5rem; counter-reset: f; }
.lv-gd__flow li { counter-increment: f; padding: .6rem .7rem; border-radius: var(--lv-radius-s); background: var(--lv-bg, #fff); border: 1px solid var(--lv-border); display: grid; gap: .15rem; font-size: .85rem; }
.lv-gd__flow li b::before { content: counter(f) ". "; color: var(--lv-accent); }
.lv-gd__flow li span { color: var(--lv-muted); }
.lv-gd__flow li.is-now { border-color: var(--lv-accent); box-shadow: 0 0 0 1px var(--lv-accent); }
.lv-gd__fb td small { display: block; color: var(--lv-muted); font-size: .75rem; }
.lv-gd__fbst { font-size: .78rem; font-weight: 700; padding: .1rem .5rem; border-radius: 99px; background: color-mix(in srgb, #64748b 14%, transparent); white-space: nowrap; }
.lv-gd__fbst.is-ok { background: color-mix(in srgb, #16a34a 15%, transparent); color: #166534; }
.lv-gd__fbst.is-chg { background: #fff1d6; color: #92400e; }
.lv-gd__fbst.is-open { color: #92400e; }
.lv-gd__chgs { margin: .6rem 0 1rem; }
.lv-gd__chgs h4, .lv-gd__rel h4 { margin: 0 0 .4rem; font-size: .95rem; }
.lv-gd__chgrow { display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: space-between; align-items: center; padding: .55rem .7rem; border-radius: var(--lv-radius-s); background: #fff4e5; border-left: 3px solid #f59e0b; margin-bottom: .35rem; }
.lv-gd__chgrow.is-erledigt, .lv-gd__chgrow.is-abgelehnt { background: var(--lv-bg, #fff); border-left-color: #d1d5db; opacity: .8; }
.lv-gd__chgrow > div:first-child { display: grid; gap: .1rem; min-width: 0; flex: 1 1 18rem; }
.lv-gd__chgrow small { color: var(--lv-muted); font-size: .75rem; }
.lv-gd__chgact { display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; }
.lv-gd__vers, .lv-gd__done { margin-top: .8rem; font-size: .88rem; }
.lv-gd__vers summary, .lv-gd__done summary { cursor: pointer; font-weight: 600; }
.lv-gd__vl { color: #92400e; font-size: .82rem; }
.lv-gd__pre { background: var(--lv-surface); padding: .5rem .7rem; border-radius: var(--lv-radius-s); }
.lv-gd__wa { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.lv-gd__hold { list-style: none; padding: 0; margin: .3rem 0; display: grid; gap: .25rem; }
.lv-gd__hold li { display: flex; flex-wrap: wrap; gap: .3rem .6rem; align-items: baseline; }
.lv-gd__hold li small { color: var(--lv-muted); }
.lv-gd__hold .lv-linkbtn { margin-left: auto; font-size: .85rem; }
.lv-gd__zadd { display: flex; flex-wrap: wrap; gap: .35rem; margin: .3rem 0 .2rem; }
.lv-gd__zadd input { flex: 1 1 9rem; width: auto !important; font: inherit; font-size: .88rem; min-height: 34px; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); padding: 0 .5rem; background: transparent; color: inherit; }
.lv-gd__zu { padding: .5rem 0; border-top: 1px solid var(--lv-border); }
.lv-gd__set h3 { margin: 0 0 .3rem; font-size: 1rem; }
.lv-gd__ztbl { border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); overflow: hidden; }
.lv-gd__zrow { display: grid; grid-template-columns: 11rem 1fr auto; gap: .4rem 1rem; align-items: start; padding: .5rem .75rem; border-top: 1px solid var(--lv-border); }
.lv-gd__zrow:first-child { border-top: 0; }
.lv-gd__zrow > b { padding-top: .1rem; }
.lv-gd__zrow .lv-gd__hold { margin: 0; }
.lv-gd__zmore summary { cursor: pointer; color: var(--lv-accent); font-weight: 600; font-size: .88rem; white-space: nowrap; list-style: none; }
.lv-gd__zmore summary::-webkit-details-marker { display: none; }
.lv-gd__zmore[open] { grid-column: 1 / -1; }
.lv-gd__zmore[open] summary { margin-bottom: .4rem; }
@media (max-width: 640px) { .lv-gd__zrow { grid-template-columns: 1fr; } }
.lv-gd__ph.is-noeq:not(.is-on) { border-style: dashed; }
.lv-gd__ph.is-tech { background: #b45309 !important; border-color: #b45309 !important; color: #fff; }
.lv-gd__tech { background: color-mix(in srgb, #f59e0b 14%, transparent); border-radius: 6px; padding: .25rem .45rem; font-weight: 600; }
.lv-gd__cs .t i.is-tech { color: #b45309; font-weight: 700; }
.lv-gd__pu { margin-top: .8rem; padding-top: .7rem; border-top: 1px solid var(--lv-border); }

/* ================= 3.2 Gemeindeplan, Gruppen & Teams ================= */
.lv-gem { container-type: inline-size; --gem-line: color-mix(in srgb, currentColor 22%, transparent); }
.lv-gem__mbar { display: inline-flex; align-items: center; gap: .3rem; }
.lv-gem__mbar b { min-width: 9.5rem; text-align: center; font-size: 1.05rem; }
.lv-gem__bar, .lv-gem__calbar { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin-bottom: .8rem; }
.lv-gem__acts { display: inline-flex; flex-wrap: wrap; gap: .4rem; margin-left: auto; }
.lv-gem__state { font-size: .8rem; font-weight: 600; padding: .2rem .6rem; border-radius: 99px; }
.lv-gem__state.is-pub { background: color-mix(in srgb, #16a34a 14%, transparent); color: #15803d; }
.lv-gem__state.is-draft { background: color-mix(in srgb, #f59e0b 16%, transparent); color: #b45309; }
.lv-gem__hint { background: var(--lv-accent-soft); border-left: 3px solid var(--lv-accent); padding: .55rem .8rem; border-radius: 0 8px 8px 0; font-size: .9rem; margin: 0 0 .9rem; }
.lv-btn--ok { background: #15803d; border-color: #15803d; color: #fff; }

.lv-gem__wrap { overflow-x: auto; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); }
.lv-gem__tbl { width: 100%; border-collapse: collapse; font-size: .9rem; }
.lv-gem__tbl th, .lv-gem__tbl td { padding: .38rem .55rem; border-bottom: 1px solid var(--lv-border); text-align: left; vertical-align: top; }
.lv-gem__tbl thead th { background: var(--lv-accent); color: var(--lv-accent-ink); font-weight: 600; font-size: .8rem; white-space: nowrap; position: sticky; top: 0; }
.lv-gem__tbl tbody.lv-gem__dayb { border-top: 2px solid var(--gem-line); }
.lv-gem__tbl tbody.is-sun .lv-gem__date { background: var(--lv-accent-soft); }
.lv-gem__tbl tbody.is-today .lv-gem__date { box-shadow: inset 3px 0 0 var(--lv-accent); }
.lv-gem__date { white-space: nowrap; font-weight: 400; background: var(--lv-surface); width: 1%; }
.lv-gem__date .lv-linkbtn { margin-left: .4rem; text-decoration: none; font-weight: 700; opacity: .55; }
.lv-gem__date .lv-linkbtn:hover { opacity: 1; }
.lv-gem__t { white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--lv-ink-2, inherit); }
.lv-gem__ti .lv-gd__tag { margin-left: .3rem; }
.lv-gem__ti.is-cancel { text-decoration: line-through; color: var(--lv-muted); }
.lv-gem__tbl .is-guest, .lv-gem__tbl .is-sub, .lv-gem__legend .is-guest, .lv-gem__legend .is-sub { font-weight: 700; }
.lv-gem__tbl .is-missing { color: #b45309; font-style: italic; }
.lv-gem__day { color: var(--lv-muted); font-size: .85rem; }
.lv-gem__tbl tr[data-row] { cursor: pointer; }
.lv-gem__tbl tr[data-row]:hover td, .lv-gem__tbl tr[data-row]:focus-visible td { background: var(--lv-accent-soft); }
.lv-gem__tbl tr[data-row]:focus-visible { outline: 2px solid var(--lv-accent); outline-offset: -2px; }
.lv-gem__tbl tr.is-hidden td { opacity: .4; text-decoration: line-through; }
.lv-gem__tbl tr.src-gruppe td:first-of-type, .lv-gem__tbl tr.src-probe td:first-of-type { color: var(--lv-muted); }
.lv-gem__legend { font-size: .8rem; color: var(--lv-muted); margin: .5rem 0 0; }
.lv-gem__lh { opacity: .45; }

@container (max-width: 700px) {
	.lv-gem__wrap { border: 0; overflow: visible; }
	.lv-gem__tbl, .lv-gem__tbl tbody, .lv-gem__tbl tr, .lv-gem__tbl td, .lv-gem__tbl th { display: block; }
	.lv-gem__tbl thead { display: none; }
	.lv-gem__tbl tbody.lv-gem__dayb { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); margin-bottom: .7rem; overflow: hidden; }
	.lv-gem__date { width: auto; border-bottom: 1px solid var(--lv-border); grid-column: 1 / -1; margin: -.35rem -.2rem .3rem; padding: .45rem .7rem !important; }
	.lv-gem__tbl tr { display: grid; grid-template-columns: 3.4rem 1fr; padding: .35rem .2rem; border-bottom: 1px dashed var(--lv-border); }
	.lv-gem__tbl tr:last-child { border-bottom: 0; }
	.lv-gem__tbl td { border: 0; padding: .1rem .5rem; grid-column: 2; }
	.lv-gem__tbl td.lv-gem__t { grid-column: 1; grid-row: span 6; font-weight: 600; }
	.lv-gem__tbl td.lv-gem__ti { font-weight: 600; }
	.lv-gem__tbl td:empty { display: none; }
	.lv-gem__tbl td[data-l]:not(.lv-gem__ti):not(.lv-gem__t)::before { content: attr(data-l) ": "; color: var(--lv-muted); font-size: .8em; }
	.lv-gem__acts { margin-left: 0; }
}

.lv-gem__dlg { width: min(44rem, calc(100vw - 2rem)); }
.lv-gem__dh { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .6rem; }
.lv-gem__dh h3 { margin: 0; font-size: 1.15rem; }
.lv-gem__form { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: .7rem .9rem; }
.lv-gem__form .is-wide { grid-column: 1 / -1; }
.lv-gem__f { display: grid; gap: .25rem; font-size: .85rem; }
.lv-gem__f > span { color: var(--lv-muted); font-weight: 600; }
.lv-gem__f input, .lv-gem__f select, .lv-gem__cols input, .lv-gem__team select, .lv-gem__tadd select, .lv-gem__team header input { font: inherit; font-size: .95rem; border: 1px solid var(--lv-border-strong); border-radius: var(--lv-radius-s); padding: .45rem .6rem; background: transparent; color: inherit; min-width: 0; }
.lv-gem__f[hidden], .lv-gem__per[hidden], .lv-gem__ppl[hidden] { display: none; }
.lv-gem__per { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: .7rem .9rem; }
.lv-gem__radio, .lv-gem__ppl { border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); padding: .5rem .8rem .7rem; display: grid; gap: .4rem; margin: 0; }
.lv-gem__ppl { grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); }
.lv-gem__radio legend, .lv-gem__ppl legend { font-size: .85rem; font-weight: 600; color: var(--lv-muted); padding: 0 .3rem; }
.lv-gem__src { font-size: .85rem; color: var(--lv-muted); margin: -.2rem 0 .8rem; }
.lv-gem__dfoot { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-end; margin: 1rem 0 0; }
.lv-gem__dfoot .lv-danger { margin-right: auto; }
.lv-gem__colors { display: flex; gap: .45rem; flex-wrap: wrap; }
.lv-gem__colors input { position: absolute; opacity: 0; }
.lv-gem__colors i { display: block; width: 1.7rem; height: 1.7rem; border-radius: 50%; cursor: pointer; box-shadow: 0 0 0 2px transparent; transition: box-shadow .15s; }
.lv-gem__colors input:checked + i { box-shadow: 0 0 0 2px var(--lv-dlg-bg, #fff), 0 0 0 4px currentColor; }
.lv-gem__colors input:focus-visible + i { outline: 2px solid var(--lv-accent); outline-offset: 3px; }
.lv-gem__warn { display: block; margin-top: .3rem; font-size: .82rem; color: #b45309; background: color-mix(in srgb, #f59e0b 10%, transparent); border-radius: 6px; padding: .35rem .55rem; }

.lv-gem__ghead { display: flex; flex-wrap: wrap; gap: .8rem; align-items: flex-start; justify-content: space-between; margin-bottom: .9rem; }
.lv-gem__ghead p { margin: 0; flex: 1 1 22rem; }
.lv-gem__cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .8rem; margin-bottom: 1.6rem; }
.lv-gem__card { all: unset; box-sizing: border-box; cursor: pointer; display: grid; gap: .25rem; padding: .9rem 1rem .9rem 1.15rem; border: 1px solid var(--lv-border); border-radius: var(--lv-radius); background: var(--lv-surface); position: relative; overflow: hidden; transition: transform .15s var(--lv-ease), box-shadow .15s; }
.lv-gem__card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--g); }
.lv-gem__card:hover, .lv-gem__card:focus-visible { transform: translateY(-2px); box-shadow: var(--lv-shadow); }
.lv-gem__card:focus-visible { outline: 2px solid var(--lv-accent); }
.lv-gem__card b { font-size: 1.05rem; }
.lv-gem__card span { font-size: .85rem; }
.lv-gem__card em { color: var(--g); font-style: normal; font-weight: 600; }
.lv-gem__mine h3, .lv-gem__teams h3 { font-size: 1.05rem; margin: 0 0 .5rem; }
.lv-gem__dl { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .35rem; }
.lv-gem__dl li { padding: .45rem .7rem; border-left: 4px solid var(--g, var(--lv-accent)); background: var(--lv-surface); border-radius: 0 8px 8px 0; font-size: .9rem; }
.lv-gem__dl em { color: #b45309; font-style: normal; }
.lv-gem__inplan { font-size: .7rem; padding: .05rem .4rem; border-radius: 99px; background: var(--lv-accent-soft); color: var(--lv-accent); margin-left: .3rem; white-space: nowrap; }

.lv-gem__ics { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; padding: .8rem 1rem; border: 1px dashed var(--lv-border-strong); border-radius: var(--lv-radius); margin: .8rem 0; }
.lv-gem__ics > div:first-child { flex: 1 1 18rem; }
.lv-gem__ics p { margin: .15rem 0 0; }
.lv-gem__icsb { display: flex; flex-wrap: wrap; gap: .4rem; }

.lv-gem__gtop { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1rem; margin-bottom: .8rem; padding-bottom: .6rem; border-bottom: 3px solid var(--g); }
.lv-gem__gtop h2 { margin: 0; font-size: 1.4rem; }
.lv-gem__gtop .lv-btn { margin-left: auto; }
.lv-gem__gtop .lv-linkbtn { flex-basis: 100%; }

.lv-gem__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--lv-border); border-left: 1px solid var(--lv-border); border-radius: 8px; overflow: hidden; margin-bottom: .9rem; }
.lv-gem__wh { font-size: .75rem; font-weight: 700; text-align: center; padding: .3rem; background: var(--lv-surface); border-right: 1px solid var(--lv-border); border-bottom: 1px solid var(--lv-border); color: var(--lv-muted); }
.lv-gem__c { min-height: 5.2rem; padding: .25rem .25rem .35rem; border-right: 1px solid var(--lv-border); border-bottom: 1px solid var(--lv-border); display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lv-gem__c[data-cday] { cursor: copy; }
.lv-gem__c[data-cday]:hover { background: var(--lv-accent-soft); }
.lv-gem__c.is-out { background: var(--lv-surface); }
.lv-gem__c.is-out .lv-gem__n { opacity: .4; }
.lv-gem__c.is-sun .lv-gem__n { color: #b91c1c; }
.lv-gem__c.is-today .lv-gem__n { background: var(--lv-accent); color: var(--lv-accent-ink); border-radius: 99px; padding: 0 .4rem; }
.lv-gem__n { font-size: .75rem; font-weight: 700; align-self: flex-start; }
.lv-gem__ev { all: unset; box-sizing: border-box; cursor: pointer; font-size: .72rem; line-height: 1.25; padding: .12rem .35rem; border-radius: 5px; background: color-mix(in srgb, var(--g) 18%, transparent); border-left: 3px solid var(--g); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.lv-gem__ev.is-cont { opacity: .65; }
.lv-gem__ev.is-sub { background: color-mix(in srgb, #f59e0b 22%, transparent); border-left-color: #d97706; font-weight: 600; }
.lv-gem__ev.is-warn { box-shadow: inset 0 0 0 1px #d97706; }
.lv-gem__ev i { font-style: normal; font-weight: 700; }
.lv-gem__ev:focus-visible { outline: 2px solid var(--lv-accent); }
.lv-gem__abs { font-size: .65rem; color: #b45309; margin-top: auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv-gem__cal, .lv-gem__teams { margin-bottom: 1.2rem; }
.lv-gem__tgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: .7rem; }
.lv-gem__team { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: .6rem .7rem; display: grid; gap: .5rem; align-content: start; }
.lv-gem__team header { display: flex; align-items: center; gap: .3rem; }
.lv-gem__team header input { flex: 1; font-weight: 600; padding: .25rem .45rem; }
.lv-gem__tord { display: inline-flex; margin-left: auto; }
.lv-gem__chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.lv-gem__chip { display: inline-flex; align-items: center; gap: .15rem; padding: .2rem .25rem .2rem .6rem; border-radius: 99px; background: var(--lv-surface-2, var(--lv-surface)); border: 1px solid var(--lv-border); font-size: .85rem; }
.lv-gem__chip.is-lead { border-color: #d97706; }
.lv-gem__chip button { all: unset; cursor: pointer; padding: 0 .35rem; border-radius: 99px; color: var(--lv-muted); }
.lv-gem__chip button:hover, .lv-gem__chip button:focus-visible { background: var(--lv-border); color: inherit; }
.lv-gem__chip:not(:has(button)) { padding-right: .6rem; }
.lv-gem__tadd { margin: .7rem 0 .3rem; }
.lv-gem__cl { list-style: none; padding: 0; margin: 0; display: grid; gap: .35rem; }
.lv-gem__cl li { padding: .5rem .8rem; border: 1px solid var(--lv-border); border-radius: 8px; display: flex; flex-wrap: wrap; gap: .3rem .7rem; align-items: baseline; }
.lv-gem__cl li.is-off { opacity: .55; }
.lv-gem__clabel { font-size: .8rem; color: var(--lv-muted); }
.lv-gem__cl .lv-linkbtn { margin-left: auto; }
.lv-gem__cols { list-style: none; counter-reset: c; padding: 0; margin: 0 0 .6rem; display: grid; gap: .35rem; }
.lv-gem__cols li { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.lv-gem__cols li input:not([type]) { flex: 1 1 12rem; }
.lv-gem__cols small { min-width: 6rem; }
@container (max-width: 560px) {
	.lv-gem__c { min-height: 3.6rem; }
	.lv-gem__ev { font-size: 0; padding: 0; height: 6px; border-left-width: 0; background: var(--g); }
	.lv-gem__ev.is-sub { background: #d97706; }
	.lv-gem__abs { display: none; }
	.lv-gem__gtop .lv-btn { margin-left: 0; }
}
@media (prefers-color-scheme: dark) { .lv-gem__state.is-pub { color: #4ade80; } .lv-gem__state.is-draft, .lv-gem__dl em, .lv-gem__warn, .lv-gem__abs, .lv-gem__tbl .is-missing { color: #fbbf24; } }
.lv-gem__team header input { flex: 1 1 0 !important; width: 0 !important; min-width: 0 !important; }
.lv-gem__team select, .lv-gem__tadd select { width: 100% !important; max-width: 22rem; box-sizing: border-box; }
.lv-gem__team, .lv-gem__team * { box-sizing: border-box; }
.lv-gem__gtop .lv-linkbtn { text-align: left; font-size: .85rem; }
.lv-gem__gtop h2 { font-family: inherit; font-weight: 700; }
.lv-duty__pub { font: inherit; font-size: .78rem; border: 1px solid var(--lv-border); border-radius: 6px; padding: .1rem .3rem; background: transparent; color: inherit; max-width: 100%; }
.lv-ens__pub { margin-top: .5rem; font-size: .9rem; }
.lv-ens__pub input, .lv-ens__pub textarea { width: 100%; box-sizing: border-box; font: .8rem/1.4 ui-monospace, monospace; padding: .35rem .5rem; border: 1px solid var(--lv-border); border-radius: 6px; background: var(--lv-surface); color: inherit; }
.lv-gem__pubbox { border: 1px solid var(--lv-border); border-radius: var(--lv-radius); padding: .8rem 1rem; margin: .8rem 0; }
.lv-gem__pubbox h4 { margin: 0 0 .3rem; font-size: 1rem; }
.lv-gem__pubbox p { margin: .2rem 0 .5rem; }
.lv-gem__pubbox textarea, .lv-gem__pubbox input[readonly] { width: 100%; box-sizing: border-box; font: .78rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; padding: .4rem .55rem; border: 1px solid var(--lv-border); border-radius: 6px; background: var(--lv-surface); color: inherit; resize: vertical; }
.lv-gem__pubtag { font-size: .7rem; padding: .05rem .4rem; border-radius: 99px; background: color-mix(in srgb, #16a34a 14%, transparent); color: #15803d; margin-left: .3rem; white-space: nowrap; }

/* 3.2.1 Übertragungen (IPTV) */
.lv-gd__tv { margin: .3rem 0 0; font-size: .8rem; padding: .3rem .5rem; border-radius: 6px; background: color-mix(in srgb, #0891b2 12%, transparent); color: #0e7490; }
.lv-gd__tv.is-send { background: color-mix(in srgb, #0891b2 8%, transparent); }
.lv-gd__cs .t i.tv { font-style: normal; }
.lv-gd__sthead { display: flex; flex-wrap: wrap; gap: .8rem 1.2rem; align-items: flex-start; justify-content: space-between; margin-bottom: 1rem; }
.lv-gd__sthead p { flex: 1 1 26rem; margin: 0; }
.lv-gd__stl { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .6rem; }
.lv-gd__tvc { display: grid; grid-template-columns: 11rem 1fr auto; gap: .5rem 1rem; align-items: start; padding: .8rem 1rem; border: 1px solid var(--lv-border); border-left: 4px solid #0891b2; border-radius: var(--lv-radius); }
.lv-gd__tvc.is-past { opacity: .6; }
.lv-gd__stdate b { display: block; }
.lv-gd__stdate span { color: var(--lv-muted); font-size: .9rem; }
.lv-gd__stb p { margin: 0 0 .35rem; }
.lv-gd__stsend { font-weight: 700; }
.lv-gd__strecv { display: flex; flex-wrap: wrap; gap: .35rem; }
.lv-gd__strecv span { font-size: .85rem; padding: .15rem .55rem; border-radius: 99px; background: var(--lv-surface); border: 1px solid var(--lv-border); }
.lv-gd__stpast summary { cursor: pointer; color: var(--lv-muted); margin-bottom: .6rem; }
.lv-gd__iptv { width: 100%; border-collapse: collapse; font-size: .9rem; margin: .5rem 0; }
.lv-gd__iptv th, .lv-gd__iptv td { padding: .35rem .5rem; border-bottom: 1px solid var(--lv-border); text-align: center; }
.lv-gd__iptv th:first-child, .lv-gd__iptv tbody th { text-align: left; font-weight: 600; }
.lv-gd__iptv thead th { font-size: .78rem; color: var(--lv-muted); }
.lv-gd__iptv input { width: 1.1rem; height: 1.1rem; }
.lv-gd__dlgh { display: flex; justify-content: space-between; align-items: center; margin-bottom: .6rem; }
.lv-gd__dlgh h3 { margin: 0; font-size: 1.15rem; }
.lv-gd__stform { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: .6rem .9rem; }
.lv-gd__stform .is-wide { grid-column: 1 / -1; }
.lv-gd__stform .lv-field { display: grid; gap: .25rem; font-size: .85rem; margin: 0; }
.lv-gd__stform .lv-field > span { color: var(--lv-muted); font-weight: 600; }
.lv-gd__stform .lv-field[hidden] { display: none; }
.lv-gd__strcv { border: 1px solid var(--lv-border); border-radius: var(--lv-radius-s); padding: .5rem .8rem .7rem; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .35rem; }
.lv-gd__strcv legend { font-size: .85rem; font-weight: 600; color: var(--lv-muted); padding: 0 .3rem; }
.lv-gd__strcv .is-off { opacity: .5; }
.lv-gd__hint { font-size: .85rem; background: var(--lv-accent-soft); border-radius: 8px; padding: .5rem .7rem; margin: .9rem 0 0; }
.lv-gd__dlgf { display: flex; gap: .5rem; justify-content: flex-end; margin: 1rem 0 0; }
.lv-gd__dlgf .lv-danger { margin-right: auto; }
@container (max-width: 640px) { .lv-gd__tvc { grid-template-columns: 1fr; } .lv-gd__iptv { font-size: .8rem; } }
@media (prefers-color-scheme: dark) { .lv-gd__tv { color: #67e8f9; } }

/* 3.3 Gottesdienstplan: Seitennavigation, Übersicht */
.lv-gd__shell { display: grid; grid-template-columns: 15.5rem minmax(0, 1fr); gap: 1.4rem; align-items: start; }
.lv-gd__side { position: sticky; top: 76px; display: grid; gap: .8rem; }
.lv-gd__bezbox { padding: .75rem .85rem; border-radius: 12px; background: var(--lv-accent-soft); display: grid; gap: .15rem; }
.lv-gd__bezbox small { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--lv-muted); font-weight: 700; }
.lv-gd__bezname { font-size: 1.05rem; }
.lv-gd__bezbtn { all: unset; cursor: pointer; display: grid; border-radius: 8px; }
.lv-gd__bezbtn b { font-size: 1.05rem; }
.lv-gd__bezbtn span { font-size: .78rem; color: var(--lv-accent); text-decoration: underline; }
.lv-gd__bezbtn:focus-visible { outline: 2px solid var(--lv-accent); outline-offset: 3px; }
.lv-gd__role { font-style: normal; font-size: .72rem; font-weight: 700; color: #15803d; }
.lv-gd__role.is-view { color: var(--lv-muted); }
.lv-gd__snav { display: grid; gap: .15rem; }
.lv-gd__snav a { display: flex; gap: .65rem; align-items: center; padding: .55rem .65rem; border-radius: 10px; color: inherit; text-decoration: none; transition: background .15s; }
.lv-gd__snav a:hover { background: var(--lv-surface); }
.lv-gd__snav a[aria-current] { background: var(--lv-accent); color: var(--lv-accent-ink); }
.lv-gd__snav a[aria-current] small { color: inherit; opacity: .8; }
.lv-gd__snav svg { width: 1.25rem; height: 1.25rem; flex: none; }
.lv-gd__snav b { display: block; font-size: .93rem; font-weight: 600; line-height: 1.2; }
.lv-gd__snav small { display: block; font-size: .74rem; color: var(--lv-muted); line-height: 1.25; }
.lv-gd__sguide { font-size: .82rem; padding: 0 .65rem; }
.lv-gd__main { min-width: 0; }
.lv-gd__shead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .8rem 1.2rem; margin-bottom: 1.1rem; }
.lv-gd__shead h2 { margin: 0; font-size: 1.5rem; }
.lv-gd__shead p { margin: .15rem 0 0; }
.lv-gd__quick { display: flex; flex-wrap: wrap; gap: .45rem; }
.lv-gd__mgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: .9rem; margin-bottom: .9rem; }
.lv-gd__sgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: .9rem; }
.lv-gd__mcard, .lv-gd__scard { border: 1px solid var(--lv-border); border-radius: 14px; padding: 1rem 1.1rem; display: grid; gap: .5rem; align-content: start; background: var(--lv-surface); }
.lv-gd__mcard header, .lv-gd__scard header { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; flex-wrap: wrap; }
.lv-gd__mcard h3, .lv-gd__scard h3 { margin: 0; font-size: 1.08rem; }
.lv-gd__badge { font-size: .72rem; font-weight: 700; padding: .15rem .55rem; border-radius: 99px; background: var(--lv-surface-2, var(--lv-border)); }
.lv-gd__badge.is-draft { background: color-mix(in srgb, #64748b 16%, transparent); color: #475569; }
.lv-gd__badge.is-pre { background: color-mix(in srgb, #f59e0b 18%, transparent); color: #92400e; }
.lv-gd__badge.is-pub { background: color-mix(in srgb, #16a34a 15%, transparent); color: #166534; }
.lv-gd__mnum { margin: 0; font-size: .95rem; }
.lv-gd__mnum b { font-size: 1.15rem; }
.lv-gd__mnum .is-warn { color: #b45309; font-size: inherit; }
.lv-gd__mnum .is-ok { color: #15803d; font-size: inherit; }
.lv-gd__todo { margin: 0; padding-left: 1.1rem; font-size: .86rem; display: grid; gap: .2rem; }
.lv-gd__done { margin: 0; color: #15803d; font-size: .88rem; font-weight: 600; }
.lv-gd__macts { display: flex; flex-wrap: wrap; gap: .4rem; margin: .3rem 0 0; }
.lv-gd__away { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; font-size: .88rem; }
.lv-gd__cfilter { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: 0 0 .7rem; }
.lv-gd__cfilter input { flex: 1 1 18rem; font: inherit; padding: .5rem .7rem; border-radius: 10px; border: 1px solid var(--lv-border-strong); background: transparent; color: inherit; }
.lv-gd__bezdlg .lv-rq__dlgin { display: grid; gap: .7rem; }
.lv-gd__bezq { font: inherit; padding: .6rem .8rem; border-radius: 10px; border: 1px solid var(--lv-border-strong); background: transparent; color: inherit; width: 100%; }
.lv-gd__bezl { list-style: none; margin: 0; padding: 0; max-height: 55vh; overflow: auto; display: grid; gap: .2rem; }
.lv-gd__bezl button { all: unset; box-sizing: border-box; cursor: pointer; width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 0 .6rem; padding: .5rem .7rem; border-radius: 9px; }
.lv-gd__bezl button:hover, .lv-gd__bezl button:focus-visible { background: var(--lv-accent-soft); }
.lv-gd__bezl button[aria-current] { box-shadow: inset 3px 0 0 var(--lv-accent); background: var(--lv-surface); }
.lv-gd__bezl small { grid-column: 1; font-size: .78rem; color: var(--lv-muted); }
.lv-gd__bezl em { grid-row: 1 / span 2; grid-column: 2; align-self: center; font-style: normal; font-size: .72rem; font-weight: 700; color: #15803d; }
@container (max-width: 900px) {
	.lv-gd__shell { grid-template-columns: 1fr; gap: .8rem; }
	.lv-gd__side { position: static; }
	.lv-gd__bezbox { grid-template-columns: auto 1fr auto; align-items: center; gap: .6rem; }
	.lv-gd__snav { display: flex; overflow-x: auto; scrollbar-width: none; gap: .25rem; }
	.lv-gd__snav::-webkit-scrollbar { display: none; }
	.lv-gd__snav a { flex: none; padding: .45rem .7rem; }
	.lv-gd__snav small, .lv-gd__sguide { display: none; }
}
@media (prefers-color-scheme: dark) { .lv-gd__badge.is-pre { color: #fbbf24; } .lv-gd__badge.is-pub, .lv-gd__done, .lv-gd__mnum .is-ok, .lv-gd__role { color: #4ade80; } .lv-gd__badge.is-draft { color: #cbd5e1; } }

/* 3.4 Verwalten */
.lv-mg { container-type: inline-size; }
.lv-mg .lv-gd__set { margin-bottom: 1rem; }
.lv-mg__badge { display: inline-grid; place-items: center; min-width: 1.3rem; height: 1.3rem; padding: 0 .35rem; border-radius: 99px; background: #dc2626; color: #fff; font-size: .7rem; font-style: normal; font-weight: 700; vertical-align: 1px; }
.lv-mg__filter { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: 0 0 .8rem; }
.lv-mg__filter input { flex: 1 1 14rem; font: inherit; padding: .5rem .75rem; border-radius: 10px; border: 1px solid var(--lv-border-strong); background: transparent; color: inherit; }
.lv-mg__chips { display: flex; flex-wrap: wrap; gap: .3rem; }
.lv-mg__chip { all: unset; box-sizing: border-box; cursor: pointer; font-size: .82rem; padding: .3rem .7rem; border-radius: 99px; border: 1px solid var(--lv-border); background: var(--lv-surface); }
.lv-mg__chip span { opacity: .6; font-size: .9em; margin-left: .15rem; }
.lv-mg__chip:hover { border-color: var(--lv-accent); }
.lv-mg__chip.is-on { background: var(--lv-accent); border-color: var(--lv-accent); color: var(--lv-accent-ink, #fff); }
.lv-mg__chip:focus-visible { outline: 2px solid var(--lv-accent); outline-offset: 2px; }
.lv-mg__tbl { width: 100%; border-collapse: collapse; font-size: .9rem; }
.lv-mg__tbl th { text-align: left; font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; color: var(--lv-muted); font-weight: 700; padding: .55rem .75rem; border-bottom: 1px solid var(--lv-border); background: var(--lv-surface); }
.lv-mg__tbl td { padding: .6rem .75rem; border-bottom: 1px solid var(--lv-border); vertical-align: top; }
.lv-mg__tbl tbody tr:last-child td { border-bottom: 0; }
.lv-mg__tbl tr[data-person] { cursor: pointer; transition: background .12s; }
.lv-mg__tbl tr[data-person]:hover, .lv-mg__tbl tr[data-person]:focus-visible { background: var(--lv-accent-soft); outline: none; }
.lv-mg__tbl td small { display: block; color: var(--lv-muted); font-size: .78rem; }
.lv-mg__tag, .lv-mg__grp, .lv-mg__right { display: inline-block; font-size: .75rem; padding: .1rem .45rem; border-radius: 6px; margin: 0 .2rem .2rem 0; background: var(--lv-surface); border: 1px solid var(--lv-border); white-space: nowrap; }
.lv-mg__tag.is-cl { background: color-mix(in srgb, #1d4f7c 12%, transparent); border-color: transparent; font-weight: 700; color: #1d4f7c; }
.lv-mg__grp i { font-style: normal; opacity: .65; }
.lv-mg__right { background: color-mix(in srgb, #15803d 9%, transparent); border-color: transparent; }
.lv-mg__inv, .lv-mg__noacc { display: inline-block !important; margin-left: .4rem; font-size: .68rem !important; font-weight: 700; padding: 0 .4rem; border-radius: 99px; background: color-mix(in srgb, #f59e0b 18%, transparent); color: #92400e !important; }
.lv-mg__noacc { background: var(--lv-surface); color: var(--lv-muted) !important; }
.lv-mg__dlg { width: min(46rem, calc(100vw - 2rem)); }
.lv-mg__dh { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: .4rem; }
.lv-mg__dh h3 { margin: 0; font-size: 1.25rem; }
.lv-mg__dh p { margin: .15rem 0 0; color: var(--lv-muted); font-size: .85rem; }
.lv-mg__sec { border-top: 1px solid var(--lv-border); padding: .85rem 0 .3rem; }
.lv-mg__sec h4 { margin: 0 0 .5rem; font-size: .95rem; }
.lv-mg__checks { display: flex; flex-wrap: wrap; gap: .25rem 1.1rem; }
.lv-mg__checks .lv-check { display: inline-flex; align-items: flex-start; gap: .4rem; font-size: .9rem; }
.lv-mg__col { flex-direction: column; gap: .45rem; }
.lv-mg__ind { margin-left: 1.6rem; }
.lv-mg__rights { margin: .6rem 0 0; }
.lv-mg__rights summary { cursor: pointer; font-size: .85rem; color: var(--lv-accent); }
.lv-mg__rights[open] summary { margin-bottom: .45rem; }
.lv-mg__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: .6rem .9rem; margin: 0 0 .6rem; }
.lv-mg__f { display: grid; gap: .2rem; font-size: .82rem; font-weight: 600; }
.lv-mg__f input, .lv-mg__f select, .lv-mg__f textarea, .lv-mg__gadd select, .lv-mg__gadd input, .lv-mg__absf input, .lv-mg__gl input, .lv-mg__gl select, .lv-mg__tadd select, .lv-mg__tadd input, .lv-mg__pubd input, .lv-mg__pubd textarea { font: inherit; font-size: .92rem; font-weight: 400; padding: .45rem .6rem; border-radius: var(--lv-radius-s, 8px); border: 1px solid var(--lv-border-strong); background: transparent; color: inherit; min-width: 0; }
.lv-mg__f textarea, .lv-mg__pubd textarea { resize: vertical; width: 100%; }
.lv-mg__pubd input { width: 100%; }
.lv-mg__fs { border: 1px solid var(--lv-border); border-radius: 12px; padding: .7rem .9rem; margin: 0 0 .8rem; }
.lv-mg__fs legend { font-weight: 650; font-size: .9rem; padding: 0 .3rem; }
.lv-mg__acts { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin: .7rem 0 .2rem; }
.lv-mg__acts .lv-danger { margin-left: auto; }
.lv-mg__gl { list-style: none; margin: 0 0 .5rem; padding: 0; display: grid; gap: .3rem; }
.lv-mg__gl li { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem .6rem; padding: .35rem .55rem; border-radius: 9px; background: var(--lv-surface); font-size: .9rem; }
.lv-mg__gl li > b { flex: 1 1 10rem; }
.lv-mg__gl li > input { flex: 1 1 12rem; }
.lv-mg__gl .lv-check { display: inline-flex; gap: .3rem; align-items: center; }
.lv-mg__gadd, .lv-mg__absf { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.lv-mg__gadd > select:first-child, .lv-mg__gadd > input:first-child { flex: 1 1 14rem; }
.lv-mg__type { font-style: normal; font-weight: 700; }
.lv-mg__link { margin: .9rem 0 0; }
.lv-mg__times { list-style: none; padding: 0; margin: 0 0 .5rem; display: flex; flex-wrap: wrap; gap: .35rem; }
.lv-mg__times li { display: inline-flex; align-items: center; gap: .35rem; padding: .2rem .2rem .2rem .7rem; border-radius: 99px; background: var(--lv-surface); border: 1px solid var(--lv-border); font-size: .88rem; }
.lv-mg__tadd { display: flex; gap: .35rem; flex-wrap: wrap; align-items: center; margin: 0; }
.lv-mg__units { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; }
.lv-mg__req { border: 1px solid var(--lv-border); border-radius: 14px; padding: .9rem 1rem; margin: 0 0 .8rem; background: var(--lv-surface); }
.lv-mg__req header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1rem; margin-bottom: .5rem; }
.lv-mg__note { margin: 0 0 .6rem; font-style: italic; }
.lv-mg__log td:first-child { white-space: nowrap; }
.lv-mg__pager { display: flex; align-items: center; justify-content: center; gap: 1rem; margin: 1rem 0 0; font-size: .88rem; }
.lv-small { font-size: .82rem; }
@container (max-width: 700px) {
	.lv-mg__tbl thead { display: none; }
	.lv-mg__tbl, .lv-mg__tbl tbody, .lv-mg__tbl tr, .lv-mg__tbl td { display: block; }
	.lv-mg__tbl tr { padding: .55rem .7rem; border-bottom: 1px solid var(--lv-border); }
	.lv-mg__tbl td { padding: .1rem 0; border: 0; }
	.lv-mg__tbl td:empty { display: none; }
}
@media (prefers-color-scheme: dark) { .lv-mg__tag.is-cl { color: #93c5fd; background: color-mix(in srgb, #3b82f6 18%, transparent); } .lv-mg__inv { color: #fbbf24 !important; } }

/* 3.4 Für mich */
.lv-me { container-type: inline-size; }
.lv-me__hero { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1rem 2rem; margin-bottom: 1.3rem; }
.lv-me__hero h2 { margin: 0; font-size: clamp(1.5rem, 3.5vw, 2rem); }
.lv-me__hero p { margin: .2rem 0 0; }
.lv-me__hi { color: var(--lv-muted); font-size: .95rem; margin: 0 !important; }
.lv-me__go { display: flex; flex-wrap: wrap; gap: .5rem; }
.lv-me__go a { display: grid; padding: .55rem .85rem; border-radius: 12px; border: 1px solid var(--lv-border); background: var(--lv-surface); color: inherit; text-decoration: none; min-width: 9rem; transition: border-color .15s, transform .15s; }
.lv-me__go a:hover { border-color: var(--lv-accent); transform: translateY(-1px); }
.lv-me__go b { font-size: .92rem; }
.lv-me__go small { font-size: .74rem; color: var(--lv-muted); }
.lv-me__grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 1.1rem; align-items: start; }
.lv-me__side { display: grid; gap: 1.1rem; }
.lv-me__card { border: 1px solid var(--lv-border); border-radius: 16px; padding: 1rem 1.15rem; background: var(--lv-surface); }
.lv-me__card h3 { margin: 0 0 .5rem; font-size: 1.08rem; display: flex; align-items: center; gap: .5rem; }
.lv-me__card p { margin: .3rem 0; }
.lv-me__card--hl { border-color: color-mix(in srgb, #dc2626 35%, transparent); background: color-mix(in srgb, #dc2626 4%, transparent); }
.lv-me__main .lv-mg__chips { margin-bottom: .7rem; }
.lv-me__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.lv-me__mon { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--lv-muted); margin: .7rem 0 .1rem; }
.lv-me__mon:first-child { margin-top: 0; }
.lv-me__d { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr) auto; gap: .2rem .9rem; align-items: center; padding: .55rem .75rem .55rem .9rem; border-radius: 11px; background: var(--lv-bg, #fff); border: 1px solid var(--lv-border); position: relative; overflow: hidden; }
.lv-me__d::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--a); }
.lv-me__d.is-now { box-shadow: 0 0 0 2px color-mix(in srgb, var(--a) 45%, transparent); }
.lv-me__dd b, .lv-me__dw b { display: block; font-size: .9rem; }
.lv-me__dd small, .lv-me__dw small { display: block; font-size: .78rem; color: var(--lv-muted); }
.lv-me__dt { display: flex; gap: .4rem; align-items: center; }
.lv-me__dt i { font-style: normal; font-size: .7rem; font-weight: 700; color: var(--a); }
.lv-me__dt em { font-style: normal; font-size: .68rem; font-weight: 700; padding: .05rem .4rem; border-radius: 99px; background: var(--a); color: #fff; }
.lv-me__dt a { text-decoration: none; color: var(--lv-accent); font-weight: 700; padding: .1rem .3rem; border-radius: 6px; }
.lv-me__dt a:hover { background: var(--lv-accent-soft); }
.lv-me__empty { display: grid; gap: .3rem; padding: 1.2rem; border-radius: 12px; border: 1px dashed var(--lv-border-strong); text-align: center; }
.lv-me__empty span { color: var(--lv-muted); font-size: .88rem; }
.lv-me__abs, .lv-me__req, .lv-me__bel { list-style: none; margin: 0 0 .7rem; padding: 0; display: grid; gap: .3rem; }
.lv-me__abs li, .lv-me__bel li { display: flex; justify-content: space-between; align-items: center; gap: .6rem; padding: .4rem .6rem; border-radius: 9px; background: var(--lv-bg, #fff); border: 1px solid var(--lv-border); }
.lv-me__abs b, .lv-me__bel b, .lv-me__req b { display: block; font-size: .88rem; }
.lv-me__abs small, .lv-me__bel small, .lv-me__req small { display: block; font-size: .76rem; color: var(--lv-muted); }
.lv-me__req li { padding: .4rem .6rem; border-radius: 9px; background: var(--lv-bg, #fff); }
.lv-me__bel li { border-left: 4px solid var(--a); }
.lv-me__bel i { font-style: normal; font-size: .68rem; font-weight: 700; color: var(--lv-muted); white-space: nowrap; }
.lv-me__absf { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; align-items: end; }
.lv-me__absf label { display: grid; gap: .15rem; font-size: .76rem; font-weight: 600; }
.lv-me__absf input { font: inherit; font-size: .9rem; font-weight: 400; padding: .42rem .55rem; border-radius: 8px; border: 1px solid var(--lv-border-strong); background: transparent; color: inherit; min-width: 0; }
.lv-me__absn { grid-column: 1 / -1; }
.lv-me__absf .lv-btn { grid-column: 1 / -1; justify-self: start; }
.lv-me__ics { display: flex; flex-wrap: wrap; gap: .4rem; }
@container (max-width: 820px) { .lv-me__grid { grid-template-columns: 1fr; } }
@container (max-width: 520px) { .lv-me__d { grid-template-columns: 1fr auto; } .lv-me__dd { grid-column: 1 / -1; } .lv-me__dd b, .lv-me__dd small { display: inline; margin-right: .4rem; } }
@media (prefers-color-scheme: dark) { .lv-me__d, .lv-me__abs li, .lv-me__bel li, .lv-me__req li { background: color-mix(in srgb, currentColor 4%, transparent); } }
.lv-mg__badge[hidden] { display: none; }
.lv-mg__dlg h3, .lv-mg__dlg h4, .lv-mg h2, .lv-mg h3, .lv-me h2, .lv-me h3 { font-family: inherit; }
.lv-mg__plain { border: 0; padding: 0; margin: 0; min-width: 0; }
.lv-mg__plain[disabled] { opacity: .75; }
.lv-mg .lv-gd__set > .lv-check { display: flex; align-items: center; gap: .45rem; margin: .3rem 0; }
.lv-mg .lv-gd__set > .lv-check.lv-mg__ind { margin-left: 1.6rem; }
.lv-mg .lv-gd__set > p.lv-muted:first-of-type { margin-top: 0; }
.lv-mg__ta { width: 100%; font: inherit; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .85rem; padding: .6rem .7rem; border-radius: 10px; border: 1px solid var(--lv-border-strong); background: transparent; color: inherit; }
.lv-gem__ext, .lv-gd__ext { margin-left: auto; }
.lv-gd__snav .lv-gd__ext { margin: .4rem 0 0; border-top: 1px solid var(--lv-border); border-radius: 0 0 10px 10px; padding-top: .7rem; }
@container (max-width: 600px) { .lv-me__go { display: none; } }

/* 3.6 Wechsel planen */
.lv-rp__dlg { width: min(60rem, calc(100vw - 2rem)); }
.lv-rp { display: grid; gap: .7rem; }
.lv-rp__bar { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: flex-end; }
.lv-rp__bar .lv-check { display: inline-flex; gap: .4rem; align-items: center; font-size: .88rem; padding-bottom: .5rem; }
.lv-rp__wish { border: 1px solid var(--lv-border); border-radius: 12px; padding: .5rem .8rem; }
.lv-rp__wish summary { cursor: pointer; font-weight: 600; font-size: .92rem; }
.lv-rp__wish[open] summary { margin-bottom: .5rem; }
.lv-rp__ai { display: grid; gap: .35rem; margin-bottom: .6rem; }
.lv-rp__ai textarea, .lv-rp__add select, .lv-rp__add input { font: inherit; font-size: .9rem; padding: .45rem .6rem; border-radius: 9px; border: 1px solid var(--lv-border-strong); background: transparent; color: inherit; min-width: 0; }
.lv-rp__ai .lv-btn { justify-self: start; }
.lv-rp__add { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.lv-rp__rules { list-style: none; margin: 0 0 .5rem; padding: 0; display: flex; flex-wrap: wrap; gap: .3rem; }
.lv-rp__rules li { display: inline-flex; align-items: center; gap: .3rem; font-size: .82rem; padding: .15rem .2rem .15rem .6rem; border-radius: 99px; background: color-mix(in srgb, #dc2626 10%, transparent); }
.lv-rp__rules li.is-bevorzugt { background: color-mix(in srgb, #16a34a 12%, transparent); }
.lv-rp__rules small { color: var(--lv-muted); }
.lv-rp__rules .lv-ib { width: 1.5rem; height: 1.5rem; }
.lv-rp__tbl { max-height: 46vh; overflow: auto; border: 1px solid var(--lv-border); border-radius: 12px; transition: opacity .15s; }
.lv-rp__tbl.is-busy { opacity: .5; }
.lv-rp__tbl table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.lv-rp__tbl th { position: sticky; top: 0; background: var(--lv-dlg-bg, #fff); text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--lv-muted); padding: .45rem .7rem; border-bottom: 1px solid var(--lv-border); z-index: 1; }
.lv-rp__tbl td { padding: .4rem .7rem; border-bottom: 1px solid var(--lv-border); vertical-align: middle; }
.lv-rp__tbl tr:last-child td { border-bottom: 0; }
.lv-rp__tbl td:first-child { white-space: nowrap; font-weight: 600; }
.lv-rp__tbl select { font: inherit; font-size: .88rem; padding: .3rem .45rem; border-radius: 8px; border: 1px solid var(--lv-border-strong); background: transparent; color: inherit; }
.lv-rp__tbl td small { display: block; font-size: .72rem; color: var(--lv-muted); }
.lv-rp__tbl td span { display: inline-block; font-size: .74rem; margin: 0 .3rem .15rem 0; padding: .05rem .45rem; border-radius: 6px; background: var(--lv-surface); }
.lv-rp__tbl tr.is-new td:first-child { box-shadow: inset 3px 0 0 var(--lv-accent); }
.lv-rp__tbl tr.is-warn td span { background: color-mix(in srgb, #f59e0b 16%, transparent); }
.lv-rp__sum { display: flex; flex-wrap: wrap; gap: .4rem; }
.lv-rp__sum span { font-size: .82rem; padding: .25rem .6rem; border-radius: 9px; background: var(--lv-surface); border: 1px solid var(--lv-border); }
.lv-rp__sum small { color: var(--lv-muted); }
.lv-gem__hint--warn { background: color-mix(in srgb, #f59e0b 15%, transparent) !important; }
.lv-mg__nolead { font-size: .76rem; font-weight: 700; color: #b45309; }
.lv-mg__warn { margin: .2rem 0 .6rem; padding: .5rem .75rem; border-radius: 10px; background: color-mix(in srgb, #f59e0b 15%, transparent); font-size: .88rem; }
.lv-mg__lead { color: #d97706; }
.lv-mg__tog { display: flex !important; gap: .5rem; align-items: flex-start; margin: 0 0 .6rem; font-size: .9rem; }
.lv-mg__rot .lv-mg__fs { margin-top: .4rem; }
.lv-mg__rot textarea { width: 100%; }
.lv-mg__rot > fieldset > .lv-check { display: flex; gap: .45rem; align-items: center; margin: .2rem 0 .5rem; font-size: .88rem; }
.lv-mg__gl li > small { flex: none; }
@media (prefers-color-scheme: dark) { .lv-mg__nolead { color: #fbbf24; } }
.lv-mg [hidden], .lv-mg__dlg [hidden], .lv-rp [hidden] { display: none !important; }

/* 3.6 Anleitungen: Einblick */
.lv-guide__peek { margin: 0 0 1.4rem; padding: 1rem 1.15rem; border-radius: 14px; background: linear-gradient(120deg, color-mix(in srgb, var(--lv-accent) 10%, transparent), color-mix(in srgb, #7c3aed 8%, transparent)); border: 1px solid color-mix(in srgb, var(--lv-accent) 25%, transparent); }
.lv-guide__peek strong { display: inline-block; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--lv-accent); margin-bottom: .25rem; }
.lv-guide__peek p { margin: .2rem 0 .5rem; }
.lv-guide__peek p:last-child { margin-bottom: 0; }
.lv-guide__peek .lv-btn { color: #fff; text-decoration: none; }
.lv-guide__peek .lv-btn--ghost { color: var(--lv-accent); }
.lv-guide__tag { display: inline-block; margin-left: .45rem; vertical-align: 2px; font-style: normal; font-size: .66rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: .1rem .45rem; border-radius: 99px; background: color-mix(in srgb, #7c3aed 14%, transparent); color: #6d28d9; }
.lv-guide__tag.is-mine { background: color-mix(in srgb, #16a34a 15%, transparent); color: #166534; }
@media (prefers-color-scheme: dark) { .lv-guide__tag { color: #c4b5fd; } .lv-guide__tag.is-mine { color: #86efac; } }
