/* Farben kommen aus Einstellungen → Design (inline als CSS-Variablen auf .bmd / .bmd-bar). */
.bmd, .bmd-bar {
	--bmd-accent: #1a1a1a;
	--bmd-accent-text: #ffffff;
	--bmd-accent-hover: #444444;
	--bmd-text: #1a1a1a;
	--bmd-muted: #666666;
	--bmd-card-bg: #ffffff;
	--bmd-img-bg: #f3f3f3;
	--bmd-border: #e4e4e4;
	--bmd-notice-bg: #fafafa;
	--bmd-badge-gen-bg: #1a1a1a;
	--bmd-badge-gen-text: #ffffff;
	--bmd-badge-mod-bg: #ffffff;
	--bmd-badge-mod-text: #1a1a1a;
	--bmd-img-fit: contain;
	--bmd-radius: 2px;
	box-sizing: border-box;
	color: var(--bmd-text);
}
.bmd *, .bmd *::before, .bmd *::after, .bmd-bar *, .bmd-bar *::before, .bmd-bar *::after { box-sizing: inherit; }

/* Theme-Effekte auf Bildern (Enfold: Overlay, Rahmen, Schatten auf a img) innerhalb des Portals abschalten */
.bmd a img, .bmd img { border: 0 !important; box-shadow: none !important; outline: 0 !important; background: transparent !important; }
.bmd .image-overlay, .bmd .image-overlay-inside, .bmd .avia-image-overlay-wrap { display: none !important; }
.bmd a, .bmd a:hover, .bmd a:focus { box-shadow: none !important; }
.bmd a::after, .bmd a::before { display: none !important; }

.bmd-overview, .bmd-grid { display: grid; gap: 24px; }
.bmd-cols-2 { grid-template-columns: repeat(2, 1fr); }
.bmd-cols-3 { grid-template-columns: repeat(3, 1fr); }
.bmd-cols-4 { grid-template-columns: repeat(4, 1fr); }
.bmd-cols-5 { grid-template-columns: repeat(5, 1fr); }
.bmd-cols-6 { grid-template-columns: repeat(6, 1fr); }
@media (max-width: 989px) { .bmd-cols-4, .bmd-cols-5, .bmd-cols-6 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767px) { .bmd-overview, .bmd-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 14px; } }

/* Übersicht – Kacheln als Karten, gleiche Optik wie die Dateikarten */
.bmd .bmd-tile { border: 1px solid var(--bmd-border); background: var(--bmd-card-bg); display: flex; flex-direction: column; border-radius: var(--bmd-radius); overflow: hidden; transition: box-shadow .15s, border-color .15s; }
.bmd .bmd-tile:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); border-color: var(--bmd-accent); }
.bmd .bmd-tile-img, .bmd .bmd-tile-img:visited { display: block; aspect-ratio: 3/2; background: var(--bmd-img-bg); overflow: hidden; text-decoration: none !important; }
.bmd .bmd-tile-img img { width: 100%; height: 100%; object-fit: var(--bmd-img-fit); display: block; transition: transform .3s; }
.bmd .bmd-tile:hover .bmd-tile-img img { transform: scale(1.03); }
.bmd .bmd-tile-body { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; gap: 0 8px; padding: 10px 12px; align-items: center; }
.bmd .bmd-tile-title, .bmd .bmd-tile-title:visited { grid-column: 1; display: block; font-weight: 600; color: var(--bmd-text) !important; text-decoration: none !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bmd .bmd-tile-title:hover { color: var(--bmd-accent) !important; }
.bmd .bmd-tile-meta { grid-column: 1; }
.bmd .bmd-tile-meta, .bmd .bmd-meta, .bmd .bmd-card-meta { color: var(--bmd-muted); font-size: .85em; }

/* Gruppe */
.bmd .bmd-head { margin-bottom: 24px; }
.bmd .bmd-title { margin: 0 0 4px; color: var(--bmd-text); }
.bmd .bmd-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }

