/* Minimal overrides applied after frest-core*.css */
html:not([dir=rtl]) .menu-vertical .app-brand{padding:1.5rem 1.25rem 1.5rem 2rem!important}
[dir=rtl] .menu-vertical .app-brand{padding:1.5rem 2rem 1.5rem 1.25rem!important}

/* Bootstrap dark theme table fixes */
html.dark-style .table thead th,
[data-bs-theme="dark"] .table thead th {
	background-color: #212529; /* Bootstrap dark */
	color: #f8f9fa;
	border-color: #343a40;
}

html.dark-style .table tbody td,
[data-bs-theme="dark"] .table tbody td {
	color: #dee2e6;
	border-color: #343a40;
}

html.dark-style .table,
[data-bs-theme="dark"] .table {
	--bs-table-bg: transparent;
	--bs-table-color: #dee2e6;
}

/* Bootstrap dark theme subtle background utilities */
html.dark-style,
[data-bs-theme="dark"] {
	--bs-primary-bg-subtle: rgba(var(--bs-primary-rgb), 0.15);
	--bs-secondary-bg-subtle: rgba(var(--bs-secondary-rgb), 0.15);
	--bs-success-bg-subtle: rgba(var(--bs-success-rgb), 0.15);
	--bs-info-bg-subtle: rgba(var(--bs-info-rgb), 0.15);
	--bs-warning-bg-subtle: rgb(78, 72, 66);
	--bs-danger-bg-subtle: rgba(var(--bs-danger-rgb), 0.15);
	--bs-light-bg-subtle: rgba(255, 255, 255, 0.06);
	--bs-dark-bg-subtle: rgba(0, 0, 0, 0.35);
}

/* Ensure warning subtle visibly changes in dark mode even if vars are overridden */
html.dark-style .bg-warning-subtle,
[data-bs-theme="dark"] .bg-warning-subtle {
	background-color: rgb(78, 72, 66) !important;
}

/* Public footer accessibility: non-color distinction + larger tap targets */
.landing-footer a.footer-link {
	text-decoration: underline;
	text-underline-offset: 0.15em;
	text-decoration-thickness: 1px;
}

@media (max-width: 576px) {
	.landing-footer a.footer-link {
		display: inline-block;
		padding: 0.35rem 0;
	}
	.landing-footer .footer-bottom a.footer-link {
		padding: 0.5rem 0.25rem;
	}
}

/* Landing team: mobile team photo sizing */
@media (max-width: 575.98px) {
	.landing-team .team-image-box .card-img-position {
		height: 15rem;
		width: auto;
	}
}

/* ── Sticky Mobile Action Bar (#4) ── */
.mobile-action-bar {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 1050;
	background: var(--bs-body-bg, #fff);
	border-top: 1px solid var(--bs-border-color, #dee2e6);
	padding: 0.75rem 1rem;
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
}

.mobile-action-bar .btn {
	flex: 1;
	max-width: 280px;
}

/* Add bottom padding to page content on mobile so FAB doesn't overlap */
@media (max-width: 767.98px) {
	.container-xxl.flex-grow-1 {
		padding-bottom: 5rem;
	}
}

/* ── Incident Timeline Visualization (#5) ── */
.incident-timeline {
	position: relative;
	padding-left: 1.5rem;
}

.incident-timeline::before {
	content: '';
	position: absolute;
	left: 7px;
	top: 4px;
	bottom: 4px;
	width: 2px;
	background: var(--bs-border-color, #dee2e6);
}

.incident-timeline__item {
	position: relative;
	padding-bottom: 1.25rem;
	padding-left: 1rem;
}

.incident-timeline__item:last-child {
	padding-bottom: 0;
}

.incident-timeline__dot {
	position: absolute;
	left: -1.5rem;
	top: 4px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 2px solid #fff;
	z-index: 1;
	box-shadow: 0 0 0 2px var(--bs-border-color, #dee2e6);
}

.incident-timeline__dot--investigating { background: var(--bs-warning, #ffab00); box-shadow: 0 0 0 2px var(--bs-warning, #ffab00); }
.incident-timeline__dot--identified    { background: var(--bs-info, #03c3ec);    box-shadow: 0 0 0 2px var(--bs-info, #03c3ec); }
.incident-timeline__dot--monitoring    { background: var(--bs-primary, #696cff); box-shadow: 0 0 0 2px var(--bs-primary, #696cff); }
.incident-timeline__dot--resolved      { background: var(--bs-success, #71dd37); box-shadow: 0 0 0 2px var(--bs-success, #71dd37); }
.incident-timeline__dot--default       { background: var(--bs-secondary, #8592a3); box-shadow: 0 0 0 2px var(--bs-secondary, #8592a3); }

.incident-timeline__content {
	min-height: 2rem;
}

/* ── Component Map Tree (#6) ── */
.component-tree__root {
	padding: 0.5rem 0;
	font-size: 1rem;
}

.component-tree__group {
	margin-left: 1rem;
	padding-left: 1rem;
	border-left: 2px solid var(--bs-border-color, #dee2e6);
}

.component-tree__node {
	padding: 0.35rem 0;
	position: relative;
}

.component-tree__node::before {
	content: '';
	position: absolute;
	left: -1rem;
	top: 50%;
	width: 0.75rem;
	height: 0;
	border-top: 2px solid var(--bs-border-color, #dee2e6);
}

.component-tree__indent {
	margin-left: 1.5rem;
	padding-left: 1rem;
	border-left: 2px solid var(--bs-border-color, #dee2e6);
}

.component-tree__indent-2 {
	margin-left: 3rem;
	padding-left: 1rem;
	border-left: 2px solid var(--bs-border-color, #dee2e6);
}
