/*
 * App frame (layout/shell_open.php, layout/footer.php): sidebar, top bar, search palette, toasts,
 * sign-in frame, shared components (page head, cards, KPIs, badges) and the dark theme.
 * Uses the variables from brand.css.
 */

:root {
	--sb-width: 256px;
	--tb-height: 64px;
	--fb-success: #1f9d55;
	--fb-success-soft: #e7f6ee;
	--fb-warning: #c27c0e;
	--fb-warning-soft: #fdf3e1;
	--fb-danger: #d93f45;
	--fb-danger-soft: #fdeeee;
	--fb-danger-text: #b42d32;   /* text on the soft backgrounds */
	--fb-success-text: #17784a;
	--fb-warning-text: #8a5300;
	--fb-accent: #367498;        /* filled buttons (white text on it) */
	--fb-accent-hover: #2b5d7a;
	--fb-ring: rgba(54, 116, 152, .28);
	--fb-elev-1: 0 1px 2px rgba(30, 32, 36, .05), 0 2px 8px rgba(30, 32, 36, .04);
	--fb-elev-2: 0 12px 32px rgba(30, 32, 36, .14), 0 2px 6px rgba(30, 32, 36, .08);
}

.icon { flex: none; display: inline-block; vertical-align: middle; }
[data-theme=light] .only-dark, [data-theme=dark] .only-light { display: none !important; }
:focus-visible { outline: 2px solid var(--fb-blue); outline-offset: 2px; }
/* the hidden attribute always wins over display rules of components (dialogs, pop-ups, optional fields) */
[hidden] { display: none !important; }
.skip_link { position: absolute; left: 12px; top: -48px; z-index: 3000; padding: 8px 14px; border-radius: var(--fb-radius); background: var(--fb-accent); color: #fff !important; }
.skip_link:focus { top: 12px; }

/* ================= frame ================= */
body.app { margin: 0; background: var(--fb-bg); }
.shell { min-height: 100vh; margin-left: var(--sb-width); display: flex; flex-direction: column; }
.content { flex: 1; padding: 8px 32px 24px; outline: none; }
.content > .pagecenter { width: auto; max-width: 1240px; margin: 0 auto; }
/* two-column pages (form or report left, info boxes right): the left column takes the free space */
.content > .pagecenter:has(> .rightbox, > .right_column) > .leftbox { width: calc(100% - 304px); }
.content > .pagecenter:not(:has(> .rightbox, > .right_column)) > .leftbox { width: 100%; float: none; }
.content > .pagecenter > .rightbox, .content > .pagecenter > .right_column { width: 280px; }
.content > .pagecenter:has(> .right_column) > .leftcolumn { width: calc(100% - 304px); }
.content > .pagecenter > .leftcolumn > .leftbox { width: 100%; }

/* ---------- sidebar ---------- */
.sidebar {
	position: fixed; inset: 0 auto 0 0; z-index: 1100;
	width: var(--sb-width); display: flex; flex-direction: column;
	background: var(--fb-surface); border-right: 1px solid var(--fb-border-soft);
}
.sb_head { display: flex; align-items: center; justify-content: space-between; height: var(--tb-height); padding: 0 16px 0 22px; }
.sb_logo { display: block; line-height: 0; }
.sb_logo img { width: 138px; height: auto; }
.sb_close { display: none; }
.sb_product {
	margin: 0 22px 10px; padding-bottom: 14px; border-bottom: 1px solid var(--fb-line);
	font: 400 19px/1 var(--fb-font-heading); color: var(--fb-blue); letter-spacing: .01em;
}
.sb_nav { flex: 1; overflow-x: hidden; overflow-y: auto; padding: 4px 12px 12px; scrollbar-width: thin; }
.sb_group + .sb_group { margin-top: 14px; }
.sb_label { padding: 0 10px 6px; font-size: 10.5px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--fb-faint); }
.sb_link {
	position: relative; display: flex; align-items: center; gap: 12px; width: 100%;
	height: 38px; margin: 1px 0; padding: 0 10px; border: 0; border-radius: 7px;
	font: 500 14px/1 var(--fb-font); color: var(--fb-text-2); background: none; text-align: left;
	text-decoration: none !important; cursor: pointer; transition: background-color .12s, color .12s;
}
.sb_link .icon { color: var(--fb-muted); transition: color .12s; }
.sb_link:hover { background: var(--fb-hover); color: var(--fb-text); }
.sb_link:hover .icon { color: var(--fb-text-2); }
.sb_link.is-active { background: var(--fb-blue-soft); color: var(--fb-blue-dark); font-weight: 600; }
.sb_link.is-active .icon { color: var(--fb-blue); }
.sb_link.is-active:before { content: ""; position: absolute; left: -12px; top: 8px; bottom: 8px; width: 3px; border-radius: 0 3px 3px 0; background: var(--fb-blue); }
.sb_text { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; padding-top: 2px; }
.sb_badge {
	min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 11px; font-weight: 700; color: #fff; background: var(--fb-danger);
}
.sb_foot { padding: 10px 12px 14px; border-top: 1px solid var(--fb-line); }
.sidebar_backdrop { display: none; }

/* ---------- top bar ---------- */
.topbar {
	position: sticky; top: 0; z-index: 1000;
	display: flex; align-items: center; gap: 16px; height: var(--tb-height); padding: 0 32px;
	background: color-mix(in srgb, var(--fb-bg) 82%, transparent);
	-webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px);
	border-bottom: 1px solid transparent; transition: border-color .2s, background-color .2s;
}
.topbar.is-scrolled { border-bottom-color: var(--fb-border-soft); background: color-mix(in srgb, var(--fb-surface) 88%, transparent); }
.tb_burger { display: none !important; }
.tb_search {
	display: flex; align-items: center; gap: 10px; flex: 0 1 520px; min-width: 0; height: 40px; padding: 0 8px 0 14px;
	border: 1px solid var(--fb-border); border-radius: 9px; background: var(--fb-surface);
	font: 400 14px/1 var(--fb-font); color: var(--fb-faint); text-align: left; cursor: text;
	transition: border-color .15s, box-shadow .15s;
}
.tb_search:hover { border-color: var(--fb-border-strong); }
.tb_search .icon { color: var(--fb-muted); }
.tb_search_text { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; padding-top: 2px; }
kbd {
	display: inline-flex; align-items: center; height: 22px; padding: 0 6px; border-radius: 5px;
	font: 600 11px/1 var(--fb-font); color: var(--fb-muted); background: var(--fb-hover);
	border: 1px solid var(--fb-border-soft); box-shadow: none;
}
.tb_actions { flex: none; display: flex; align-items: center; gap: 8px; margin-left: auto; }
.tb_icon {
	display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px;
	border: 0; border-radius: 9px; color: var(--fb-text-2); background: none; cursor: pointer;
}
.tb_icon:hover { background: var(--fb-hover); color: var(--fb-text); }

