/*
 * Front-end Redaktion at /redaktion/ (plugin busol-redaktion).
 *
 * Loaded only on Redaktion pages by Busol_Redaktion_Frontend::render() (handle
 * busol-redaktion-front). Styles the markup of includes/class-views.php and
 * includes/class-news.php (br-* classes) and the shared building blocks used by the
 * modules of busol-produkte. Uses the theme's colour and spacing variables, so light
 * and dark mode follow the theme automatically. Behaviour: assets/frontend.js,
 * assets/news.js.
 */

.br-main [hidden] {
	display: none !important;
}
.br-inline {
	display: inline;
	margin: 0;
}
.br-muted {
	color: var(--muted);
	margin: 0.3em 0 0;
}
.br-small {
	color: var(--muted);
	font-size: 0.86rem;
	margin: 0.5em 0 0;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.br-small .ico {
	width: 14px;
	height: 14px;
	flex: none;
}
.br-h2 {
	font: 800 clamp(1.3rem, 2.4vw, 1.6rem)/1.2 var(--font-head);
	color: var(--ink);
	margin: 0;
	letter-spacing: -0.02em;
}
.br-h3 {
	font: 700 1.05rem/1.3 var(--font-head);
	color: var(--ink);
	margin: 1.6em 0 0.8em;
}
.br-empty {
	color: var(--muted);
	padding: 18px 4px;
	margin: 0;
}

/* ---------- Header (hero, tabs) ---------- */
.br-hero {
	position: relative;
	background: linear-gradient(
		125deg,
		var(--brand-700, #0f3566) 0%,
		var(--navy) 70%
	);
	color: #fff;
	overflow: hidden;
}
.br-hero__bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(
			600px 300px at 85% -20%,
			rgba(110, 166, 236, 0.35),
			transparent 70%
		),
		radial-gradient(
			500px 260px at 0% 120%,
			rgba(110, 166, 236, 0.18),
			transparent 70%
		);
	pointer-events: none;
}
.br-hero__inner {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	padding-top: clamp(28px, 5vw, 48px);
	padding-bottom: 22px;
}
.br-hero .eyebrow {
	color: var(--brand-300, #8fbdf3);
	margin: 0 0 0.4em;
}
.br-hero h1 {
	font: 800 clamp(1.7rem, 4vw, 2.5rem)/1.1 var(--font-head);
	margin: 0;
	letter-spacing: -0.03em;
	color: #fff;
}
.br-hero h1 + p {
	margin: 0.5em 0 0;
	color: #c9d6e8;
}
.br-hero__actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.br-tabs {
	position: relative;
	display: flex;
	gap: 4px;
	overflow-x: auto;
	scrollbar-width: none;
	padding-bottom: 0;
}
.br-tabs::-webkit-scrollbar {
	display: none;
}
.br-tabs a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 16px 14px;
	color: #c9d6e8;
	text-decoration: none;
	font: 600 0.95rem/1 var(--font-head);
	white-space: nowrap;
	border-radius: 12px 12px 0 0;
	transition:
		color 0.2s,
		background-color 0.2s;
}
.br-tabs a .ico {
	width: 17px;
	height: 17px;
}
.br-tabs a:hover {
	color: #fff;
	background: rgba(255, 255, 255, 0.06);
}
.br-tabs a.is-active {
	color: var(--ink);
	background: var(--bg);
}
.br-count {
	display: inline-grid;
	place-items: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 99px;
	background: #e9a23b;
	color: #2a1900;
	font: 800 0.75rem/1 var(--font-head);
}
.br-count--nachrichten {
	background: #ff5a4f;
	color: #fff;
	animation: br-pulse 2.4s var(--ease) infinite;
}
@keyframes br-pulse {
	0%,
	100% {
		box-shadow: 0 0 0 0 rgba(255, 90, 79, 0.5);
	}
	50% {
		box-shadow: 0 0 0 6px rgba(255, 90, 79, 0);
	}
}

.br-main {
	padding: clamp(28px, 4vw, 44px) 0 clamp(56px, 8vw, 96px);
	min-height: 50vh;
}

/* ---------- Buttons ---------- */
.br-btn {
	--b: var(--brand);
	--f: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 0.72em 1.15em;
	border: 0;
	border-radius: 12px;
	background: var(--b);
	color: var(--f);
	font: 700 0.95rem/1.1 var(--font-head);
	text-decoration: none;
	cursor: pointer;
	transition:
		transform 0.2s var(--ease),
		box-shadow 0.25s,
		background-color 0.2s,
		opacity 0.2s;
	box-shadow: 0 10px 24px -14px rgba(27, 86, 158, 0.7);
}
.br-btn:hover {
	color: var(--f);
	transform: translateY(-1px);
	box-shadow: 0 14px 30px -14px rgba(27, 86, 158, 0.8);
}
.br-btn:active {
	transform: scale(0.98);
}
.br-btn .ico {
	width: 17px;
	height: 17px;
	flex: none;
}
.br-btn--ghost {
	--b: var(--brand-100);
	--f: var(--brand);
	box-shadow: none;
}
.br-btn--ghost:hover {
	box-shadow: none;
	background: color-mix(in srgb, var(--brand) 18%, transparent);
}
.br-btn--glass {
	--b: rgba(255, 255, 255, 0.1);
	--f: #fff;
	box-shadow: none;
	border: 1px solid rgba(255, 255, 255, 0.14);
}
.br-btn--glass:hover {
	--b: rgba(255, 255, 255, 0.18);
	box-shadow: none;
}
.br-btn--ok {
	--b: var(--ok);
	box-shadow: none;
}
.br-btn--sm {
	padding: 0.5em 0.85em;
	font-size: 0.86rem;
	border-radius: 10px;
}
.br-btn--lg {
	padding: 0.95em 1.3em;
	font-size: 1.02rem;
}
.br-btn--block {
	width: 100%;
}
.br-btn[disabled] {
	opacity: 0.5;
	pointer-events: none;
}
:root[data-theme="dark"]
	.br-btn:not(.br-btn--ghost):not(.br-btn--glass):not(.br-btn--ok) {
	--b: #2f6fbf;
}
.br-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 0;
	border: 0;
	background: none;
	color: var(--brand);
	font: 600 0.92rem/1.2 var(--font-body);
	cursor: pointer;
	text-decoration: none;
}
.br-link:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.br-link .ico {
	width: 16px;
	height: 16px;
}
.br-link--danger {
	color: var(--danger);
}
:root[data-theme="dark"] .br-link--danger {
	color: #ff8a80;
}
.br-icon {
	display: inline-grid;
	place-items: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: var(--surface);
	color: var(--muted);
	cursor: pointer;
	transition:
		color 0.2s,
		border-color 0.2s,
		background-color 0.2s,
		transform 0.2s var(--ease);
	text-decoration: none;
}
.br-icon .ico {
	width: 17px;
	height: 17px;
}
.br-icon:hover {
	color: var(--brand);
	border-color: color-mix(in srgb, var(--brand) 40%, var(--line));
	background: var(--brand-50);
}
.br-icon--danger:hover {
	color: var(--danger);
	border-color: color-mix(in srgb, var(--danger) 40%, var(--line));
	background: color-mix(in srgb, var(--danger) 7%, transparent);
}
.br-icon[disabled] {
	opacity: 0.3;
	pointer-events: none;
}
.br-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 16px;
	color: var(--muted);
	font-weight: 600;
	text-decoration: none;
}
.br-back .ico {
	width: 16px;
	height: 16px;
	transform: rotate(180deg);
	transition: transform 0.25s var(--ease);
}
.br-back:hover {
	color: var(--brand);
}
.br-back:hover .ico {
	transform: rotate(180deg) translateX(3px);
}