/* Buttons (gegen Theme-Overrides abgesichert) */
.bmd .bmd-btn, .bmd-bar .bmd-btn, .bmd .bmd-btn:visited, .bmd-bar .bmd-btn:visited { display: inline-block; padding: 10px 18px; border: 1px solid var(--bmd-accent); background: var(--bmd-card-bg); color: var(--bmd-accent) !important; font: inherit; font-size: .9em; font-weight: 500; cursor: pointer; text-decoration: none !important; line-height: 1.3; border-radius: var(--bmd-radius); box-shadow: none; text-shadow: none; margin: 0; transition: background .15s, color .15s; }
.bmd .bmd-btn:hover, .bmd-bar .bmd-btn:hover, .bmd .bmd-btn:focus, .bmd-bar .bmd-btn:focus { background: var(--bmd-img-bg); color: var(--bmd-accent) !important; border-color: var(--bmd-accent); }
.bmd .bmd-btn-primary, .bmd-bar .bmd-btn-primary, .bmd .bmd-btn-primary:visited, .bmd-bar .bmd-btn-primary:visited { background: var(--bmd-accent); color: var(--bmd-accent-text) !important; border-color: var(--bmd-accent); }
.bmd .bmd-btn-primary:hover, .bmd-bar .bmd-btn-primary:hover, .bmd .bmd-btn-primary:focus, .bmd-bar .bmd-btn-primary:focus { background: var(--bmd-accent-hover); color: var(--bmd-accent-text) !important; border-color: var(--bmd-accent-hover); }
.bmd .bmd-btn[disabled], .bmd-bar .bmd-btn[disabled] { opacity: .5; cursor: wait; }

