/* Custom styles — extends Bootstrap 5 dark theme */

body {
	min-height: 100vh;
	background-color: #d8d8d8;
}

/* [data-bs-theme=dark] {
	color-scheme: dark;
    --bs-body-bg: #051208;
		--bs-dark-rgb: 16, 26, 20;
		--bs-list-group-bg: #15221a;
		--bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.2);
		--bs-card-cap-bg: #0f4d30c7;
		--bs-border-color-translucent: #19875459;

		
}

.card {
	--bs-card-cap-bg: #0f4d3087;
}

.card-body, .list-group-item {
    background: #15221a;
}*/

.list-group-item.active {
	--bs-list-group-active-bg: #1b955c31;
	--bs-list-group-active-border-color: #1b955c17;
	color: black;
}

.text-warning {
	color: rgb(255, 140, 0) !important;
}

.progress-bar {
	transition: width 1.5s ease-in-out;
}

#review-body .form-check-input[type="radio"] {
	scale: 1.3;
	margin-left: 0.2em;
}

.table {
	--bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.035);
	--bs-table-active-bg: #75b7985c;
}

.review-expand-toggle {
	padding-top: 0.1em;
	padding-bottom: 0.1em;
	margin-right: 0.2em;
}

/* Trailing pencil inside review / browse-rows compact cells. Muted by
   default so it doesn't fight with data; full opacity only when the
   user hovers the specific cell (or the pencil itself). Row-wide
   hover would light every pencil at once, which is visually noisy. */
.scm-cell-pencil {
	opacity: 0.30;
	transition: opacity 0.12s ease-in-out;
	vertical-align: baseline;
}

/* Tom Select dropdown needs to sit above Bootstrap modals. With
   `dropdownParent: 'body'` the list is appended to <body>, outside the
   modal — its default z-index (~10) leaves it behind the modal's
   backdrop (1050) and content (1055). Push it above. */
.ts-dropdown {
	z-index: 1060;
}
td:hover .scm-cell-pencil,
.scm-cell-pencil:hover,
.scm-cell-pencil:focus {
	opacity: 1;
}

img.mauno-logo {
    background-color: black;
    padding: 0.3em;
    border-radius: 0.5em;
    width: 60px;
    height: auto;
    max-width: 100%;
    /* margin-right: 0.2em; */
}

.navbar.bg-dark {
	background-color: #1d2b28 !important;
}

.form-control::placeholder,
.form-select::placeholder {
    color: #b0b0b0;   /* pick lighter shade */
    opacity: 1;
}

@media (min-width: 1400px) {
	.container,
	.container-lg,
	.container-md,
	.container-sm,
	.container-xl,
	.container-xxl {
		max-width: 1500px;
	}
}

/* Top-of-viewport progress bar driven by app.ts route() while a
 * navigation/view-switch is in flight. NProgress-style — no spinner
 * overlay, just a thin slice at the top so the user knows their click
 * registered. Bar only mounts after a 100 ms defer (see route() in
 * src/app.ts) so fast routes never paint it.
 *
 * .advancing → animate from 0 → 70% width while we wait.
 * .done      → ease to 100% then fade out.
 */
#app-nav-loading {
	position: fixed;
	top: 0;
	left: 0;
	height: 3px;
	width: 100%;
	transform: scaleX(0);
	transform-origin: 0 50%;
	background: linear-gradient(90deg, #0d6efd 0%, #20c997 100%);
	box-shadow: 0 0 8px rgba(13, 110, 253, 0.4);
	opacity: 1;
	pointer-events: none;
	z-index: 2000;
	transition: transform 8s cubic-bezier(0, 0.5, 0.3, 1), opacity 0.25s ease-out;
}
#app-nav-loading.advancing {
	transform: scaleX(0.7);
}
#app-nav-loading.done {
	transform: scaleX(1);
	opacity: 0;
	transition: transform 0.18s ease-out, opacity 0.35s ease-out 0.1s;
}