/* ---------- Switches ---------- */
.br-switch {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 6px 4px;
	border: 0;
	background: none;
	cursor: pointer;
	color: var(--muted);
	font: 700 0.88rem/1 var(--font-head);
	white-space: nowrap;
}
.br-switch input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.br-switch__track {
	position: relative;
	width: 42px;
	height: 24px;
	border-radius: 24px;
	background: var(--line-strong);
	transition: background-color 0.25s;
	flex: none;
}
.br-switch__track span {
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
	transition: transform 0.35s var(--ease-spring);
}
.br-switch.is-on {
	color: var(--ok);
}
.br-switch.is-on .br-switch__track {
	background: var(--ok);
}
.br-switch.is-on .br-switch__track span {
	transform: translateX(18px);
}
.br-switch:focus-visible .br-switch__track,
.br-switch input:focus-visible + .br-switch__track {
	box-shadow: var(--ring);
}
.br-switch.is-busy {
	opacity: 0.6;
	pointer-events: none;
}
.br-switch__lbl {
	min-width: 3.6em;
}

/* ---------- Cards ---------- */
.br-card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: clamp(18px, 3vw, 26px);
	box-shadow: var(--shadow-sm);
}
.br-card--flush {
	padding: 0;
	overflow: hidden;
}
.br-card--quiet {
	background: var(--surface-2);
	box-shadow: none;
	display: grid;
	justify-items: start;
	gap: 2px;
}
.br-card__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 8px;
}
.br-card__head h2 {
	font: 700 1.1rem/1.3 var(--font-head);
	margin: 0;
	color: var(--ink);
}
.br-card__head a {
	font-weight: 600;
	font-size: 0.92rem;
}
.br-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 18px;
	flex-wrap: wrap;
	margin-bottom: 22px;
}
.br-head > div {
	max-width: 720px;
}
.br-empty-state {
	display: grid;
	justify-items: center;
	text-align: center;
	gap: 8px;
	padding: 48px 24px;
}
.br-empty-state > .ico {
	width: 40px;
	height: 40px;
	color: var(--brand);
}
.br-empty-state h3 {
	margin: 0;
	font: 700 1.2rem/1.3 var(--font-head);
	color: var(--ink);
}