/* Karten */
.bmd .bmd-card { border: 1px solid var(--bmd-border); background: var(--bmd-card-bg); display: flex; flex-direction: column; border-radius: var(--bmd-radius); overflow: hidden; }
.bmd .bmd-card-img { position: relative; display: block; aspect-ratio: 4/3; background: var(--bmd-img-bg); cursor: pointer; overflow: hidden; margin: 0; }
.bmd .bmd-card-img img { width: 100%; height: 100%; object-fit: var(--bmd-img-fit); display: block; }
.bmd .bmd-check { position: absolute; opacity: 0; width: 0; height: 0; }
.bmd .bmd-checkmark { position: absolute; top: 10px; left: 10px; width: 24px; height: 24px; border: 2px solid #fff; background: rgba(0,0,0,.35); border-radius: 3px; z-index: 2; transition: background .15s; }
.bmd .bmd-checkmark::after { content: ""; position: absolute; left: 7px; top: 2px; width: 6px; height: 12px; border: solid #fff; border-width: 0 3px 3px 0; transform: rotate(45deg); opacity: 0; }
.bmd .bmd-check:checked ~ .bmd-checkmark { background: var(--bmd-accent); border-color: var(--bmd-accent); }
.bmd .bmd-check:checked ~ .bmd-checkmark::after { opacity: 1; }
.bmd .bmd-check:focus-visible ~ .bmd-checkmark { outline: 2px solid #4a90e2; outline-offset: 2px; }
.bmd .bmd-card.is-selected { border-color: var(--bmd-accent); box-shadow: 0 0 0 1px var(--bmd-accent); }
.bmd .bmd-card-body { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; gap: 0 8px; padding: 10px 12px; align-items: center; }
.bmd .bmd-card-title { grid-column: 1; font-size: .9em; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--bmd-text); }
.bmd .bmd-card-meta { grid-column: 1; }
.bmd .bmd-dl, .bmd .bmd-dl:visited { grid-column: 2; grid-row: 1 / 3; display: flex; width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid var(--bmd-border); border-radius: 50%; color: var(--bmd-accent) !important; text-decoration: none !important; background: var(--bmd-card-bg); }
.bmd .bmd-dl:hover { background: var(--bmd-accent); color: var(--bmd-accent-text) !important; border-color: var(--bmd-accent); }
.bmd .bmd-ficon { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; font-weight: 700; font-size: 1.6em; letter-spacing: .08em; color: var(--bmd-muted); }
.bmd .bmd-ficon-pdf { color: #c0392b; }
.bmd .bmd-ficon-zip { color: #2c6fbb; }

/* Sticky-Leiste */
.bmd-bar { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); z-index: 9999; display: flex; align-items: center; gap: 12px; padding: 12px 18px; background: var(--bmd-card-bg); border: 1px solid var(--bmd-border); box-shadow: 0 6px 24px rgba(0,0,0,.18); border-radius: 4px; max-width: calc(100% - 32px); }
.bmd-bar[hidden] { display: none; }
.bmd-bar-text { font-weight: 600; white-space: nowrap; color: var(--bmd-text); }
@media (max-width: 600px) { .bmd-bar { flex-wrap: wrap; justify-content: center; bottom: 10px; } }

/* Zurück-Link */
.bmd .bmd-back, .bmd .bmd-back:visited { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 18px; font-size: .9em; font-weight: 500; color: var(--bmd-text) !important; text-decoration: none !important; border-bottom: 1px solid transparent; }
.bmd .bmd-back:hover { border-bottom-color: var(--bmd-text); }
.bmd .bmd-back svg { transition: transform .15s; }
.bmd .bmd-back:hover svg { transform: translateX(-3px); }
.bmd .bmd-foot { margin: 32px 0 0; }
.bmd .bmd-foot .bmd-back { margin-bottom: 0; }

/* KI-Kennzeichnung */
.bmd .bmd-ai-tag { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; line-height: 1; padding: 4px 6px; border-radius: var(--bmd-radius); letter-spacing: .03em; white-space: nowrap; border: 1px solid var(--bmd-badge-mod-text); color: var(--bmd-badge-mod-text) !important; background: var(--bmd-badge-mod-bg); }
.bmd .bmd-ai-tag b, .bmd .bmd-ai-tag strong { font-weight: 800; color: inherit !important; }
.bmd .bmd-ai-tag-gen { background: var(--bmd-badge-gen-bg); color: var(--bmd-badge-gen-text) !important; border-color: var(--bmd-badge-gen-bg); }
.bmd .bmd-ai-tag-gen b { color: var(--bmd-badge-gen-text) !important; }
.bmd .bmd-card-body .bmd-ai-badges { grid-column: 1; display: flex; gap: 4px; margin-top: 6px; }
.bmd .bmd-card-body .bmd-ai-tag { position: relative; cursor: help; }
.bmd .bmd-ai-tag:focus-visible { outline: 2px solid #4a90e2; outline-offset: 2px; }
.bmd .bmd-ai-pop { display: none; position: absolute; left: 0; bottom: calc(100% + 10px); z-index: 20; width: 300px; max-width: 80vw; padding: 12px 14px; background: var(--bmd-card-bg); color: var(--bmd-text); border: 1px solid var(--bmd-text); box-shadow: 0 8px 24px rgba(0,0,0,.18); font-size: 12px; line-height: 1.45; white-space: normal; letter-spacing: 0; font-weight: 400; text-align: left; border-radius: 3px; }
.bmd .bmd-ai-pop::after { content: ""; position: absolute; left: 14px; top: 100%; border: 7px solid transparent; border-top-color: var(--bmd-text); }
.bmd .bmd-ai-pop::before { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 14px; }
.bmd .bmd-ai-pop strong { display: block; margin-bottom: 4px; font-size: 12px; color: var(--bmd-text); }
.bmd .bmd-ai-pop a { display: inline-block; margin-top: 8px; padding: 4px 0; font-weight: 600; color: var(--bmd-text) !important; text-decoration: underline !important; }
.bmd .bmd-ai-tag.is-open .bmd-ai-pop, .bmd .bmd-ai-tag.is-hover .bmd-ai-pop { display: block; }
.bmd.no-js .bmd-ai-tag:hover .bmd-ai-pop, .bmd.no-js .bmd-ai-tag:focus-within .bmd-ai-pop { display: block; }
.bmd .bmd-ai-tag.is-open { outline: 2px solid var(--bmd-text); outline-offset: 1px; }
.bmd .bmd-ai-pop { left: var(--bmd-pop-shift, 0px); }
.bmd .bmd-ai-pop::after { left: calc(14px - var(--bmd-pop-shift, 0px)); }
/* Bei offenem Popover darf die Karte nicht abschneiden */
.bmd .bmd-card.bmd-pop-open, .bmd .bmd-card.bmd-pop-open .bmd-card-body { overflow: visible; }
.bmd .bmd-card.bmd-pop-open { z-index: 30; position: relative; }
.bmd .bmd-ai-notice { display: flex; gap: 14px; align-items: flex-start; padding: 14px 18px; margin: 0 0 24px; border: 1px solid var(--bmd-text); background: var(--bmd-notice-bg); border-radius: var(--bmd-radius); }
.bmd .bmd-grid + .bmd-ai-notice { margin: 24px 0 0; }
.bmd .bmd-ai-notice-badge { flex: 0 0 auto; font-weight: 800; font-size: 1em; padding: 5px 8px; border: 2px solid var(--bmd-text); line-height: 1; color: var(--bmd-text); }
.bmd .bmd-ai-notice-badge b { color: inherit !important; }
.bmd .bmd-ai-notice-body p { margin: 0 0 8px; font-size: .8em; line-height: 1.5; color: var(--bmd-text); }
.bmd .bmd-ai-notice-body p:last-of-type { margin-bottom: 0; }
.bmd .bmd-ai-notice-body .bmd-ai-tag { margin-right: 6px; vertical-align: 1px; }
.bmd .bmd-ai-notice-body a { display: inline-block; margin-top: 8px; font-size: .8em; font-weight: 600; color: var(--bmd-text) !important; text-decoration: underline !important; }