.tb_dropdown { position: relative; }
.tb_dropdown > summary { list-style: none; cursor: pointer; }
.tb_dropdown > summary::-webkit-details-marker { display: none; }
.tb_primary {
	display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px 0 12px; border-radius: 9px;
	font: 600 14px/1 var(--fb-font); color: #fff; background: var(--fb-accent);
	box-shadow: 0 1px 2px rgba(2, 69, 129, .25); transition: background-color .15s;
}
.tb_primary span { padding-top: 2px; }
.tb_primary:hover, .tb_new[open] .tb_primary { background: var(--fb-accent-hover); }
.tb_user > summary { display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 8px 0 4px; border-radius: 10px; }
.tb_user > summary:hover, .tb_user[open] > summary { background: var(--fb-hover); }
.avatar {
	display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%;
	font: 700 13px/1 var(--fb-font); letter-spacing: .02em; color: #fff;
	background: linear-gradient(135deg, var(--fb-navy), #3f86ad);
}
.tb_user_text { display: flex; flex-direction: column; gap: 3px; max-width: 220px; line-height: 1.15; }
.tb_user_text strong { font-size: 13.5px; font-weight: 600; color: var(--fb-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tb_user_text small { font-size: 12px; color: var(--fb-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tb_chevron { color: var(--fb-muted); transition: transform .15s; }
.tb_user[open] .tb_chevron { transform: rotate(180deg); }
.tb_pop {
	position: absolute; right: 0; top: calc(100% + 8px); z-index: 1200; min-width: 260px; padding: 6px;
	background: var(--fb-surface); border: 1px solid var(--fb-border-soft); border-radius: 12px; box-shadow: var(--fb-elev-2);
	animation: fb-pop .14s ease-out;
}
@keyframes fb-pop { from { opacity: 0; transform: translateY(-4px) scale(.98); } }
.tb_pop a, .tb_pop button {
	display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 12px; border: 0; border-radius: 8px;
	font: 500 14px/1.3 var(--fb-font); color: var(--fb-text); background: none; text-align: left; text-decoration: none !important; cursor: pointer;
}
.tb_pop a:hover, .tb_pop button:hover { background: var(--fb-hover); color: var(--fb-text); }
.tb_pop .icon { color: var(--fb-muted); }
.tb_pop a span, .tb_pop button span { display: flex; flex-direction: column; gap: 2px; }
.tb_pop small { font-size: 12px; font-weight: 400; color: var(--fb-muted); }
.tb_new .tb_pop .icon { width: 36px; height: 36px; padding: 8px; border-radius: 8px; color: var(--fb-blue); background: var(--fb-blue-soft); }
.tb_pop_head { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px 12px; margin-bottom: 4px; border-bottom: 1px solid var(--fb-line); }
.tb_pop_head small { font-size: 12.5px; color: var(--fb-muted); }
.tb_pop .tb_logout, .tb_pop .tb_logout .icon { color: var(--fb-danger); }

/* ---------- footer ---------- */
.app_footer { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; padding: 18px 32px 22px; font-size: 12px; color: var(--fb-faint); }
.app_footer a { color: var(--fb-muted); margin: 0 4px; }
.app_footer a:hover { color: var(--fb-blue); }

/* ---------- messages ---------- */
.flash, div.error, div.notice {
	position: relative; display: flex; align-items: flex-start; gap: 10px;
	margin: 12px 0; padding: 12px 14px 12px 42px; border-radius: 10px; font-size: 13.5px; line-height: 1.45;
}
.flash:before, div.error:before, div.notice:before {
	content: ""; position: absolute; left: 14px; top: 12px; width: 18px; height: 18px; background: currentColor;
	-webkit-mask: var(--msg-icon) center / contain no-repeat; mask: var(--msg-icon) center / contain no-repeat;
}
.flash.error, div.error {
	color: var(--fb-danger-text); background: var(--fb-danger-soft); border: 1px solid color-mix(in srgb, var(--fb-danger) 30%, transparent);
	--msg-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/></svg>");
}
.flash.notice, div.notice {
	color: var(--fb-success-text); background: var(--fb-success-soft); border: 1px solid color-mix(in srgb, var(--fb-success) 30%, transparent);
	--msg-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z'/></svg>");
}

/* toasts (shell.js: success messages, actions) */
.toasts { position: fixed; right: 24px; bottom: 24px; z-index: 3000; display: flex; flex-direction: column; gap: 10px; pointer-events: none; }
.toast {
	display: flex; align-items: flex-start; gap: 10px; width: 360px; max-width: calc(100vw - 48px); padding: 12px 14px;
	border-radius: 12px; font-size: 13.5px; line-height: 1.45; color: var(--fb-text);
	background: var(--fb-surface); border: 1px solid var(--fb-border-soft); box-shadow: var(--fb-elev-2);
	pointer-events: auto; animation: fb-toast-in .25s ease-out;
}
.toast .icon { margin-top: 1px; }
.toast.is-success .icon { color: var(--fb-success); }
.toast.is-error .icon { color: var(--fb-danger); }
.toast.is-info .icon { color: var(--fb-blue); }
.toast_text { flex: 1; }
.toast_close { border: 0; background: none; padding: 0; color: var(--fb-faint); cursor: pointer; line-height: 0; }
.toast.is-leaving { animation: fb-toast-out .2s ease-in forwards; }
@keyframes fb-toast-in { from { opacity: 0; transform: translateY(12px); } }
@keyframes fb-toast-out { to { opacity: 0; transform: translateX(24px); } }

/* ================= search palette ================= */
.cmdk { position: fixed; inset: 0; z-index: 2000; }
.cmdk[hidden] { display: none; }
.cmdk_backdrop { position: absolute; inset: 0; background: rgba(15, 20, 25, .42); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); animation: fb-fade .15s; }
@keyframes fb-fade { from { opacity: 0; } }
.cmdk_panel {
	position: relative; width: 680px; max-width: calc(100vw - 32px); margin: 12vh auto 0; overflow: hidden;
	background: var(--fb-surface); border: 1px solid var(--fb-border-soft); border-radius: 16px; box-shadow: 0 24px 64px rgba(15, 20, 25, .3);
	animation: fb-pop .16s ease-out;
}
.cmdk_input { display: flex; align-items: center; gap: 12px; padding: 0 18px; border-bottom: 1px solid var(--fb-line); }
.cmdk_input .icon { color: var(--fb-muted); }
.cmdk_input input[type=text] {
	flex: 1; height: 58px; padding: 0; border: 0 !important; box-shadow: none !important; background: none;
	font: 400 17px/1 var(--fb-font); color: var(--fb-text);
}
.cmdk_list { max-height: min(56vh, 520px); overflow-y: auto; padding: 8px; scrollbar-width: thin; }
.cmdk_group { padding: 10px 10px 6px; font-size: 10.5px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--fb-faint); }
.cmdk_item {
	display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 10px;
	color: var(--fb-text); text-decoration: none !important; cursor: pointer;
}
.cmdk_item[aria-selected=true] { background: var(--fb-blue-soft); }
.cmdk_item .cmdk_icon {
	flex: none; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 9px;
	color: var(--fb-blue); background: var(--fb-blue-soft);
}
.cmdk_item[aria-selected=true] .cmdk_icon { background: var(--fb-surface); }
.cmdk_text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.cmdk_title { font-size: 14px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cmdk_title mark { padding: 0; color: inherit; background: color-mix(in srgb, var(--fb-warning) 28%, transparent); border-radius: 2px; }
.cmdk_sub { font-size: 12.5px; color: var(--fb-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cmdk_meta { flex: none; font-size: 12px; color: var(--fb-muted); }
.cmdk_empty { padding: 28px 16px; text-align: center; color: var(--fb-muted); font-size: 14px; }
.cmdk_loading { padding: 10px 12px; font-size: 13px; color: var(--fb-faint); }
.cmdk_foot { display: flex; gap: 18px; padding: 10px 18px; border-top: 1px solid var(--fb-line); font-size: 12px; color: var(--fb-muted); background: var(--fb-surface-2); }
.cmdk_foot kbd { margin-right: 3px; }

/* ================= sign-in frame ================= */
body.auth { margin: 0; background: var(--fb-bg); }
.auth_wrap { display: grid; grid-template-columns: minmax(380px, 46%) 1fr; min-height: 100vh; }
.auth_brand {
	position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 40px;
	padding: 48px 56px; overflow: hidden; color: #fff;
	background:
		radial-gradient(1200px 600px at -10% 110%, rgba(255, 255, 255, .10), transparent 60%),
		radial-gradient(700px 400px at 110% -10%, rgba(95, 163, 204, .45), transparent 60%),
		linear-gradient(150deg, #024581 0%, #1d5e8a 55%, #367498 100%);
}
/* the arc of the logo, large and faint */
.auth_brand:after {
	content: ""; position: absolute; right: -180px; bottom: -260px; width: 620px; height: 620px; border-radius: 50%;
	border: 70px solid rgba(255, 255, 255, .06); pointer-events: none;
}
.auth_logo { width: 190px; height: auto; filter: brightness(0) invert(1); }
.auth_claim h1 { margin: 0 0 14px; font: 400 44px/1.1 var(--fb-font-heading); color: #fff; }
.auth_claim p { max-width: 440px; margin: 0 0 28px; font-size: 17px; line-height: 1.55; color: rgba(255, 255, 255, .85); }
.auth_claim ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 14px; }
.auth_claim li { display: flex; align-items: center; gap: 14px; font-size: 15px; color: rgba(255, 255, 255, .92); }
.auth_claim li .icon { width: 38px; height: 38px; padding: 9px; border-radius: 10px; background: rgba(255, 255, 255, .12); }
.auth_brand_foot { font-size: 12.5px; letter-spacing: .04em; color: rgba(255, 255, 255, .6); }
.auth_main { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 24px 24px; }
.auth_main .loginbox { width: 100%; max-width: 420px; margin: auto 0 0; border: 0; box-shadow: none; background: none; }
.auth_main .loginbox .pad { padding: 0; }
.auth_main .loginbox .pad:before { display: none; }
.auth_main .loginbox legend { font-size: 34px; margin-bottom: 6px; }
.auth_main .loginbox input[type=email], .auth_main .loginbox input[type=password], .auth_main .loginbox input.twofa_code { height: 46px; font-size: 15px; border-radius: 9px; }
.auth_main .loginbox input.twofa_code { height: 54px; font-size: 24px; }
.auth_main .loginbox input[type=submit] { height: 46px; border-radius: 9px; font-size: 15px; }
.auth_main .twofa_setup { max-width: 480px; }
.auth_footer { margin-top: auto; padding-top: 32px; font-size: 12px; color: var(--fb-faint); text-align: center; }
.auth_footer a { margin: 0 5px; color: var(--fb-muted); }

/* ================= shared components ================= */
.page_head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 16px 0 20px; }
.page_head h1 { margin: 0; font-size: 32px; }
.page_head p { margin: 4px 0 0; color: var(--fb-muted); font-size: 14px; }
.page_actions { display: flex; gap: 8px; flex-wrap: wrap; }

.ui_btn {
	display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; border-radius: 9px;
	font: 600 13.5px/1 var(--fb-font); text-decoration: none !important; cursor: pointer; white-space: nowrap;
	color: var(--fb-text); background: var(--fb-surface); border: 1px solid var(--fb-border);
	transition: border-color .15s, background-color .15s;
}
.ui_btn span { padding-top: 2px; }
.ui_btn:hover { border-color: var(--fb-border-strong); color: var(--fb-text); }
.ui_btn .icon { color: var(--fb-muted); }
.ui_btn.is-primary { color: #fff; background: var(--fb-accent); border-color: var(--fb-accent); }
.ui_btn.is-primary .icon { color: #fff; }
.ui_btn.is-primary:hover { background: var(--fb-accent-hover); border-color: var(--fb-accent-hover); color: #fff; }

.card {
	background: var(--fb-surface); border: 1px solid var(--fb-border-soft); border-radius: 12px; box-shadow: var(--fb-elev-1);
}
.card_head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px 0; }
.card_head h2 { margin: 0; font: 400 19px/1.3 var(--fb-font-heading); letter-spacing: 0; text-transform: none; color: var(--fb-text); }
.card_head a { font-size: 13px; }
.card_body { padding: 14px 20px 18px; }

.badge_fb {
	display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 9px; border-radius: 11px;
	font: 600 11.5px/1 var(--fb-font); white-space: nowrap; vertical-align: middle;
}
.badge_fb:before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.badge_fb.is-open { color: var(--fb-warning-text); background: var(--fb-warning-soft); }
.badge_fb.is-closed { color: var(--fb-success-text); background: var(--fb-success-soft); }
.badge_fb.is-alert { color: var(--fb-danger-text); background: var(--fb-danger-soft); }
.badge_fb.is-info { color: var(--fb-blue-dark); background: var(--fb-blue-soft); }
.badge_fb.is-plain:before { display: none; }

.empty_state { padding: 28px 16px; text-align: center; color: var(--fb-muted); font-size: 13.5px; }
.empty_state .icon { display: block; margin: 0 auto 8px; color: var(--fb-success); }

/* search results page */
.search_page { max-width: 880px !important; }
.search_form { display: flex; align-items: center; gap: 12px; padding: 10px 10px 10px 18px; margin-bottom: 18px; }
.search_form .icon { color: var(--fb-muted); }
.search_form input[type=text] { flex: 1; height: 42px; border: 0; box-shadow: none !important; background: none; font-size: 16px; }
.search_form input[type=submit] { height: 40px; padding: 0 20px; border-radius: 9px; }
.search_group { margin-bottom: 16px; }
.search_group .card_body { padding: 8px 10px 10px; }
.search_hit { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 10px; color: var(--fb-text); text-decoration: none !important; }
.search_hit:hover { background: var(--fb-blue-tint); color: var(--fb-text); }
.search_more { margin: 8px 10px 2px; font-size: 12.5px; color: var(--fb-muted); }
.search_hit .cmdk_icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 9px; color: var(--fb-blue); background: var(--fb-blue-soft); }

/* ================= cockpit (start page) ================= */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }
.cockpit_scope select { height: 38px; min-width: 200px; border-radius: 9px; }
.kpi_grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; margin-bottom: 20px; }
.kpi { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 18px 20px; color: var(--fb-text); text-decoration: none !important; }
a.kpi { transition: transform .15s, box-shadow .15s, border-color .15s; }
a.kpi:hover { transform: translateY(-2px); border-color: var(--fb-blue-border); box-shadow: var(--fb-elev-2); color: var(--fb-text); }
.kpi_icon { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; margin-bottom: 8px; border-radius: 10px; }
.kpi_icon.is-blue { color: var(--fb-blue); background: var(--fb-blue-soft); }
.kpi_icon.is-navy { color: var(--fb-navy); background: color-mix(in srgb, var(--fb-navy) 12%, transparent); }
.kpi_icon.is-amber { color: #c27c0e; background: var(--fb-warning-soft); }
.kpi_icon.is-red { color: var(--fb-danger); background: var(--fb-danger-soft); }
.kpi_icon.is-green { color: var(--fb-success); background: var(--fb-success-soft); }
.kpi_label { font-size: 13px; font-weight: 600; color: var(--fb-muted); }
.kpi_value { font: 600 28px/1.15 var(--fb-font); letter-spacing: -.01em; color: var(--fb-text); font-variant-numeric: tabular-nums; }
.kpi_sub { font-size: 12.5px; color: var(--fb-muted); }
.kpi_sub a { color: var(--fb-text-2); text-decoration: none; border-bottom: 1px dotted var(--fb-border-strong); }
.kpi_sub a:hover { color: var(--fb-blue); border-bottom-color: var(--fb-blue); }
.kpi_delta { display: inline-flex; align-items: center; gap: 3px; height: 20px; padding: 0 7px; border-radius: 10px; font-size: 12px; font-weight: 700; }
.kpi_delta.is-up { color: var(--fb-danger-text); background: var(--fb-danger-soft); }
.kpi_delta.is-down { color: var(--fb-success-text); background: var(--fb-success-soft); }
.kpi_delta.is-neutral { color: var(--fb-muted); background: var(--fb-hover); font-weight: 600; }
.kpi_vs { font-size: 12px; color: var(--fb-faint); }

.cockpit_grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(300px, 1fr); gap: 20px; align-items: start; }
.cockpit_main, .cockpit_side { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.cockpit_main > .card, .cockpit_side > .card { min-width: 0; }
.card_hint { font-size: 12px; color: var(--fb-faint); }
.title_icon { color: var(--fb-blue); margin: -3px 4px 0 0; }
.chart_box { position: relative; height: 290px; }
.chart_box.is-donut { height: 260px; }

.insights { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.insight { display: flex; align-items: flex-start; gap: 12px; padding: 12px; border-radius: 10px; background: var(--fb-surface-2); border: 1px solid var(--fb-line); }
.insight_icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 9px; }
.insight.is-alert .insight_icon { color: var(--fb-danger); background: var(--fb-danger-soft); }
.insight.is-warn .insight_icon { color: #c27c0e; background: var(--fb-warning-soft); }
.insight.is-info .insight_icon { color: var(--fb-blue); background: var(--fb-blue-soft); }
.insight_text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.insight_text strong { font-size: 13.5px; font-weight: 600; color: var(--fb-text); line-height: 1.35; }
.insight_text span { font-size: 12.5px; color: var(--fb-muted); line-height: 1.4; }
.insight_link { flex: none; align-self: center; display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; border-radius: 8px; color: var(--fb-muted); }
.insight_link:hover { color: var(--fb-blue); background: var(--fb-blue-soft); }
.insight_chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.insight_chips a {
	display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border-radius: 12px; font-size: 12px; font-weight: 600;
	color: var(--fb-text-2); background: var(--fb-surface); border: 1px solid var(--fb-border-soft); text-decoration: none; white-space: nowrap;
}
.insight_chips em { margin-left: 6px; font-style: normal; font-weight: 400; color: var(--fb-faint); }
.insight_chips a:hover { color: var(--fb-blue-dark); border-color: var(--fb-blue-border); background: var(--fb-blue-tint); }

.mini_table { width: 100%; border-collapse: collapse; }
.mini_table td { padding: 10px 8px; border-top: 1px solid var(--fb-line); vertical-align: middle; }
.mini_table tr:first-child td { border-top: 0; }
.mini_table tr[data-href] { cursor: pointer; transition: background-color .12s; }
.mini_table tr[data-href]:hover { background: var(--fb-blue-tint); }
.mini_table a { color: var(--fb-text); text-decoration: none; }
.mini_table strong { display: block; font-size: 14px; font-weight: 600; }
.mini_table small { display: block; font-size: 12px; color: var(--fb-muted); margin-top: 1px; }
.mini_icon { width: 34px; color: var(--fb-muted); }
.mini_status { width: 1%; white-space: nowrap; }
.mini_when { width: 1%; white-space: nowrap; text-align: right; font-size: 12.5px; color: var(--fb-text-2); }

.task_list { margin: 0; padding: 0; list-style: none; }
.task_list li { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-top: 1px solid var(--fb-line); }
.task_list li:first-child { border-top: 0; }
.task_date {
	flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 44px; height: 46px; border-radius: 9px;
	font-size: 11px; font-weight: 600; text-transform: uppercase; color: var(--fb-muted); background: var(--fb-hover); line-height: 1.1;
}
.task_date strong { font-size: 17px; color: var(--fb-text); }
.task_list li.is-overdue .task_date { color: var(--fb-danger); background: var(--fb-danger-soft); }
.task_list li.is-overdue .task_date strong { color: var(--fb-danger); }
.task_list li.is-today .task_date { color: #c27c0e; background: var(--fb-warning-soft); }
.task_list a { min-width: 0; color: var(--fb-text); text-decoration: none; }
.task_list a strong { display: block; font-size: 13.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.task_list a small { display: block; font-size: 12px; color: var(--fb-muted); }
.task_list li.is-overdue small { color: var(--fb-danger); }

.cockpit_post { display: flex; align-items: center; gap: 14px; padding: 14px 18px; color: var(--fb-text); text-decoration: none !important; }
.cockpit_post .kpi_icon { margin: 0; }
.cockpit_post > span:nth-child(2) { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.cockpit_post small { font-size: 12.5px; color: var(--fb-muted); }
.cockpit_post:hover { border-color: var(--fb-blue-border); color: var(--fb-text); }
.cockpit_post > .icon { color: var(--fb-muted); }

@media (max-width: 1240px) {
	.cockpit_grid { grid-template-columns: minmax(0, 1fr); }
	.cockpit_side { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); align-items: start; }
}

/* ================= claim lists ================= */
.list_bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.seg { display: inline-flex; gap: 2px; padding: 3px; border-radius: 10px; background: var(--fb-hover); border: 1px solid var(--fb-border-soft); }
.seg a {
	display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 14px; border-radius: 8px;
	font-size: 13.5px; font-weight: 600; color: var(--fb-muted); text-decoration: none !important; transition: background-color .12s, color .12s;
}
.seg a span { font-size: 12px; font-weight: 700; color: var(--fb-faint); }
.seg a:hover { color: var(--fb-text); }
.seg a.is-active { color: var(--fb-text); background: var(--fb-surface); box-shadow: 0 1px 2px rgba(30, 32, 36, .1); }
.seg a.is-active span { color: var(--fb-blue); }
.list_sort { display: flex; align-items: center; gap: 4px; font-size: 13px; color: var(--fb-muted); }
.list_sort a { padding: 5px 10px; border-radius: 7px; color: var(--fb-text-2); text-decoration: none !important; }
.list_sort a:hover { background: var(--fb-hover); }
.list_sort a.is-active { color: var(--fb-blue-dark); background: var(--fb-blue-soft); font-weight: 600; }
.filter_chips { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; color: var(--fb-muted); }
.filter_chips a:not(.filter_reset) {
	display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 8px 0 12px; border-radius: 14px;
	font-size: 12.5px; font-weight: 600; color: var(--fb-blue-dark); background: var(--fb-blue-soft); text-decoration: none !important;
}
.filter_chips a span { font-weight: 400; color: var(--fb-text-2); }
.filter_chips a:not(.filter_reset):hover { background: var(--fb-blue-soft-2); }
.filter_reset { font-size: 12.5px; margin-left: 4px; }

.list_card { overflow: hidden; }
.table_scroll { overflow-x: auto; }
.data_table { width: 100%; border-collapse: separate; border-spacing: 0; }
.data_table thead th {
	position: sticky; top: 0; padding: 12px 8px 10px !important; text-align: left; white-space: nowrap;
	font-size: 11px; font-weight: 700 !important; letter-spacing: .05em; text-transform: uppercase; color: var(--fb-muted);
	background: var(--fb-surface-2); border-bottom: 1px solid var(--fb-border-soft);
}
.data_table .filter_row td { padding: 8px 4px !important; background: var(--fb-surface-2); border-bottom: 1px solid var(--fb-border-soft); }
.data_table .filter_row td:first-child { padding-left: 12px !important; }
.data_table .filter_row input, .data_table .filter_row select { width: 100%; min-width: 70px; height: 32px; font-size: 13px; }
.data_table .filter_row select { max-width: 150px; }
.data_table tbody td { padding: 11px 8px !important; border-bottom: 1px solid var(--fb-line); vertical-align: middle; font-size: 13.5px; white-space: nowrap; }
.data_table tbody td.wrap { white-space: normal; }
.data_table td.ellipsis { max-width: 150px; overflow: hidden; text-overflow: ellipsis; }
.data_table tbody tr:last-child td { border-bottom: 0; }
.data_table tbody tr.clickable { cursor: pointer; transition: background-color .1s; }
.data_table tbody tr.clickable:hover { background: var(--fb-blue-tint); }
.data_table tbody tr.clickable:hover td:first-child { box-shadow: inset 3px 0 0 var(--fb-blue); }
.data_table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.data_table .actions { width: 1%; text-align: right; white-space: nowrap; }
.data_table a.row_link { font-weight: 700; color: var(--fb-text); text-decoration: none; }
.data_table a.row_link:hover { color: var(--fb-blue); }
.muted { color: var(--fb-muted); }
.nowrap { white-space: nowrap; }
.filter_btn, .icon_btn {
	display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border-radius: 8px;
	border: 1px solid var(--fb-border); color: var(--fb-text-2); background: var(--fb-surface); cursor: pointer;
}
.filter_btn { color: #fff; background: var(--fb-accent); border-color: var(--fb-accent); }
.filter_btn:hover { background: var(--fb-accent-hover); }
.icon_btn:hover { color: var(--fb-blue); border-color: var(--fb-blue-border); background: var(--fb-blue-soft); }
.list_foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-top: 1px solid var(--fb-line); font-size: 13px; }

/* ================= report view and form helpers ================= */
#report_content .rv_empty, #report_content .rv_empty_section, #report_content .rv_empty_section + hr { display: none; }
#report_content.rv_show_empty .rv_empty, #report_content.rv_show_empty .rv_empty_section { display: block; }
#report_content.rv_show_empty td.rv_empty { display: table-cell; }
#report_content.rv_show_empty .rv_empty_section + hr { display: block; }
#report_content.rv_show_empty .rv_empty:after { content: "–"; display: block; color: var(--fb-faint); }
.rv_bar { display: flex; justify-content: flex-end; padding: 10px 20px 0; }
.rv_toggle { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 12.5px; font-weight: 500; color: var(--fb-muted); cursor: pointer; }
.rv_toggle em { font-style: normal; color: var(--fb-faint); }

.completeness { margin: 12px 0 4px; padding: 12px; border-radius: 10px; background: var(--fb-surface); border: 1px solid var(--fb-border-soft); }
.completeness_head { display: flex; justify-content: space-between; align-items: baseline; font-size: 12.5px; color: var(--fb-muted); }
.completeness_head strong { font-size: 15px; color: var(--fb-text); }
.completeness_bar { height: 6px; margin: 8px 0; border-radius: 3px; background: var(--fb-hover); overflow: hidden; }
.completeness_bar i { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, #e0962a, #c9b52a); }
.completeness.is-complete .completeness_bar i { background: var(--fb-success); }
.completeness p { margin: 0; font-size: 12px; line-height: 1.45; color: var(--fb-muted); }

.dup_warning {
	margin: 0 0 14px; padding: 14px 16px 14px 46px; border-radius: 10px; position: relative;
	color: var(--fb-warning-text); background: var(--fb-warning-soft); border: 1px solid color-mix(in srgb, var(--fb-warning) 35%, transparent);
	font-size: 13.5px;
}
.dup_warning:before {
	content: ""; position: absolute; left: 16px; top: 15px; width: 18px; height: 18px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z'/></svg>") center / contain no-repeat;
	mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z'/></svg>") center / contain no-repeat;
}
.dup_warning[hidden] { display: none; }
.dup_warning ul { margin: 6px 0; padding-left: 18px; }
.dup_warning a { font-weight: 600; }
.dup_warning span { color: var(--fb-text-2); }
.dup_warning small { color: var(--fb-muted); }

/* statistics: the charts use the full width of the card (the pages set a fixed 624 px width inline) */
.content .leftbox div[id^="chart"] { width: 100% !important; max-width: 100%; }

/* attachments: tiles with picture or file icon, delete button in the corner */
#attachments div.file, #temp_files div.file {
	position: relative; float: none; display: inline-flex; flex-direction: column; vertical-align: top;
	box-sizing: border-box; width: 168px; height: auto; margin: 0 10px 12px 0; padding: 8px; border: 1px solid var(--fb-border-soft); border-radius: 10px;
	background: var(--fb-surface); text-align: center; transition: border-color .15s, box-shadow .15s;
}
#attachments div.file:hover, #temp_files div.file:hover { border-color: var(--fb-blue-border); box-shadow: var(--fb-elev-1); }
#attachments div.file a, #temp_files div.file a { display: block; font-size: 12px; line-height: 1.35; color: var(--fb-text-2); text-decoration: none; word-break: break-word; }
#attachments div.file img, #temp_files div.file img { display: block; box-sizing: border-box; width: 100%; max-width: 150px; height: 110px; margin: 0 auto 6px; object-fit: cover; border-radius: 6px; background: var(--fb-hover); }
#attachments div.file img[src^="/images/"], #temp_files div.file img[src^="/images/"] { object-fit: contain; padding: 22px; }
#attachments div.file .options, #temp_files div.file .options {
	position: absolute; top: 4px; right: 4px; z-index: 2; float: none; margin: 0; padding: 2px 4px; border-radius: 6px; background: var(--fb-surface);
	opacity: 0; transition: opacity .15s;
}
#attachments div.file:hover .options, #temp_files div.file:hover .options, #attachments div.file .options:focus-within { opacity: 1; }
@media (hover: none) { #attachments div.file .options, #temp_files div.file .options { opacity: 1; } }
#attachments div.file .options { padding: 0; background: none; }
#attachments div.file .options .icon_btn { width: 28px; height: 28px; background: var(--fb-surface); box-shadow: var(--fb-elev-1); }
#attachments .fm_upload { margin: 14px 0 0; }
.fm_upload_save { margin: 10px 0 0; }

/* ================= claim view: summary, related claims, photo viewer ================= */
.claim_head { display: flex; flex-direction: column; gap: 12px; padding: 18px 20px 16px; border-bottom: 1px solid var(--fb-line); }
.claim_title { display: flex; align-items: flex-start; gap: 14px; min-width: 0; }
.claim_icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; color: var(--fb-blue); background: var(--fb-blue-soft); }
.claim_text { min-width: 0; flex: 1; }
.claim_text h1 { margin: 0 0 4px; font-size: 26px; line-height: 1.15; word-break: break-word; }
.claim_text p { margin: 0; font-size: 13.5px; color: var(--fb-muted); line-height: 1.5; }
.claim_title > .badge_fb { margin-top: 6px; }
.claim_actions { display: flex; gap: 8px; flex-wrap: wrap; padding-left: 58px; }

.related_box h3 { display: flex; align-items: center; gap: 8px; }
.related_hint { margin: 2px 0 8px; font-size: 12px; color: var(--fb-muted); }
.related_list { margin: 0; padding: 0; list-style: none; }
.related_list li + li { border-top: 1px solid var(--fb-line); }
.related_list a { display: flex; align-items: center; gap: 10px; padding: 8px 2px; color: var(--fb-text); text-decoration: none; }
.related_list a:hover { background: var(--fb-blue-tint); }
.related_icon { flex: none; display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 8px; color: var(--fb-blue); background: var(--fb-blue-soft); }
.related_text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.related_text strong { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.related_text small { font-size: 11.5px; color: var(--fb-muted); }

.lightbox { position: fixed; inset: 0; z-index: 2500; display: flex; align-items: center; justify-content: center; }
.lightbox[hidden] { display: none; }
.lb_backdrop { position: absolute; inset: 0; background: rgba(8, 12, 16, .88); }
.lb_figure { position: relative; margin: 0; max-width: calc(100vw - 140px); max-height: calc(100vh - 80px); display: flex; flex-direction: column; align-items: center; gap: 10px; }
.lb_img { max-width: 100%; max-height: calc(100vh - 130px); object-fit: contain; border-radius: 6px; box-shadow: 0 20px 60px rgba(0, 0, 0, .5); background: #fff; transition: opacity .15s; }
.lb_img.is-loading { opacity: .35; }
.lb_figure figcaption { display: flex; gap: 14px; align-items: center; padding: 6px 14px; border-radius: 8px; font-size: 13px; color: rgba(255, 255, 255, .9); background: rgba(8, 12, 16, .78); }
.lb_count { color: rgba(255, 255, 255, .72); }
.lb_open { color: #9cc9e6 !important; }
.lb_btn { position: absolute; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 0; border-radius: 50%;
	color: #fff; background: rgba(255, 255, 255, .12); cursor: pointer; transition: background-color .15s; }
.lb_btn:hover { background: rgba(255, 255, 255, .24); }
.lb_prev { left: 20px; top: 50%; transform: translateY(-50%) rotate(180deg); }
.lb_next { right: 20px; top: 50%; transform: translateY(-50%); }
.lb_close { right: 20px; top: 20px; }
@media (max-width: 860px) {
	.lb_figure { max-width: calc(100vw - 20px); }
	.lb_prev, .lb_next { top: auto; bottom: 18px; transform: none; }
	.lb_prev { transform: rotate(180deg); }
	.claim_text h1 { font-size: 21px; }
	.claim_actions { padding-left: 0; }
}

/* cockpit: companies overview (superadmins) */
.company_table td.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.company_table th { padding: 0 8px 8px; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--fb-muted); text-align: left; }
.company_table th.num { text-align: right; }
.company_table td { padding: 9px 8px; border-top: 1px solid var(--fb-line); font-size: 13.5px; }
.company_table tr[data-href] { cursor: pointer; }
.company_table tr[data-href]:hover { background: var(--fb-blue-tint); }
.company_table .company_name { font-weight: 600; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* date picker above the sticky form bar and the top bar (jQuery UI writes a low z-index inline) */
#ui-datepicker-div { z-index: 1150 !important; }

/* ================= calendar (views/calendar) ================= */
.kal_page .kal_main { box-sizing: border-box; padding: 22px 24px 18px; }
.kal_head { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.kal_title { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.kal_title h1 { margin: 0; font-size: 28px; }
.kal_nav { display: flex; align-items: center; gap: 4px; }
.kal_arrow.is-left .icon { transform: rotate(180deg); }
.kal_tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.kal_filters { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 14px; }
.kal_filters select { height: 32px; font-size: 13px; max-width: 220px; }
.kal_toggle { display: inline-flex; align-items: center; margin: 0; cursor: pointer; }
.kal_toggle input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.kal_toggle span { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border-radius: 15px; font-size: 12.5px; font-weight: 600;
	color: var(--fb-muted); background: var(--fb-surface); border: 1px solid var(--fb-border-soft); transition: background-color .15s, border-color .15s, color .15s; }
.kal_toggle span:before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--fb-border-strong); }
.kal_toggle input:checked + span { color: var(--fb-text); border-color: var(--fb-border-strong); background: var(--fb-surface-2); }
.kal_toggle.is-task input:checked + span:before { background: var(--fb-success); }
.kal_toggle.is-deadline input:checked + span:before { background: #8b5cf6; }
.kal_toggle.is-claim input:checked + span:before { background: var(--fb-blue); }
.kal_toggle.is-done input:checked + span:before { background: var(--fb-muted); }
.kal_toggle.is-me input:checked + span:before { background: var(--fb-accent); }
.kal_toggle input:focus-visible + span { outline: 2px solid var(--fb-blue); outline-offset: 2px; }

.kal_grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border: 1px solid var(--fb-border-soft); border-radius: 12px; overflow: hidden; background: var(--fb-border-soft); gap: 1px; }
.kal_dow { padding: 8px 10px; font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--fb-muted); background: var(--fb-surface-2); }
.kal_dow.is-weekend { color: var(--fb-faint); }
.kal_dow_short { display: none; }
.kal_day { position: relative; display: flex; flex-direction: column; min-height: 116px; padding: 6px 6px 8px; background: var(--fb-surface); min-width: 0; }
.kal_grid.is-woche .kal_day { min-height: 340px; }
.kal_day.is-weekend { background: color-mix(in srgb, var(--fb-surface-2) 60%, var(--fb-surface)); }
.kal_day.is-other { background: var(--fb-surface-2); }
.kal_day.is-other .kal_num { color: var(--fb-faint); }
.kal_day.is-drop { background: var(--fb-blue-tint); box-shadow: inset 0 0 0 2px var(--fb-blue); }
.kal_day_head { display: flex; align-items: center; justify-content: space-between; min-height: 26px; margin-bottom: 2px; }
.kal_num { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-width: 26px; height: 26px; padding: 0 6px; border-radius: 13px; font-size: 13px; font-weight: 600; color: var(--fb-text-2); }
.kal_num small { font-size: 11.5px; font-weight: 500; color: var(--fb-muted); }
.kal_day.is-today .kal_num { color: #fff; background: var(--fb-accent); }
.kal_day.is-today .kal_num small { color: #fff; }
.kal_add { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; padding: 0; border: 0; border-radius: 6px; color: var(--fb-muted); background: none; cursor: pointer; opacity: 0; transition: opacity .15s, background-color .15s; }
.kal_day:hover .kal_add, .kal_add:focus-visible { opacity: 1; }
.kal_add:hover { color: var(--fb-blue-dark); background: var(--fb-blue-soft); }
@media (hover: none) { .kal_add { opacity: 1; } }
.kal_events { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.kal_more_items { display: none; flex-direction: column; gap: 3px; }
.kal_day.is-expanded .kal_more_items { display: flex; }
.kal_more { align-self: flex-start; padding: 1px 6px; border: 0; border-radius: 5px; font-size: 11.5px; font-weight: 600; color: var(--fb-blue-dark); background: none; cursor: pointer; }
.kal_more:hover { background: var(--fb-blue-soft); }

.kal_ev { display: flex; align-items: center; gap: 5px; min-width: 0; padding: 3px 7px; border-radius: 6px; font-size: 12px; line-height: 1.3; font-weight: 500;
	text-decoration: none !important; color: var(--fb-text); background: var(--fb-surface-2); border-left: 3px solid var(--fb-border-strong); cursor: pointer; }
.kal_ev span { min-width: 0; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; word-break: break-word; }
.kal_ev { align-items: flex-start; }
.kal_ev .icon { margin-top: 2px; }
.kal_ev .icon { flex: none; }
.kal_ev:hover { filter: brightness(.97); }
.kal_ev.is-task { color: var(--fb-success-text); background: var(--fb-success-soft); border-left-color: var(--fb-success); }
.kal_ev.is-task.is-overdue { color: var(--fb-danger-text); background: var(--fb-danger-soft); border-left-color: var(--fb-danger); }
.kal_ev.is-task.is-done { color: var(--fb-muted); background: var(--fb-surface-2); border-left-color: var(--fb-border-strong); }
.kal_ev.is-task.is-done span { text-decoration: line-through; }
.kal_ev.is-deadline { color: #5b3bb5; background: color-mix(in srgb, #8b5cf6 12%, var(--fb-surface)); border-left: 3px dashed #8b5cf6; }
.kal_ev.is-claim.is-kfz { color: var(--fb-blue-dark); background: var(--fb-blue-soft); border-left-color: var(--fb-blue); }
.kal_ev.is-claim.is-transport { color: var(--fb-warning-text); background: var(--fb-warning-soft); border-left-color: var(--fb-warning); }
.kal_ev[draggable=true] { cursor: grab; }
.kal_ev.is-dragging { opacity: .45; }
[data-theme=dark] .kal_ev.is-deadline { color: #c4b5fd; background: color-mix(in srgb, #8b5cf6 22%, var(--fb-surface)); }
.kal_grid.is-woche .kal_ev span, .kal_list .kal_ev span { display: block; -webkit-line-clamp: unset; }

.kal_list { display: flex; flex-direction: column; border: 1px solid var(--fb-border-soft); border-radius: 12px; overflow: hidden; }
.kal_list_day { display: grid; grid-template-columns: 150px 1fr; gap: 14px; padding: 12px 16px; border-top: 1px solid var(--fb-line); background: var(--fb-surface); }
.kal_list_day:first-child { border-top: 0; }
.kal_list_day.is-today { background: var(--fb-blue-tint); }
.kal_list_day.is-drop { box-shadow: inset 0 0 0 2px var(--fb-blue); }
.kal_list_date { display: flex; align-items: baseline; gap: 8px; color: var(--fb-text-2); }
.kal_list_date strong { font: 400 24px/1 var(--fb-font-heading); color: var(--fb-text); }
.kal_list_date span { font-size: 13px; }
.kal_list_date em { font-style: normal; font-size: 11px; font-weight: 700; color: #fff; background: var(--fb-accent); padding: 1px 7px; border-radius: 8px; }
.kal_list_events { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.kal_list_events .kal_ev { font-size: 13px; padding: 5px 9px; }
.kal_empty { padding: 30px; text-align: center; color: var(--fb-muted); }
.kal_hint { margin: 10px 2px 0; font-size: 12px; color: var(--fb-muted); }
@media (hover: none) { .kal_hint { display: none; } }

.kal_pop { position: fixed; z-index: 1200; width: 320px; max-width: calc(100vw - 24px); padding: 12px 14px; border-radius: 12px; background: var(--fb-surface);
	border: 1px solid var(--fb-border-soft); box-shadow: var(--fb-elev-2); }
.kal_pop_head { display: flex; align-items: flex-start; gap: 8px; }
.kal_pop_head strong { flex: 1; font-size: 14px; line-height: 1.35; color: var(--fb-text); }
.kal_pop_head .icon_btn { width: 26px; height: 26px; font-size: 18px; line-height: 1; }
.kal_pop_kind { flex: none; width: 10px; height: 10px; margin-top: 5px; border-radius: 3px; background: var(--fb-blue); }
.kal_pop_kind.is-task { background: var(--fb-success); }
.kal_pop_kind.is-overdue { background: var(--fb-danger); }
.kal_pop_kind.is-done { background: var(--fb-muted); }
.kal_pop_kind.is-deadline { background: #8b5cf6; }
.kal_pop_kind.is-transport { background: var(--fb-warning); }
.kal_pop_rows { display: grid; gap: 4px; margin: 10px 0 12px; }
.kal_pop_rows div { display: grid; grid-template-columns: 80px 1fr; gap: 8px; font-size: 13px; }
.kal_pop_rows dt { color: var(--fb-muted); font-weight: 500; }
.kal_pop_rows dd { margin: 0; color: var(--fb-text); word-break: break-word; }
.kal_pop_actions { display: flex; gap: 6px; flex-wrap: wrap; }
.kal_legend ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.kal_legend .kal_ev { cursor: default; }

/* ================= reminders (views/erinnerungen) ================= */
.er_box_head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.er_box_head h3 { margin: 0; }
.er_box_head a { font-size: 13px; }
.er_list { margin: 0; padding: 0; list-style: none; }
.er_item { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-top: 1px solid var(--fb-line); }
.er_item:first-child { border-top: 0; }
.er_check { position: relative; flex: none; margin: 1px 0 0; cursor: pointer; }
.er_check input { appearance: none; -webkit-appearance: none; display: block; width: 20px; height: 20px; margin: 0; border: 2px solid var(--fb-border-strong); border-radius: 6px; background: var(--fb-surface); cursor: pointer; transition: background-color .15s, border-color .15s; }
.er_check input:hover { border-color: var(--fb-success); }
.er_check input:checked { border-color: var(--fb-success); background: var(--fb-success) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center / 14px no-repeat; }
.er_check input:disabled { cursor: default; opacity: .6; }
.er_main { flex: 1; min-width: 0; }
.er_title { font-size: 13.5px; font-weight: 600; color: var(--fb-text); word-break: break-word; }
.er_item.is-done .er_title { color: var(--fb-muted); text-decoration: line-through; font-weight: 500; }
.er_meta { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 3px; font-size: 12px; color: var(--fb-muted); }
.er_meta > * { display: inline-flex; align-items: center; gap: 4px; }
.er_item.is-overdue .er_due { font-weight: 600; color: var(--fb-danger-text); }
.er_item.is-today .er_due { font-weight: 600; color: var(--fb-warning-text); }
.er_owner.is-me { color: var(--fb-text-2); }
.er_claim { color: var(--fb-blue-dark); text-decoration: none; }
.er_claim:hover { text-decoration: underline; }
.er_note { margin-top: 4px; font-size: 12.5px; color: var(--fb-text-2); word-break: break-word; }
.er_actions { display: flex; gap: 2px; flex: none; opacity: .55; transition: opacity .15s; }
.er_item:hover .er_actions, .er_actions:focus-within { opacity: 1; }
@media (hover: none) { .er_actions { opacity: 1; } }
.er_act { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 26px; padding: 0 6px; border: 1px solid transparent; border-radius: 6px;
	font-size: 11.5px; font-weight: 700; color: var(--fb-muted); background: none; cursor: pointer; }
.er_act:hover { color: var(--fb-blue-dark); border-color: var(--fb-blue-border); background: var(--fb-blue-tint); }
.er_empty { margin: 0; font-size: 13px; color: var(--fb-muted); }
.er_list.is-compact .er_note, .er_list.is-compact .er_actions { display: none; }
.er_minis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 4px 0 10px; }
.er_mini { display: flex; flex-direction: column; align-items: center; padding: 8px 4px; border-radius: 9px; text-decoration: none !important; background: var(--fb-surface-2); border: 1px solid var(--fb-line); }
.er_mini strong { font: 400 22px/1.1 var(--fb-font-heading); color: var(--fb-text); }
.er_mini span { font-size: 11.5px; color: var(--fb-muted); }
.er_mini.is-overdue strong { color: var(--fb-danger-text); }
.er_mini.is-today strong { color: var(--fb-warning-text); }

.er_page .er_stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.er_stat { display: flex; flex-direction: column; padding: 14px 16px; border-radius: 12px; text-decoration: none !important; background: var(--fb-surface); border: 1px solid var(--fb-border-soft); box-shadow: var(--fb-elev-1); }
.er_stat strong { font: 400 30px/1.1 var(--fb-font-heading); color: var(--fb-text); }
.er_stat span { font-size: 13px; color: var(--fb-muted); }
.er_stat.is-overdue strong { color: var(--fb-danger-text); }
.er_stat.is-today strong { color: var(--fb-warning-text); }
.er_group { margin-bottom: 16px; }
.er_group .er_list { padding: 4px 20px 10px; }
.er_group.is-overdue { border-left: 3px solid var(--fb-danger); }
.er_group.is-today { border-left: 3px solid var(--fb-warning); }
.er_none { padding: 40px 20px; text-align: center; }
.er_none_icon { display: inline-flex; padding: 14px; margin-bottom: 10px; border-radius: 50%; color: var(--fb-success); background: var(--fb-success-soft); }
.er_none strong { display: block; font-size: 16px; color: var(--fb-text); }
.er_none p { max-width: 520px; margin: 6px auto 0; font-size: 13.5px; color: var(--fb-muted); }

.er_dialog { width: 560px; max-width: calc(100vw - 24px); padding: 0; border: 1px solid var(--fb-border-soft); border-radius: 14px; color: var(--fb-text); background: var(--fb-surface); box-shadow: var(--fb-elev-2); }
.er_dialog::backdrop { background: rgba(15, 18, 24, .45); }
.er_dialog form { margin: 0; padding: 18px 20px 16px; }
.er_dialog_head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.er_dialog_head h2 { margin: 0; font: 400 21px/1.3 var(--fb-font-heading); text-transform: none; letter-spacing: 0; color: var(--fb-text); }
.er_field { margin-bottom: 12px; }
.er_field label, .er_label { display: block; margin: 0 0 4px; font-size: 12.5px; font-weight: 600; color: var(--fb-text-2); }
.er_field label small { font-weight: 400; color: var(--fb-muted); }
.er_field input[type=text], .er_field input[type=search], .er_field input[type=date], .er_field input[type=time], .er_field select, .er_field textarea { width: 100%; box-sizing: border-box; }
.er_row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.er_row .er_field { margin-bottom: 6px; }
.er_templates, .er_quick { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.er_quick { margin: 0 0 12px; }
.er_chip { display: inline-flex; align-items: center; gap: 4px; height: 26px; padding: 0 10px; border-radius: 13px; font-size: 12px; font-weight: 600; color: var(--fb-text-2);
	background: var(--fb-surface-2); border: 1px solid var(--fb-border-soft); cursor: pointer; }
.er_chip small { font-weight: 500; color: var(--fb-muted); }
.er_chip:hover { color: var(--fb-blue-dark); border-color: var(--fb-blue-border); background: var(--fb-blue-tint); }
.er_results { margin: 4px 0 0; padding: 0; list-style: none; max-height: 220px; overflow-y: auto; border-radius: 8px; }
.er_results li { display: flex; flex-direction: column; padding: 7px 10px; border-radius: 7px; cursor: pointer; }
.er_results li strong { font-size: 13.5px; color: var(--fb-text); }
.er_results li span { font-size: 12px; color: var(--fb-muted); }
.er_results li:hover, .er_results li:focus { background: var(--fb-blue-tint); outline: none; }
.er_results li.er_noresult { cursor: default; font-size: 13px; color: var(--fb-muted); }
.er_chosen_box { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; border-radius: 8px; font-weight: 600; font-size: 13.5px;
	background: var(--fb-blue-tint); border: 1px solid var(--fb-blue-border); color: var(--fb-text); }
.er_error { margin: 0 0 10px; padding: 8px 12px; border-radius: 8px; font-size: 13px; color: var(--fb-danger-text); background: var(--fb-danger-soft); }
.er_dialog_foot { display: flex; align-items: center; gap: 8px; margin-top: 4px; }
.er_spacer { flex: 1; }
.er_delete { color: var(--fb-danger-text); }
.er_delete:hover { color: var(--fb-danger); }

@media (max-width: 860px) {
	.kal_page .kal_main { padding: 14px 12px; }
	.kal_title h1 { font-size: 22px; }
	.kal_dow_long { display: none; }
	.kal_dow_short { display: inline; }
	.kal_dow { padding: 6px 4px; text-align: center; }
	.kal_grid.is-monat .kal_day { min-height: 64px; padding: 3px 2px 4px; }
	.kal_grid.is-monat .kal_ev { justify-content: center; padding: 3px 2px; }
	.kal_grid.is-monat .kal_ev span { display: none; }
	.kal_grid.is-monat .kal_add { display: none; }
	.kal_grid.is-monat .kal_num small { display: none; }
	.kal_grid.is-woche { grid-template-columns: 1fr; }
	.kal_grid.is-woche .kal_dow { display: none; }
	.kal_grid.is-woche .kal_day { min-height: 0; }
	.kal_list_day { grid-template-columns: 1fr; gap: 6px; }
	.er_page .er_stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.er_row { grid-template-columns: 1fr; }
}

/* ================= claim side boxes: status, Regulierung, note, versions (layout/claim_status, settlement_*) ================= */
.cs_facts { display: grid; gap: 4px; margin: 0 0 4px; }
.cs_facts div { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; }
.cs_facts dt { color: var(--fb-muted); font-weight: 500; }
.cs_facts dd { margin: 0; color: var(--fb-text); text-align: right; }
.cs_actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.cs_delete { font-size: 12.5px; color: var(--fb-danger-text); display: inline-flex; align-items: center; gap: 4px; text-decoration: none; }
.cs_delete:hover { color: var(--fb-danger); text-decoration: underline; }
.cs_version { margin-top: 12px; padding: 10px 12px; border-radius: 10px; background: var(--fb-warning-soft); }
.cs_version p { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; font-size: 12.5px; color: var(--fb-warning-text); }
.cs_note { font-size: 13.5px; color: var(--fb-text); word-break: break-word; }
.cs_empty { color: var(--fb-muted); font-size: 13px; }
.cs_note_form textarea { width: 100%; box-sizing: border-box; min-height: 110px; margin-bottom: 8px; resize: vertical; }
.versionlist { display: flex; flex-direction: column; gap: 2px; }
.cs_version_link { display: flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 7px; font-size: 13px; color: var(--fb-text-2); text-decoration: none !important; }
.cs_version_link .icon { color: var(--fb-muted); }
.cs_version_link:hover { background: var(--fb-hover); color: var(--fb-text); }
.cs_version_link.is-current { background: var(--fb-blue-tint); color: var(--fb-blue-dark); font-weight: 600; }
.cs_select { width: 100%; }
.fm_saved { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--fb-success-text); }
.fm_saved .icon { color: var(--fb-success); }

.sv_head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.sv_head h3 { margin: 0; }
.sv_number { display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--fb-line); }
.sv_number span { font-size: 12px; color: var(--fb-muted); }
.sv_number strong { font-size: 14.5px; color: var(--fb-text); font-variant-numeric: tabular-nums; }
.sv_number em { font-style: normal; font-size: 13px; color: var(--fb-warning-text); }
.sv_amounts { display: grid; gap: 4px; margin: 0; }
.sv_amounts div { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; }
.sv_amounts dt { color: var(--fb-text-2); }
.sv_amounts dd { margin: 0; font-variant-numeric: tabular-nums; color: var(--fb-text); }
.sv_amounts div.is-zero dd, .sv_amounts div.is-zero dt { color: var(--fb-muted); }
.fm_settle_totals { display: grid; gap: 4px; margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--fb-blue-tint); border: 1px solid var(--fb-blue-border); }
.fm_settle_totals div { display: flex; justify-content: space-between; gap: 8px; font-size: 13.5px; }
.fm_settle_totals dt { color: var(--fb-text-2); }
.fm_settle_totals dd { margin: 0; font-weight: 700; color: var(--fb-text); font-variant-numeric: tabular-nums; }

/* Regulierung form (superadmins, claim form) */
.fm_settle h3 { margin-bottom: 12px; }
.fm_settle_state { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; margin: 0 0 12px; padding: 3px; border-radius: 10px; background: var(--fb-hover); border: 1px solid var(--fb-border-soft); }
.fm_seg { display: block; position: relative; margin: 0; cursor: pointer; }
.fm_seg input { position: absolute; top: 0; left: 0; opacity: 0; width: 1px; height: 1px; margin: 0; }
.fm_seg span { display: block; padding: 6px 8px; border-radius: 8px; text-align: center; font-size: 13px; font-weight: 600; color: var(--fb-muted); transition: background-color .15s, color .15s; }
.fm_seg input:checked + span { color: var(--fb-text); background: var(--fb-surface); box-shadow: 0 1px 2px rgba(30, 32, 36, .12); }
.fm_seg input:focus-visible + span { outline: 2px solid var(--fb-blue); outline-offset: 1px; }
.fm_settle .pad > p { margin: 0 0 10px; }
.fm_settle_date, .fm_settle_field { display: grid; gap: 3px; }
.fm_settle label { margin: 0; font-size: 12.5px; font-weight: 500; color: var(--fb-muted); }
.fm_settle input[type=text] { width: 100%; margin: 0; }
.fm_settle_date input[type=text] { width: auto; }
.fm_settle_money { display: grid; grid-template-columns: 1fr 118px; align-items: center; gap: 6px 10px; margin-top: 4px; }
.fm_euro { position: relative; display: block; }
.fm_settle .fm_euro input[type=text] { padding-right: 24px; text-align: right; font-variant-numeric: tabular-nums; }
.fm_euro span { position: absolute; right: 9px; top: 50%; transform: translateY(-50%); font-size: 13px; color: var(--fb-muted); pointer-events: none; }
.fm_settle_hint { margin: 6px 0 10px !important; font-size: 11.5px; line-height: 1.4; color: var(--fb-muted); }
.fm_settle_save { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* ================= user management (users/index, users/company_users, users/company_menu) ================= */
.content > .pagecenter:has(> .rightbox) > .leftcolumn { width: calc(100% - 304px); }
.um_main .page_head { margin: 0 0 18px; }
.um_back { margin: 0 0 6px !important; font-size: 13px !important; }
.um_back a { display: inline-flex; align-items: center; gap: 2px; color: var(--fb-muted); text-decoration: none; }
.um_back a:hover { color: var(--fb-blue); }
.icon.is-flipped { transform: scaleX(-1); }
.um_section { display: flex; align-items: center; gap: 8px; margin: 18px 0 10px; }
.um_main form > h3.um_section:first-of-type { margin-top: 0; }
.um_count { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 20px; padding: 0 7px; border-radius: 10px; font: 600 11.5px/1 var(--fb-font); color: var(--fb-text-2); background: var(--fb-hover); }
.um_user { display: inline-flex; align-items: center; gap: 10px; }
.um_user .avatar { width: 30px; height: 30px; font-size: 11.5px; flex: none; }
.um_user_text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.um_mail_m { display: none; font-size: 12px; color: var(--fb-muted); }
.badge_fb.um_role { color: var(--fb-text-2); background: var(--fb-hover); }
.badge_fb.um_role.is-info { color: var(--fb-blue-dark); background: var(--fb-blue-soft); }
.badge_fb.um_role.is-super { color: #fff; background: var(--fb-navy); }
[data-theme=dark] .badge_fb.um_role.is-super { color: #0d1b2a; }
.data_table .actions .icon_btn + .icon_btn { margin-left: 4px; }
.icon_btn.is-danger:hover { color: var(--fb-danger-text); border-color: var(--fb-danger-text); background: var(--fb-danger-soft); }
.um_empty .icon { color: var(--fb-muted); }
.um_facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px 24px; margin: 0 0 8px; padding: 14px 16px; border-radius: 10px; background: var(--fb-surface-2); border: 1px solid var(--fb-border-soft); }
.um_facts dt { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--fb-muted); }
.um_facts dd { margin: 3px 0 0; font-size: 13.5px; color: var(--fb-text); word-break: break-word; }
.um_hint { margin: -4px 0 12px; font-size: 13px; color: var(--fb-muted); }
.um_hint .icon { vertical-align: -1px; }
.um_premium select { width: 100px; }
.um_premium .fm_euro { width: 140px; }
.um_premium .fm_euro input { width: 100%; padding-right: 26px; text-align: right; font-variant-numeric: tabular-nums; }
.um_premium tr.um_premium_new td { background: var(--fb-surface-2); }
.um_premium_save { display: flex; justify-content: flex-end; margin-top: 14px; }
.um_companies .pad { padding-bottom: 8px; }
.um_companies_head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.um_companies_head h3 { display: flex; align-items: center; gap: 8px; margin: 0; }
.um_filter { width: 100%; box-sizing: border-box; }
.um_company_list { margin: 0; list-style: none; }
.um_company_list a { display: flex; align-items: center; gap: 9px; }
.um_company_list a .icon { flex: none; color: var(--fb-muted); }
.um_company_list a.is-active .icon { color: var(--fb-blue); }
.um_none { margin: 0; padding: 4px 18px 16px; font-size: 13px; color: var(--fb-muted); }

/* user and company form (users/edit-user, users/edit-company) */
.um_form { max-width: 760px; }
.um_fieldset { margin: 0 0 18px; padding: 16px 18px 6px; border: 1px solid var(--fb-border-soft); border-radius: 12px; background: var(--fb-surface); }
.um_fieldset legend { width: auto; margin: 0; padding: 0 6px; border: 0; font: 600 11.5px/1.4 var(--fb-font); letter-spacing: .06em; text-transform: uppercase; color: var(--fb-muted); }
.um_grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.um_form p { margin: 0 0 12px; }
.um_form .um_wide { grid-column: 1 / -1; }
.um_form label, .um_label { display: block; margin: 0 0 4px; font-size: 12.5px; font-weight: 600; color: var(--fb-text-2); }
.um_form input[type=text], .um_form input[type=email], .um_form input[type=tel], .um_form input[type=password], .um_form select { width: 100%; box-sizing: border-box; height: 38px; }
.um_form span.error { display: block; margin-top: 4px; font-size: 12.5px; }
.um_req { color: var(--fb-danger-text); }
.um_field_hint { display: block; margin-top: 4px; font-size: 12px; color: var(--fb-muted); }
.um_legend_hint { margin: 0 0 12px !important; }
.um_roles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 0 12px; }
.um_form label.um_role_opt { position: relative; display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 11px 12px; border: 1px solid var(--fb-border); border-radius: 10px; background: var(--fb-surface); font-weight: 400; cursor: pointer; transition: border-color .15s, background-color .15s; }
.um_form label.um_role_opt:hover { border-color: var(--fb-blue-border); }
.um_role_opt input { flex: none; margin: 2px 0 0; accent-color: var(--fb-accent); }
.um_role_opt span { display: flex; flex-direction: column; gap: 3px; }
.um_role_opt strong { font-size: 13.5px; color: var(--fb-text); }
.um_role_opt small { font-size: 12px; line-height: 1.35; color: var(--fb-muted); }
.um_form label.um_role_opt:has(input:checked) { border-color: var(--fb-blue); background: var(--fb-blue-tint); box-shadow: inset 0 0 0 1px var(--fb-blue); }
.um_form label.um_role_opt.is-disabled { opacity: .45; cursor: not-allowed; }
.um_form_actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 4px; }
.um_twofa { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; max-width: 760px; box-sizing: border-box; margin-top: 22px; padding: 14px 18px; border: 1px solid var(--fb-border-soft); border-radius: 12px; background: var(--fb-surface-2); }
.um_twofa h3 { display: flex; align-items: center; gap: 6px; margin: 0 0 6px; }
.um_twofa p { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0; font-size: 13px; color: var(--fb-text-2); }
.um_twofa form { margin: 0; }
.um_danger p { margin: 0 0 12px; font-size: 13px; color: var(--fb-text-2); }
.ui_btn.is-danger { color: var(--fb-danger-text); border-color: var(--fb-danger-text); }
.ui_btn.is-danger:hover { color: #fff; background: var(--fb-danger); border-color: var(--fb-danger); }
.ui_btn.is-danger:hover .icon { color: #fff; }
@media (max-width: 700px) {
	.um_grid, .um_roles { grid-template-columns: 1fr; }
	.um_table th:nth-child(2), .um_table td:nth-child(2) { display: none; }
	.um_mail_m { display: block; }
	.um_form_actions { flex-direction: column-reverse; }
	.um_form_actions .ui_btn { justify-content: center; }
}

/* CSV import (layout/import_form) */
.im_page .page_head { margin: 0 0 18px; }
.im_drop { position: relative; display: flex !important; flex-direction: column; align-items: center; gap: 6px; margin: 0 0 12px !important; padding: 26px 16px; border: 1.5px dashed var(--fb-border); border-radius: 12px; background: var(--fb-surface-2); text-align: center; cursor: pointer; transition: border-color .15s, background-color .15s; }
.im_drop .icon { color: var(--fb-blue); }
.im_drop strong { font-size: 14px; color: var(--fb-text); }
.im_file_name { font-size: 12.5px; font-weight: 400; color: var(--fb-muted); }
.im_drop input[type=file] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.im_drop:hover, .im_drop.is-over { border-color: var(--fb-blue); background: var(--fb-blue-tint); }
.im_drop:focus-within { outline: 2px solid var(--fb-blue); outline-offset: 2px; }
.im_drop.has-file { border-style: solid; border-color: var(--fb-success); }
.im_drop.has-file .im_file_name { font-weight: 600; color: var(--fb-success-text); }
.im_options { margin: 0 0 12px; }
.im_options summary { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--fb-blue); cursor: pointer; }
.im_options[open] summary { margin-bottom: 10px; }
.im_form .im_options input[type=text] { width: 64px; text-align: center; }
.im_form label.im_check { display: inline-flex; align-items: center; gap: 6px; font-weight: 400; color: var(--fb-text); cursor: pointer; }
.im_list { margin: 0 0 10px; padding: 0; list-style: none; }
.im_list li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 0; border-bottom: 1px solid var(--fb-line); }
.im_list li:last-child { border-bottom: 0; }
.im_list a { display: inline-flex; align-items: center; gap: 8px; padding: 4px 6px; margin-left: -6px; border-radius: 7px; font-size: 13px; color: var(--fb-text-2); text-decoration: none; }
.im_list a:hover { background: var(--fb-hover); color: var(--fb-text); }
.im_list a .icon { color: var(--fb-muted); }
.im_list strong { color: var(--fb-text); }
.im_list .icon_btn { width: 28px; height: 28px; }
.im_hint { margin: 0; font-size: 11.5px; line-height: 1.45; color: var(--fb-muted); }

/* statistics side menu (statistics/menu) */
.st_company label { display: block; margin: 0 0 4px; font-size: 12.5px; font-weight: 600; color: var(--fb-text-2); }
.st_company select { width: 100%; }
.st_menu { padding: 0 0 8px; }
.st_menu_title { margin: 10px 20px 2px; font-size: 10.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--fb-muted); }
.st_menu .right_menu { padding-top: 0; padding-bottom: 4px; }

/* ================= responsive ================= */
@media (max-width: 1180px) {
	.content > .pagecenter:has(> .rightbox, > .right_column) > .leftbox,
	.content > .pagecenter:has(> .right_column) > .leftcolumn { width: calc(100% - 284px); }
	.content > .pagecenter > .rightbox, .content > .pagecenter > .right_column { width: 264px; }
}
@media (max-width: 1024px) {
	.shell { margin-left: 0; }
	.sidebar { transform: translateX(-100%); transition: transform .22s ease; box-shadow: none; }
	body.sidebar-open .sidebar { transform: none; box-shadow: var(--fb-elev-2); }
	body.sidebar-open .sidebar_backdrop { display: block; position: fixed; inset: 0; z-index: 1050; background: rgba(15, 20, 25, .4); }
	body.sidebar-open { overflow: hidden; }
	.sb_close { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 0; border-radius: 8px; background: none; color: var(--fb-muted); }
	.tb_burger { display: inline-flex !important; }
	.topbar, .content { padding-left: 20px; padding-right: 20px; }
}
@media (max-width: 860px) {
	.topbar { gap: 8px; }
	.tb_search { flex: 1 1 auto; }
	.tb_actions { gap: 2px; }
	.tb_user > summary { padding: 0 2px; }
	.tb_chevron { display: none; }
	.content { padding-left: 14px; padding-right: 14px; }
	.kpi_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.kpi { padding: 14px; }
	.kpi_value { font-size: 22px; }
	.kpi_icon { width: 32px; height: 32px; margin-bottom: 4px; }
	.page_head h1 { font-size: 26px; }
	.cockpit_side { grid-template-columns: minmax(0, 1fr); }
	.list_bar { flex-direction: column; align-items: stretch; }
	.seg { overflow-x: auto; }
	.mini_when small, .mini_icon { display: none; }
	.content > .pagecenter > .leftbox, .content > .pagecenter > .leftcolumn,
	.content > .pagecenter:has(> .rightbox, > .right_column) > .leftbox,
	.content > .pagecenter > .rightbox, .content > .pagecenter > .right_column { width: 100% !important; float: none; }
	.auth_wrap { grid-template-columns: 1fr; }
	.auth_brand { padding: 28px 24px; gap: 18px; }
	.auth_claim h1 { font-size: 30px; }
	.auth_claim p, .auth_claim ul { display: none; }
	.tb_user_text, .tb_primary span, .tb_search kbd { display: none; }
	.tb_primary { padding: 0 11px; }
	.tb_search_text { font-size: 13px; }
}

/* ================= dark theme ================= */
[data-theme=dark] {
	color-scheme: dark;
	--fb-navy: #9cc9e6;
	--fb-blue: #6aaed6;
	--fb-blue-dark: #9cc9e6;
	--fb-blue-soft: rgba(106, 174, 214, .15);
	--fb-blue-soft-2: rgba(106, 174, 214, .22);
	--fb-blue-tint: rgba(106, 174, 214, .07);
	--fb-blue-border: rgba(106, 174, 214, .35);
	--fb-text: #e4e7eb;
	--fb-text-2: #c3c8cf;
	--fb-muted: #98a0aa;
	--fb-faint: #6d7580;
	--fb-border-strong: #45505c;
	--fb-border: #353e49;
	--fb-border-soft: #29313b;
	--fb-line: #232a33;
	--fb-line-2: #262e37;
	--fb-hover: #212932;
	--fb-subtle: #1a2028;
	--fb-bg: #0f141a;
	--fb-surface: #161c23;
	--fb-surface-2: #1b222a;
	--fb-shadow: rgba(0, 0, 0, .35);
	--fb-success-soft: rgba(31, 157, 85, .16);
	--fb-warning-soft: rgba(224, 150, 30, .16);
	--fb-danger-soft: rgba(217, 63, 69, .16);
	--fb-danger-text: #f3a6a9;
	--fb-success-text: #8fd9ae;
	--fb-warning-text: #f0b85a;
	--fb-accent: #2f6f95;
	--fb-accent-hover: #3a80a8;
	--fb-ring: rgba(106, 174, 214, .35);
	--fb-elev-1: 0 1px 2px rgba(0, 0, 0, .3);
	--fb-elev-2: 0 16px 40px rgba(0, 0, 0, .5), 0 2px 6px rgba(0, 0, 0, .3);
}
[data-theme=dark] body { color: var(--fb-text); }
[data-theme=dark] .sb_logo img { filter: brightness(0) invert(.92); }
[data-theme=dark] .avatar { background: linear-gradient(135deg, #1d5e8a, #3f86ad); }
/* filled buttons keep white text on a darker blue */
[data-theme=dark] input[type=submit], [data-theme=dark] input[type=button]:not(.ui-datepicker-trigger),
[data-theme=dark] .pagination strong, [data-theme=dark] .btn-primary { background: var(--fb-accent); border-color: var(--fb-accent); color: #fff; }
[data-theme=dark] input[type=submit]:hover { background: var(--fb-accent-hover); }
[data-theme=dark] input, [data-theme=dark] select, [data-theme=dark] textarea { color: var(--fb-text); background-color: var(--fb-surface-2); border-color: var(--fb-border); }
[data-theme=dark] input::placeholder, [data-theme=dark] textarea::placeholder { color: var(--fb-faint); }
[data-theme=dark] .meta { background: var(--fb-blue-tint); }
[data-theme=dark] hr { border-color: var(--fb-line); }
[data-theme=dark] .table > thead > tr > th, [data-theme=dark] .table > tbody > tr > td, [data-theme=dark] .table > tbody > tr > th { border-color: var(--fb-line); }
[data-theme=dark] .table-striped > tbody > tr:nth-of-type(odd) { background-color: var(--fb-subtle); }
[data-theme=dark] .well, [data-theme=dark] .panel, [data-theme=dark] .modal-content, [data-theme=dark] .dropdown-menu, [data-theme=dark] .list-group-item {
	color: var(--fb-text); background-color: var(--fb-surface); border-color: var(--fb-border-soft);
}
[data-theme=dark] .ui-widget-content { color: var(--fb-text); background: var(--fb-surface); border-color: var(--fb-border); }
[data-theme=dark] .ui-widget-header { color: var(--fb-text); background: var(--fb-surface-2); border-color: var(--fb-border); }
[data-theme=dark] .ui-state-default, [data-theme=dark] .ui-widget-content .ui-state-default { color: var(--fb-text-2); background: var(--fb-surface-2); border-color: var(--fb-border-soft); }
[data-theme=dark] .ui-state-hover, [data-theme=dark] .ui-widget-content .ui-state-hover { color: var(--fb-text); background: var(--fb-hover); }
[data-theme=dark] .ui-datepicker .ui-datepicker-prev span, [data-theme=dark] .ui-datepicker .ui-datepicker-next span { filter: invert(1); }
[data-theme=dark] .glyphicon.redtext, [data-theme=dark] .redtext { color: #f08a8f !important; }
[data-theme=dark] .greentext { color: #7fd6a4; }
[data-theme=dark] img[src*="fairbroker-logo"]:not(.auth_logo) { filter: brightness(0) invert(.92); }

/* ================= WhatsApp-Meldungen (views/whatsapp) ================= */
.inline_form { display: inline-flex; margin: 0; }
.ui_btn.is-small { height: 32px; padding: 0 11px; font-size: 12.5px; gap: 6px; }
.ui_btn:disabled { opacity: .5; cursor: default; }
.ui_btn.is-busy { opacity: .7; cursor: progress; }
.link_btn { padding: 0; border: 0; background: none; font: inherit; font-size: 13px; color: var(--fb-blue); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.link_btn:hover { color: var(--fb-blue-dark); }
.wa_notice { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 14px; padding: 12px 14px; border-radius: 10px; font-size: 13.5px; line-height: 1.5; color: var(--fb-text-2); border: 1px solid var(--fb-border-soft); background: var(--fb-surface-2); }
.wa_notice > .icon { flex: none; margin-top: 1px; }
.wa_notice.is-warning { background: var(--fb-warning-soft); border-color: color-mix(in srgb, var(--fb-warning) 30%, transparent); }
.wa_notice.is-warning > .icon { color: var(--fb-warning-text); }
.wa_notice.is-danger { background: var(--fb-danger-soft); border-color: color-mix(in srgb, var(--fb-danger) 30%, transparent); }
.wa_notice.is-danger > .icon { color: var(--fb-danger-text); }
.wa_notice.is-success { background: var(--fb-success-soft); border-color: color-mix(in srgb, var(--fb-success) 30%, transparent); }
.wa_notice.is-success > .icon { color: var(--fb-success-text); }
.wa_notice.is-info > .icon { color: var(--fb-blue); }
.wa_notice form { margin-left: 6px; }
.wa_invite { margin: 0 0 14px; padding: 16px 20px; }
.wa_invite form { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 0; }
.wa_invite_text p { margin: 2px 0 0; max-width: 560px; font-size: 13px; color: var(--fb-muted); }
.wa_invite_form { display: flex; gap: 8px; }
.wa_invite_form input { width: 260px; }
.seg a.has-alert span { color: var(--fb-danger-text); }
.data_table.wa_table tbody td { vertical-align: top; white-space: normal; }
.data_table.wa_table tbody td.actions { vertical-align: middle; }
.data_table.wa_table tbody td.wa_when { white-space: nowrap; }
.wa_when strong { display: block; font-weight: 600; color: var(--fb-text); }
.wa_when small, .wa_company small { display: block; font-size: 12px; color: var(--fb-muted); }
.wa_who_cell strong, .wa_what strong { display: block; font-weight: 600; color: var(--fb-text); white-space: nowrap; }
.wa_who_cell small, .wa_what small { display: block; margin-top: 1px; font-size: 12.5px; color: var(--fb-text-2); }
.wa_what small { min-width: 180px; max-width: 320px; }
.wa_company { min-width: 140px; max-width: 220px; }
.wa_state { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.wa_lang { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 6px; font-size: 11px; font-weight: 600; color: var(--fb-blue-dark); background: var(--fb-blue-soft); }
.wa_delete { font-size: 11.5px; color: var(--fb-muted); }
.wa_delete.is-soon { font-weight: 600; color: var(--fb-danger-text); }
.wa_empty { padding: 48px 20px; text-align: center; }
.wa_empty_icon { display: inline-flex; padding: 14px; margin-bottom: 10px; border-radius: 50%; color: var(--fb-blue); background: var(--fb-blue-soft); }
.wa_empty strong { display: block; font-size: 16px; color: var(--fb-text); }
.wa_empty p { max-width: 460px; margin: 6px auto 0; font-size: 13.5px; color: var(--fb-muted); }

.claim_icon.wa_icon { color: var(--fb-success-text); background: var(--fb-success-soft); }
.wa_body { padding-top: 18px; }
.wa_takeover { margin: 0 0 18px; padding: 16px 18px; border-radius: 12px; border: 1px solid var(--fb-blue-border); background: var(--fb-blue-tint); }
.wa_takeover_head h2 { margin: 0; font: 400 19px/1.3 var(--fb-font-heading); color: var(--fb-text); text-transform: none; letter-spacing: 0; }
.wa_takeover_head p { display: flex; gap: 6px; align-items: center; margin: 4px 0 0; font-size: 13px; color: var(--fb-warning-text); }
.wa_takeover_head p.wa_policyholder { color: var(--fb-text-2); }
.wa_takeover_form { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 12px 0 0; }
.wa_takeover_form label { margin: 0; font-weight: 600; font-size: 13px; color: var(--fb-text-2); }
.wa_takeover_form select { min-width: 280px; max-width: 100%; }
.wa_takeover_note { margin: 10px 0 0; font-size: 12.5px; color: var(--fb-muted); }
.wa_similar { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--fb-blue-border); font-size: 13px; color: var(--fb-text-2); }
.wa_similar p { margin: 0 0 6px; }
.wa_similar ul { margin: 0; padding: 0; list-style: none; }
.wa_similar li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 5px 0; }
.wa_ignore { margin: 12px 0 0; }
.wa_ignore .link_btn { font-size: 12.5px; color: var(--fb-muted); }
.wa_section { margin: 0 0 22px; }
.wa_section h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--fb-muted); }
.wa_facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px 24px; margin: 0; }
.wa_facts dt { font-size: 12px; font-weight: 500; color: var(--fb-muted); }
.wa_facts dd { margin: 2px 0 0; font-size: 14px; color: var(--fb-text); word-break: break-word; }
.wa_quote { margin: 12px 0 0; padding: 12px 16px; border-left: 3px solid var(--fb-blue); border-radius: 0 8px 8px 0; background: var(--fb-surface-2); font-size: 14.5px; line-height: 1.55; color: var(--fb-text); }
.wa_hint { margin: 10px 0 0; font-size: 13.5px; color: var(--fb-text-2); }
.wa_photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.wa_photos a { display: block; overflow: hidden; border-radius: 10px; border: 1px solid var(--fb-border-soft); background: var(--fb-hover); aspect-ratio: 4 / 3; }
.wa_photos img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .2s; }
.wa_photos a:hover img { transform: scale(1.04); }
.wa_photos a.wa_doc { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 10px; font-size: 12px; color: var(--fb-text-2); text-decoration: none; text-align: center; }
.wa_muted { margin: 0 0 8px; font-size: 12.5px; color: var(--fb-muted); }
.wa_chat { display: flex; flex-direction: column; gap: 6px; max-height: 560px; overflow-y: auto; padding: 14px; border-radius: 12px; border: 1px solid var(--fb-border-soft); background: var(--fb-surface-2); }
.wa_day { text-align: center; margin: 6px 0; }
.wa_day span { display: inline-block; padding: 2px 10px; border-radius: 8px; font-size: 11.5px; font-weight: 600; color: var(--fb-muted); background: var(--fb-surface); border: 1px solid var(--fb-line); }
.wa_msg { display: flex; }
.wa_msg.is-bot, .wa_msg.is-team { justify-content: flex-end; }
.wa_bubble { position: relative; max-width: 78%; padding: 8px 12px 20px; border-radius: 12px; font-size: 13.5px; line-height: 1.45; color: var(--fb-text); background: var(--fb-surface); border: 1px solid var(--fb-line); box-shadow: 0 1px 1px rgba(30, 32, 36, .04); word-break: break-word; }
.wa_msg.is-driver .wa_bubble { border-top-left-radius: 4px; }
.wa_msg.is-bot .wa_bubble { border-top-right-radius: 4px; background: var(--fb-blue-soft); border-color: var(--fb-blue-border); }
.wa_msg.is-team .wa_bubble { border-top-right-radius: 4px; background: var(--fb-success-soft); border-color: color-mix(in srgb, var(--fb-success) 30%, transparent); }
.wa_who { display: block; margin-bottom: 2px; font-size: 11.5px; font-weight: 700; color: var(--fb-success-text); }
.wa_de { display: block; margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--fb-border-strong); font-size: 12.5px; color: var(--fb-text-2); }
.wa_de .icon { color: var(--fb-blue); vertical-align: -1px; }
.wa_bubble time { position: absolute; right: 10px; bottom: 4px; font-size: 11px; color: var(--fb-muted); }

.wa_box h3 { display: flex; align-items: center; gap: 8px; }
.wa_box h3 .icon { color: var(--fb-blue); }
.rightbox.wa_box.is-alert { border-color: color-mix(in srgb, var(--fb-danger) 40%, transparent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--fb-danger) 12%, transparent); }
.wa_box.is-alert h3 .icon { color: var(--fb-danger-text); }
.wa_box p { font-size: 13px; }
.wa_phone a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 15px; }
.wa_box_actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.wa_reply label, .wa_note_form label { display: block; margin: 0 0 4px; font-size: 12.5px; font-weight: 500; color: var(--fb-muted); }
.wa_reply textarea, .wa_note_form textarea { width: 100%; box-sizing: border-box; resize: vertical; }
.wa_translation { margin-top: 10px; }
.wa_reply + .link_btn { margin-top: 10px; font-size: 12.5px; }
.wa_status { display: grid; gap: 8px; margin: 0; }
.wa_status div { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; }
.wa_status dt { color: var(--fb-muted); font-weight: 500; }
.wa_status dd { margin: 0; text-align: right; color: var(--fb-text); }
.wa_notes { margin: 0 0 10px; padding: 0; list-style: none; }
.wa_notes li { padding: 8px 0; border-bottom: 1px solid var(--fb-line); }
.wa_notes p { margin: 0; font-size: 13px; color: var(--fb-text); word-break: break-word; }
.wa_notes small { font-size: 11.5px; color: var(--fb-muted); }
.wa_note_form .ui_btn { margin-top: 6px; }
.wa_timeline { margin: 0; padding: 0 0 0 14px; list-style: none; border-left: 2px solid var(--fb-line); }
.wa_timeline li { position: relative; padding: 0 0 10px 10px; font-size: 13px; color: var(--fb-text); }
.wa_timeline li:before { content: ""; position: absolute; left: -20px; top: 5px; width: 10px; height: 10px; border-radius: 50%; background: var(--fb-blue); border: 2px solid var(--fb-surface); }
.wa_timeline li.is-success:before { background: var(--fb-success); }
.wa_timeline li.is-warning:before, .wa_timeline li.is-warn:before { background: var(--fb-warning); }
.wa_timeline li.is-danger:before, .wa_timeline li.is-error:before { background: var(--fb-danger); }
.wa_timeline small { display: block; font-size: 11.5px; color: var(--fb-muted); }
.wa_stats .kpi_grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.wa_stats_grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }
.wa_stats_wide { grid-column: 1 / -1; }
.wa_chart { position: relative; height: 260px; }
.wa_bars { margin: 0; padding: 0; list-style: none; }
.wa_bars li { display: grid; grid-template-columns: minmax(120px, 38%) 1fr auto; align-items: center; gap: 10px; padding: 5px 0; font-size: 13px; }
.wa_bars.is-plain li { grid-template-columns: 1fr auto; border-bottom: 1px solid var(--fb-line); padding: 8px 0; }
.wa_bar_label { color: var(--fb-text-2); }
.wa_bar { height: 8px; border-radius: 4px; background: var(--fb-hover); overflow: hidden; }
.wa_bar i { display: block; height: 100%; border-radius: 4px; background: var(--fb-blue); }
.wa_bars strong { min-width: 24px; text-align: right; color: var(--fb-text); font-variant-numeric: tabular-nums; }
.wa_facts_lists h4 { margin: 12px 0 4px; font-size: 12px; font-weight: 700; color: var(--fb-muted); text-transform: uppercase; letter-spacing: .05em; }
.wa_facts_lists h4:first-child { margin-top: 0; }
.wa_heat { border-collapse: separate; border-spacing: 3px; margin: 0 auto; }
.wa_heat th { padding: 0 4px; font-size: 11px; font-weight: 600; color: var(--fb-muted); text-align: center; }
.wa_heat tbody th { text-align: right; }
.wa_heat td { width: 26px; height: 24px; border-radius: 5px; font-size: 10.5px; text-align: center; color: var(--fb-text);
	background: color-mix(in srgb, var(--fb-accent) calc(var(--n) * 100%), var(--fb-hover)); }
.wa_heat td.is-hot { color: #fff; font-weight: 700; }
.wa_claim_box p { margin: 0 0 8px; font-size: 13px; color: var(--fb-text-2); }
.wa_claim_box .wa_box_actions { margin-top: 4px; }
@media (max-width: 1180px) { .wa_stats .kpi_grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) {
	.wa_stats_grid { grid-template-columns: 1fr; }
	.wa_stats .kpi_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wa_invite_form { width: 100%; }
	.wa_invite_form input { flex: 1; width: auto; min-width: 0; }
	.wa_bubble { max-width: 90%; }
	.wa_takeover_form select { min-width: 0; width: 100%; }
}

/* ================= print ================= */
@media print {
	/* always printed light */
	:root[data-theme] {
		--fb-bg: #fff; --fb-surface: #fff; --fb-surface-2: #fff; --fb-text: #000; --fb-text-2: #222; --fb-muted: #555;
		--fb-border: #ccc; --fb-border-soft: #ddd; --fb-line: #e5e5e5; --fb-blue: #24577a; --fb-blue-dark: #24577a;
	}
	.sidebar, .topbar, .app_footer, .cmdk, .toasts, .sidebar_backdrop, .skip_link { display: none !important; }
	.shell { margin: 0; }
	.content { padding: 0; }
}