/* ---------- Overview ---------- */
.br-kpis {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
	margin-bottom: 36px;
}
.br-kpi {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto auto;
	column-gap: 14px;
	padding: 22px;
	border-radius: var(--radius);
	background: var(--surface);
	border: 1px solid var(--line);
	text-decoration: none;
	color: var(--text);
	box-shadow: var(--shadow-sm);
	transition:
		transform 0.3s var(--ease),
		box-shadow 0.3s,
		border-color 0.3s;
	overflow: hidden;
}
.br-kpi::after {
	content: "";
	position: absolute;
	right: -40px;
	top: -40px;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	background: radial-gradient(
		circle,
		color-mix(in srgb, var(--brand) 14%, transparent),
		transparent 70%
	);
	transition: transform 0.5s var(--ease);
}
.br-kpi:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow);
	border-color: color-mix(in srgb, var(--brand) 30%, var(--line));
	color: var(--text);
}
.br-kpi:hover::after {
	transform: scale(1.4);
}
.br-kpi__ico {
	grid-row: 1 / 4;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 14px;
	background: linear-gradient(
		140deg,
		var(--brand),
		var(--brand-700, #0f3566)
	);
	color: #fff;
}
.br-kpi__ico .ico {
	width: 22px;
	height: 22px;
}
.br-kpi strong {
	font: 800 2rem/1 var(--font-head);
	color: var(--ink);
	letter-spacing: -0.03em;
}
.br-kpi span:not(.br-kpi__ico) {
	font-weight: 600;
	color: var(--ink);
}
.br-kpi small {
	color: var(--muted);
}
.br-kpi--hot .br-kpi__ico {
	background: linear-gradient(140deg, #ff6b5e, #c0392b);
}

.br-quick {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 12px;
	margin: 14px 0 36px;
}
.br-quick--inline {
	margin: 0 0 8px;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}
.br-quick__item {
	--q: var(--brand);
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border-radius: 14px;
	border: 1px dashed color-mix(in srgb, var(--q) 45%, var(--line));
	background: color-mix(in srgb, var(--q) 6%, var(--surface));
	color: var(--ink);
	text-decoration: none;
	transition:
		transform 0.25s var(--ease),
		background-color 0.25s,
		border-style 0.2s;
}
.br-quick__item > .ico {
	width: 36px;
	height: 36px;
	padding: 8px;
	border-radius: 10px;
	background: var(--q);
	color: #fff;
	flex: none;
}
.br-quick__item span {
	display: grid;
}
.br-quick__item small {
	color: var(--muted);
	font-size: 0.85rem;
}
.br-quick__item:hover {
	transform: translateY(-2px);
	border-style: solid;
	background: color-mix(in srgb, var(--q) 11%, var(--surface));
	color: var(--ink);
}
.br-quick__item--warn {
	--q: #d48a1f;
}
.br-quick__item--alert {
	--q: #c0392b;
}
.br-cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
	gap: 18px;
}
@media (max-width: 420px) {
	.br-cols {
		grid-template-columns: 1fr;
	}
}

/* ---------- Lists (job postings) ---------- */
.br-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}
.br-item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 14px 12px 10px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 14px;
	box-shadow: var(--shadow-sm);
	transition:
		box-shadow 0.25s,
		border-color 0.25s,
		opacity 0.3s,
		transform 0.35s var(--ease);
}
.br-item:hover {
	box-shadow: var(--shadow);
	border-color: color-mix(in srgb, var(--brand) 25%, var(--line));
}
.br-item.is-off .br-item__main strong {
	color: var(--muted);
}
.br-item.is-moving {
	transform: scale(1.01);
	box-shadow: var(--shadow-lg);
}
.br-order {
	display: grid;
	gap: 2px;
}
.br-order .br-icon {
	width: 28px;
	height: 22px;
	border-radius: 7px;
	border-color: transparent;
	background: none;
}
.br-order .br-up .ico {
	transform: rotate(180deg);
}
.br-item__main {
	flex: 1;
	min-width: 0;
	display: grid;
	gap: 6px;
	text-decoration: none;
	color: inherit;
}
.br-item__main strong {
	font: 700 1.05rem/1.3 var(--font-head);
	color: var(--ink);
}
.br-item__main:hover strong {
	color: var(--brand);
}
.br-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	color: var(--muted);
	font-size: 0.86rem;
}
.br-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 10px;
	border-radius: 99px;
	background: var(--brand-100);
	color: var(--brand);
	font: 700 0.78rem/1.2 var(--font-head);
}
.br-chip .ico {
	width: 13px;
	height: 13px;
}
.br-chip--soft {
	background: var(--bg-alt);
	color: var(--muted);
}
.br-item__actions {
	display: flex;
	gap: 6px;
}
@media (max-width: 680px) {
	.br-item {
		flex-wrap: wrap;
	}
	.br-item__main {
		flex-basis: calc(100% - 60px);
	}
	.br-item > .br-inline {
		margin-left: 42px;
	}
	.br-item__actions {
		margin-left: auto;
	}
}

/* ---------- Forms ---------- */
.br-form {
	display: grid;
	gap: 16px;
}
.br-form__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}
.br-form__bar {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	padding-top: 6px;
}
.br-field {
	display: grid;
	gap: 6px;
	margin: 0;
}
.br-field > span {
	font: 700 0.9rem/1.3 var(--font-head);
	color: var(--ink);
}
.br-field > span em {
	font: 400 0.84rem/1.3 var(--font-body);
	color: var(--muted);
	font-style: normal;
	margin-left: 4px;
}
.br-field input:not([type="checkbox"]):not([type="radio"]),
.br-field textarea,
.br-field select,
.br-search input {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid var(--line-strong);
	border-radius: 12px;
	background: var(--surface-2);
	color: var(--ink);
	font: 400 1rem/1.45 var(--font-body);
	transition:
		border-color 0.2s,
		box-shadow 0.2s,
		background-color 0.2s;
}
.br-field textarea {
	resize: vertical;
	min-height: 64px;
}
.br-field input:focus,
.br-field textarea:focus,
.br-field select:focus,
.br-search input:focus {
	outline: 0;
	border-color: var(--brand);
	box-shadow: var(--ring);
	background: var(--surface);
}
.br-field input::placeholder,
.br-field textarea::placeholder {
	color: color-mix(in srgb, var(--muted) 70%, transparent);
}
.br-field--pw {
	position: relative;
}
.br-pw {
	position: absolute;
	right: 8px;
	bottom: 7px;
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: 9px;
	background: none;
	color: var(--muted);
	cursor: pointer;
}
.br-pw .ico {
	width: 18px;
	height: 18px;
}
.br-pw:hover,
.br-pw.is-on {
	color: var(--brand);
	background: var(--brand-50);
}
.br-grid2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
@media (max-width: 640px) {
	.br-grid2 {
		grid-template-columns: 1fr;
	}
}
.br-check {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	color: var(--text);
}
.br-check input {
	width: 18px;
	height: 18px;
	accent-color: var(--brand);
}
.br-alert {
	margin: 0 0 4px;
	padding: 12px 14px;
	border-radius: 12px;
	background: var(--brand-50);
	color: var(--brand);
	font-weight: 600;
}
.br-alert--err {
	background: color-mix(in srgb, var(--danger) 9%, transparent);
	color: var(--danger);
}
:root[data-theme="dark"] .br-alert--err {
	color: #ff8a80;
}

/* Editor with preview */
.br-editor {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: 24px;
	align-items: start;
}
.br-preview {
	position: sticky;
	top: calc(var(--header-h, 64px) + 24px);
}
.br-preview__label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 10px;
	color: var(--muted);
	font: 700 0.8rem/1 var(--font-head);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.br-preview__label .ico {
	width: 15px;
	height: 15px;
}
.br-preview .bf-job {
	box-shadow: var(--shadow-lg);
}
.br-preview .bf-job__head {
	cursor: default;
}
.br-preview [data-p]:empty {
	display: none;
}
.br-preview .bf-job__inner {
	max-height: 70vh;
	overflow: auto;
}
@media (max-width: 980px) {
	.br-editor {
		grid-template-columns: 1fr;
	}
	.br-preview {
		position: static;
	}
}

/* ---------- Messages (Nachrichten) ---------- */
.br-search {
	position: relative;
	min-width: min(320px, 100%);
}
.br-search .ico {
	position: absolute;
	left: 13px;
	top: 50%;
	width: 18px;
	height: 18px;
	transform: translateY(-50%);
	color: var(--muted);
}
.br-search input {
	padding-left: 40px;
}
.br-filter {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	margin-bottom: 14px;
}
.br-filter a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border-radius: 99px;
	border: 1px solid var(--line);
	background: var(--surface);
	color: var(--text);
	font: 600 0.9rem/1 var(--font-head);
	text-decoration: none;
	transition:
		background-color 0.2s,
		color 0.2s,
		border-color 0.2s;
}
.br-filter a b {
	font-weight: 800;
	color: var(--muted);
	font-size: 0.8rem;
}
.br-filter a:hover {
	border-color: var(--brand);
	color: var(--brand);
}
.br-filter a.is-active {
	background: var(--brand);
	border-color: var(--brand);
	color: #fff;
}
.br-filter a.is-active b {
	color: rgba(255, 255, 255, 0.8);
}
.br-inbox {
	list-style: none;
	margin: 0;
	padding: 0;
}
.br-msg + .br-msg {
	border-top: 1px solid var(--line);
}
.br-msg a {
	position: relative;
	display: flex;
	gap: 14px;
	padding: 16px 20px;
	text-decoration: none;
	color: var(--text);
	transition: background-color 0.2s;
}
.br-msg a:hover {
	background: var(--brand-50);
	color: var(--text);
}
.br-msg.is-new a::before {
	content: "";
	position: absolute;
	left: 7px;
	top: 50%;
	width: 7px;
	height: 7px;
	margin-top: -3px;
	border-radius: 50%;
	background: var(--brand);
}
.br-msg.is-new strong {
	color: var(--ink);
	font-weight: 800;
}
.br-msg.is-done {
	opacity: 0.7;
}
.br-inbox--compact .br-msg a {
	padding: 12px 6px 12px 16px;
	border-radius: 10px;
}
.br-inbox--compact .br-msg.is-new a::before {
	left: 2px;
}
.br-msg__body {
	flex: 1;
	min-width: 0;
	display: grid;
	gap: 4px;
}
.br-msg__top {
	display: flex;
	align-items: baseline;
	gap: 8px;
	min-width: 0;
}
.br-msg__top strong {
	font: 700 1rem/1.3 var(--font-head);
	color: var(--ink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.br-msg__firm {
	color: var(--muted);
	font-size: 0.9rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.br-msg__top time {
	margin-left: auto;
	color: var(--muted);
	font-size: 0.84rem;
	white-space: nowrap;
}
.br-msg__subj {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	color: var(--text);
	font-size: 0.93rem;
}
.br-msg__text {
	color: var(--muted);
	font-size: 0.9rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.br-files {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	color: var(--muted);
	font-size: 0.84rem;
}
.br-files .ico {
	width: 14px;
	height: 14px;
}
.br-avatar {
	flex: none;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: var(--brand-100);
	color: var(--brand);
	font: 800 1rem/1 var(--font-head);
}
.br-avatar--bew {
	background: #fff3dc;
	color: #8a5a00;
}
:root[data-theme="dark"] .br-avatar--bew {
	background: rgba(233, 162, 59, 0.16);
	color: #f2c27a;
}
.br-avatar--lg {
	width: 56px;
	height: 56px;
	border-radius: 16px;
	font-size: 1.4rem;
}
.br-tag {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 9px;
	border-radius: 99px;
	font: 700 0.74rem/1.4 var(--font-head);
	background: var(--bg-alt);
	color: var(--muted);
}
.br-tag .ico {
	width: 12px;
	height: 12px;
}
.br-tag--kon {
	background: var(--brand-100);
	color: var(--brand);
}
.br-tag--bew {
	background: #fff3dc;
	color: #8a5a00;
}
.br-tag--new {
	background: var(--brand);
	color: #fff;
}
.br-tag--done,
.br-tag--aktiv {
	background: color-mix(in srgb, var(--ok) 14%, transparent);
	color: var(--ok);
}
.br-tag--geplant {
	background: var(--brand-100);
	color: var(--brand);
}
:root[data-theme="dark"] .br-tag--bew {
	background: rgba(233, 162, 59, 0.16);
	color: #f2c27a;
}
.br-pages {
	display: flex;
	gap: 6px;
	justify-content: center;
	margin-top: 20px;
}
.br-pages a {
	display: grid;
	place-items: center;
	min-width: 38px;
	height: 38px;
	border-radius: 10px;
	border: 1px solid var(--line);
	background: var(--surface);
	text-decoration: none;
	font-weight: 700;
}
.br-pages a.is-active {
	background: var(--brand);
	border-color: var(--brand);
	color: #fff;
}

.br-detail {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 20px;
	align-items: start;
}
.br-side {
	display: grid;
	gap: 14px;
	position: sticky;
	top: calc(var(--header-h, 64px) + 24px);
}
.br-side .br-card {
	display: grid;
	gap: 10px;
}
.br-side .br-inline,
.br-side .br-inline button {
	width: 100%;
}
.br-side .br-card--quiet .br-inline button {
	width: auto;
}
@media (max-width: 900px) {
	.br-detail {
		grid-template-columns: 1fr;
	}
	.br-side {
		position: static;
	}
}
.br-detail__head {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	margin-bottom: 18px;
}
.br-detail__head h2 {
	font: 800 1.4rem/1.25 var(--font-head);
	margin: 6px 0 2px;
	color: var(--ink);
}
.br-detail__head h2 small {
	font: 500 1rem/1 var(--font-body);
	color: var(--muted);
}
.br-quote {
	margin: 0 0 20px;
	padding: 18px 20px;
	border-radius: 14px;
	background: var(--surface-2);
	border-left: 3px solid var(--brand);
	color: var(--ink);
	white-space: normal;
	line-height: 1.65;
}
.br-dl {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 0;
	margin: 0;
	border-top: 1px solid var(--line);
}
.br-dl > div {
	padding: 12px 4px;
	border-bottom: 1px solid var(--line);
}
.br-dl dt {
	color: var(--muted);
	font-size: 0.82rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.br-dl dd {
	margin: 2px 0 0;
	color: var(--ink);
	word-break: break-word;
}
.br-filelist {
	display: grid;
	gap: 8px;
}
.br-filelist a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	border: 1px solid var(--line);
	border-radius: 12px;
	text-decoration: none;
	color: var(--ink);
	transition:
		border-color 0.2s,
		background-color 0.2s;
}
.br-filelist a:hover {
	border-color: var(--brand);
	background: var(--brand-50);
	color: var(--ink);
}
.br-filelist .ico {
	width: 20px;
	height: 20px;
	color: var(--brand);
	flex: none;
}
.br-filelist span {
	flex: 1;
	display: grid;
	min-width: 0;
	overflow-wrap: anywhere;
}
.br-filelist small {
	color: var(--muted);
}

/* ---------- Notices (Meldungen) ---------- */
.br-group {
	display: flex;
	align-items: center;
	gap: 10px;
}
.br-group b {
	color: var(--muted);
	font-size: 0.9rem;
}
.br-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--line-strong);
}
.br-dot--aktiv {
	background: var(--ok);
	box-shadow: 0 0 0 0 rgba(31, 157, 107, 0.5);
	animation: br-live 2s infinite;
}
.br-dot--geplant {
	background: var(--brand);
}
@keyframes br-live {
	0% {
		box-shadow: 0 0 0 0 rgba(31, 157, 107, 0.5);
	}
	70% {
		box-shadow: 0 0 0 8px rgba(31, 157, 107, 0);
	}
	100% {
		box-shadow: 0 0 0 0 rgba(31, 157, 107, 0);
	}
}
.br-notes {
	display: grid;
	gap: 12px;
}
.br-note {
	border: 1px solid var(--line);
	border-radius: 14px;
	background: var(--surface);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
}
.br-note--abgelaufen,
.br-note--entwurf {
	opacity: 0.72;
}
.br-note__bar.bh {
	display: block;
}
.br-note__bar .bh__inner {
	justify-content: flex-start;
	text-align: left;
	flex-wrap: nowrap;
	max-width: none;
	padding: 12px 16px;
}
.br-note__bar .bh__text {
	font-size: 0.92rem;
}
.br-note__info {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	padding: 10px 14px;
}
.br-note__info .br-small {
	margin: 0;
}
.br-note__actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}
.br-note__edit {
	margin-left: auto;
}
.br-card .br-note {
	box-shadow: none;
	margin-top: 10px;
}

.br-note-form {
	max-width: 920px;
}
.br-preview-bar .bh {
	border-radius: 12px;
}
.br-preview-bar .bh__inner {
	padding: 12px 16px;
}
.br-preview-bar [data-ico] {
	display: contents;
}
.br-preview-bar [data-ico][hidden] {
	display: none;
}
.br-kinds {
	border: 0;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 10px;
}
.br-kinds legend {
	font: 700 0.9rem/1.3 var(--font-head);
	color: var(--ink);
	margin-bottom: 8px;
	padding: 0;
}
.br-kind {
	--k: var(--brand);
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 12px;
	border: 1.5px solid var(--line);
	border-radius: 12px;
	cursor: pointer;
	transition:
		border-color 0.2s,
		background-color 0.2s,
		transform 0.2s var(--ease);
}
.br-kind input {
	position: absolute;
	opacity: 0;
}
.br-kind__ico {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 9px;
	background: color-mix(in srgb, var(--k) 14%, transparent);
	color: var(--k);
	flex: none;
}
.br-kind__ico .ico {
	width: 17px;
	height: 17px;
}
.br-kind strong {
	display: block;
	font: 700 0.93rem/1.25 var(--font-head);
	color: var(--ink);
}
.br-kind small {
	display: block;
	color: var(--muted);
	font-size: 0.8rem;
	line-height: 1.35;
	margin-top: 2px;
}
.br-kind:hover {
	border-color: color-mix(in srgb, var(--k) 50%, var(--line));
}
.br-kind:has(input:checked) {
	border-color: var(--k);
	background: color-mix(in srgb, var(--k) 7%, var(--surface));
}
.br-kind:has(input:checked) .br-kind__ico {
	background: var(--k);
	color: #fff;
}
.br-kind:has(input:focus-visible) {
	box-shadow: var(--ring);
}
.br-kind--warn {
	--k: #d48a1f;
}
.br-kind--alert {
	--k: #c0392b;
}
.br-kind--ok {
	--k: var(--ok);
}
.br-event {
	display: grid;
	gap: 16px;
	padding: 16px;
	border-radius: 14px;
	background: var(--surface-2);
	border: 1px dashed var(--line-strong);
}
.br-event[hidden] {
	display: none;
}
.br-gen-hint {
	margin-top: -8px;
}
.br-gen-hint .ico {
	color: var(--brand);
}
.br-more {
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 0 16px;
}
.br-more[open] {
	padding-bottom: 16px;
}
.br-more > summary {
	padding: 14px 0;
	cursor: pointer;
	font: 700 0.92rem/1.3 var(--font-head);
	color: var(--ink);
	list-style: none;
	display: flex;
	align-items: center;
	gap: 8px;
}
.br-more > summary::-webkit-details-marker {
	display: none;
}
.br-more > summary::before {
	content: "+";
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--brand-100);
	color: var(--brand);
	transition: transform 0.3s var(--ease);
}
.br-more[open] > summary::before {
	transform: rotate(45deg);
}
.br-more > .br-grid2,
.br-more > .br-check {
	margin-top: 12px;
}
[data-counter].is-full {
	color: var(--danger);
}

/* ---------- Status message (toast) ---------- */
.br-toast {
	position: fixed;
	z-index: 300;
	left: 50%;
	bottom: 24px;
	display: flex;
	align-items: center;
	gap: 14px;
	max-width: calc(100vw - 32px);
	padding: 12px 18px;
	border-radius: 14px;
	background: var(--navy);
	color: #fff;
	box-shadow: var(--shadow-lg);
	font-weight: 600;
	transform: translate(-50%, 140%);
	opacity: 0;
	transition:
		transform 0.45s var(--ease-spring),
		opacity 0.3s;
	pointer-events: none;
}
.br-toast::before {
	content: "";
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--ok);
	flex: none;
}
.br-toast[data-type="err"]::before {
	background: #ff5a4f;
}
.br-toast.is-visible {
	transform: translate(-50%, 0);
	opacity: 1;
	pointer-events: auto;
}
.br-toast__undo {
	border: 0;
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	padding: 6px 12px;
	border-radius: 9px;
	font: 700 0.88rem/1 var(--font-head);
	cursor: pointer;
}
.br-toast__undo:hover {
	background: rgba(255, 255, 255, 0.24);
}

/* ---------- Login ---------- */
.br-login {
	position: relative;
	display: grid;
	place-items: center;
	padding: clamp(48px, 9vw, 110px) var(--gutter);
	overflow: hidden;
}
.br-login__bg {
	position: absolute;
	inset: 0;
	background: radial-gradient(
		700px 380px at 50% 0%,
		color-mix(in srgb, var(--brand) 16%, transparent),
		transparent 70%
	);
}
.br-login__card {
	position: relative;
	width: min(440px, 100%);
	padding: clamp(26px, 5vw, 40px);
	border-radius: var(--radius-lg);
	background: var(--surface);
	border: 1px solid var(--line);
	box-shadow: var(--shadow-lg);
}
.br-login__card h1 {
	font: 800 1.9rem/1.1 var(--font-head);
	margin: 0;
	color: var(--ink);
	letter-spacing: -0.03em;
}
.br-login__card .eyebrow {
	margin: 0 0 0.4em;
}
.br-login__card .br-form {
	margin-top: 22px;
}
.br-login__mark {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin-bottom: 18px;
	border-radius: 16px;
	background: linear-gradient(
		140deg,
		var(--brand),
		var(--brand-700, #0f3566)
	);
	color: #fff;
	box-shadow: var(--glow);
}
.br-login__mark .ico {
	width: 24px;
	height: 24px;
}
.br-login__foot {
	margin: 18px 0 0;
	text-align: center;
	font-size: 0.92rem;
}

@media (prefers-reduced-motion: reduce) {
	.br-count--nachrichten,
	.br-dot--aktiv {
		animation: none;
	}
	.br-toast,
	.br-kpi,
	.br-item,
	.br-switch__track span {
		transition: none;
	}
}

/* ---------- Confirmation dialog ---------- */
.br-btn--danger {
	--b: var(--danger);
	box-shadow: none;
}
.br-dialog {
	width: min(420px, calc(100vw - 32px));
	padding: 24px;
	border: 0;
	border-radius: 18px;
	background: var(--surface);
	color: var(--ink);
	box-shadow: var(--shadow-lg);
}
.br-dialog::backdrop {
	background: rgba(8, 18, 34, 0.45);
	backdrop-filter: blur(3px);
}
.br-dialog[open] {
	animation: br-pop 0.35s var(--ease-spring);
}
@keyframes br-pop {
	from {
		transform: scale(0.94);
		opacity: 0;
	}
}
.br-dialog__text {
	margin: 0 0 20px;
	font: 700 1.08rem/1.4 var(--font-head);
}
.br-dialog__bar {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
}
@media (max-width: 520px) {
	.br-msg a {
		padding: 14px 14px 14px 16px;
		gap: 12px;
	}
	.br-msg__firm {
		display: none;
	}
	.br-hero__inner {
		padding-bottom: 16px;
	}
	.br-hero__actions .br-btn {
		padding: 0.55em 0.85em;
		font-size: 0.86rem;
	}
}

/* ---------- Areas (busol.info · Businessapp24 · COMMITLY Sync) ---------- */
.br-areabar {
	position: relative;
	background: rgba(4, 12, 26, 0.38);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.br-areas {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-top: 10px;
	padding-bottom: 10px;
	overflow-x: auto;
	scrollbar-width: none;
}
.br-areas::-webkit-scrollbar {
	display: none;
}
.br-areas__label {
	flex: none;
	font: 700 0.72rem/1 var(--font-head);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(201, 214, 232, 0.7);
}
.br-areas__seg {
	display: inline-flex;
	flex: none;
	gap: 2px;
	padding: 3px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.07);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.br-areas a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 14px;
	border-radius: 9px;
	color: #c9d6e8;
	text-decoration: none;
	font: 700 0.88rem/1 var(--font-head);
	white-space: nowrap;
	transition:
		background-color 0.2s,
		color 0.2s;
}
.br-areas a:hover {
	color: #fff;
	background: rgba(255, 255, 255, 0.08);
}
.br-areas a.is-active {
	background: #fff;
	color: var(--navy, #0d2342);
	box-shadow: 0 4px 14px -6px rgba(0, 0, 0, 0.5);
}
.br-areas__dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	flex: none;
}
.br-hero--ba24 {
	background: linear-gradient(125deg, #12457f 0%, var(--navy) 72%);
}
.br-hero--commitly {
	background: linear-gradient(125deg, #3b2a63 0%, var(--navy) 72%);
}

/* ---------- Building blocks for modules of other plugins ---------- */
.br-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}
.br-table th,
.br-table td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--line);
	text-align: left;
	vertical-align: middle;
}
.br-table th {
	font: 700 0.75rem/1.2 var(--font-head);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--muted);
}
.br-table td.num,
.br-table th.num {
	text-align: right;
}
.br-table input {
	width: 84px;
	padding: 7px 9px;
	border: 1.5px solid var(--line-strong);
	border-radius: 9px;
	background: var(--surface-2);
	color: var(--ink);
	font: 600 0.95rem/1.2 var(--font-body);
	text-align: right;
}
.br-table input:focus {
	outline: 0;
	border-color: var(--brand);
	box-shadow: var(--ring);
}
.br-scroll {
	overflow-x: auto;
}
.br-grid3 {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 16px;
}
.br-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
	gap: 10px;
}
.br-steps label {
	position: relative;
	display: block;
	padding: 16px;
	border-radius: 14px;
	border: 1.5px solid var(--line);
	cursor: pointer;
	transition:
		border-color 0.2s,
		background-color 0.2s;
}
.br-steps input {
	position: absolute;
	opacity: 0;
}
.br-steps strong {
	display: block;
	font: 800 1rem/1.3 var(--font-head);
	color: var(--ink);
}
.br-steps small {
	color: var(--muted);
}
.br-steps label:has(input:checked) {
	border-color: var(--brand);
	background: var(--brand-50);
}
.br-steps label:has(input:focus-visible) {
	box-shadow: var(--ring);
}
.br-lock {
	padding: 12px 14px;
	border-radius: 12px;
	background: #fff8ec;
	border: 1px solid #f3dcae;
	color: #6b4b00;
	font-size: 0.92rem;
}
:root[data-theme="dark"] .br-lock {
	background: rgba(233, 162, 59, 0.1);
	border-color: rgba(233, 162, 59, 0.3);
	color: #f2c27a;
}
.br-kv {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 6px 18px;
	margin: 0;
	font-size: 0.95rem;
}
.br-kv dt {
	color: var(--muted);
}
.br-kv dd {
	margin: 0;
	color: var(--ink);
}

/* Tabs as a separate row below the title. */
.br-hero .br-tabs {
	margin-top: 12px;
}
.br-hero:has(.br-areabar) .br-hero__inner {
	padding-top: clamp(22px, 4vw, 36px);
}
@media (max-width: 640px) {
	.br-areas {
		gap: 10px;
	}
	.br-areas a {
		padding: 7px 10px;
		gap: 6px;
		font-size: 0.84rem;
	}
}
@media (max-width: 480px) {
	.br-areas__label {
		display: none;
	}
	.br-areas__seg {
		flex: 1;
		justify-content: space-between;
	}
}

/* ---------- Aktuelles: content blocks ---------- */
.br-item__thumb {
	flex: none;
	width: 56px;
	height: 42px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--bg-alt);
}
.br-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.br-news-img {
	display: grid;
	gap: 8px;
}
.br-news-img__prev:empty {
	display: none;
}
.br-news-img__prev img {
	width: 160px;
	height: 90px;
	object-fit: cover;
	border-radius: 10px;
	border: 1px solid var(--line);
}
.br-news-img input[type="file"] {
	font: inherit;
	font-size: 0.9rem;
}
.br-news-help {
	margin: 6px 0 14px;
	padding: 12px 14px;
	border-radius: 12px;
	background: var(--brand-50);
	color: var(--text);
	font-size: 0.92rem;
	line-height: 1.55;
}
.br-news-help code {
	padding: 1px 5px;
	border-radius: 5px;
	background: var(--surface);
	font-size: 0.85em;
}
.br-blocks {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 12px;
	counter-reset: blk;
}
.br-block {
	position: relative;
	display: grid;
	gap: 8px;
	padding: 12px 14px 12px 18px;
	border: 1px solid var(--line);
	border-radius: 14px;
	background: var(--surface);
}
.br-block::before {
	content: "";
	position: absolute;
	left: 0;
	top: 12px;
	bottom: 12px;
	width: 4px;
	border-radius: 0 4px 4px 0;
	background: var(--line-strong);
}
.br-block[data-type="checks"]::before {
	background: var(--ok, #1f9d55);
}
.br-block[data-type="steps"]::before {
	background: var(--brand);
}
.br-block[data-type="info"]::before {
	background: #6ea6ec;
}
.br-block[data-type="warn"]::before {
	background: var(--amber, #e9a23b);
}
.br-block[data-type="links"]::before {
	background: #8b5cf6;
}
.br-block__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}
.br-block__bar select {
	font: 600 0.92rem var(--font-head);
	padding: 7px 30px 7px 10px;
	border-radius: 10px;
	border: 1px solid var(--line-strong);
	background: var(--surface-2, var(--surface));
	color: var(--ink);
}
.br-block__tools {
	display: inline-flex;
	gap: 4px;
}
.br-block input[type="text"],
.br-block textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1.5px solid var(--line-strong);
	border-radius: 10px;
	background: var(--surface-2, var(--surface));
	color: var(--ink);
	font: 400 1rem/1.45 var(--font-body);
}
.br-block input[type="text"] {
	font-weight: 700;
	font-family: var(--font-head);
}
.br-block textarea {
	resize: vertical;
	min-height: 96px;
}
.br-block input:focus,
.br-block textarea:focus {
	outline: 0;
	border-color: var(--brand);
	box-shadow: var(--ring);
}
.br-block__hint {
	color: var(--muted);
	font-size: 0.82rem;
}
.br-blocks__add {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 14px 0 6px;
}
.br-btn--sm {
	padding: 0.5em 0.8em;
	font-size: 0.86rem;
}
.br-btn--sm .ico {
	width: 15px;
	height: 15px;
}
.br-up .ico {
	transform: rotate(180deg);
}
.br-editor--news .br-preview {
	max-height: calc(100vh - 140px);
	overflow: auto;
}
.br-news-prev {
	padding: 22px;
	border-radius: 16px;
	border: 1px solid var(--line);
	background: var(--bg);
}
.br-news-prev__title {
	font: 800 1.6rem/1.15 var(--font-head);
	margin: 0 0 14px;
	color: var(--ink);
}
.br-news-prev__toc {
	margin: 0 0 16px;
	padding: 12px 14px;
	border-left: 2px solid var(--line);
	font-size: 0.9rem;
}
.br-news-prev__toc ol {
	margin: 6px 0 0;
	padding-left: 18px;
	color: var(--muted);
}
.br-news-prev .prose {
	max-width: none;
	font-size: 0.95rem;
}
.br-news-prev .prose-figure {
	margin: 0 0 16px;
}
.br-news-prev .prose-figure img {
	width: 100%;
	border-radius: 12px;
}
.br-editor--news .br-grid2 {
	align-items: start;
}
.br-block textarea {
	overflow: hidden;
}
.br-chip--note {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: color-mix(in srgb, var(--amber, #e9a23b) 18%, transparent);
	color: #8a5a12;
}
.br-chip--note .ico {
	width: 12px;
	height: 12px;
}
:root[data-theme="dark"] .br-chip--note {
	color: #f2c27a;
}
.br-form__bar .br-link .ico {
	width: 15px;
	height: 15px;
	vertical-align: -2px;
}
.br-more > .br-field:has([data-link-pick]) {
	margin-top: 14px;
}
