@charset "UTF-8";
/*
 * style.css — минимален стартов стил на ядрото.
 * Стъпва върху Bootstrap 5 + Bootstrap Icons (зареждат се преди този файл).
 * Тук са само нещата, които Bootstrap не покрива: header/footer лейаут,
 * тостове, flash съобщения и няколко помощни класа.
 */

/* ── Помощни класове ─────────────────────────────── */
.fs-7    { font-size: .75rem; }
.fs-6-5  { font-size: .85rem; }

.form-label.required::after,
.form-label.req::after {
	content: "*";
	color: var(--bs-danger);
	margin-left: .2rem;
}

.badge-soft         { background: color-mix(in srgb, var(--bs-primary) 12%, transparent); color: var(--bs-primary); }
.badge-soft-success { background: color-mix(in srgb, var(--bs-success) 12%, transparent); color: var(--bs-success); }
.badge-soft-danger  { background: color-mix(in srgb, var(--bs-danger)  12%, transparent); color: var(--bs-danger); }

/* ── Header / навигация ──────────────────────────── */
header {
	padding: .75rem 0;
	border-bottom: 1px solid var(--bs-border-color);
	background: var(--bs-body-bg);
}
header nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}
.logo-box { text-decoration: none; }
.logo {
	width: 36px;
	height: 36px;
	flex: 0 0 36px;
	border-radius: 50%;
	overflow: hidden;
}
.logo img { width: 100%; height: 100%; object-fit: contain; }
.logo-text { color: var(--bs-body-color); font-weight: 600; }

header .menu ul { margin: 0; padding: 0; list-style: none; }
header .menu .nav-link {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	color: var(--bs-body-color);
	padding: .35rem .5rem;
	border-radius: .5rem;
}
header .menu .nav-link:hover { background: var(--bs-tertiary-bg); }

#toggle-leftsidemenu { display: none; }

/* ── Footer ──────────────────────────────────────── */
footer { padding-bottom: 1.5rem; }

/* „GG" знак на gg-webapp.com в подвала */
.striped-text {
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .5px;
	color: var(--bs-emphasis-color);
	user-select: none;
}

/* ── Профил ──────────────────────────────────────── */
.profile-nav .nav-link.active {
	background: var(--bs-primary);
	color: #fff;
}

/* ── Flash съобщения (@feedback) ─────────────────── */
.js-flash { position: relative; overflow: hidden; }
.flash-progress {
	position: absolute;
	left: 0;
	bottom: 0;
	height: 3px;
	width: 100%;
	background: currentColor;
	opacity: .35;
	animation-name: flash-shrink;
	animation-timing-function: linear;
	animation-fill-mode: forwards;
}
@keyframes flash-shrink { from { width: 100%; } to { width: 0; } }

/* ── Тостове (assets/js/script.js → showToast) ───── */
.toaster {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 1080;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	max-width: min(360px, 92vw);
}
.toastx {
	background: var(--bs-body-bg);
	color: var(--bs-body-color);
	border: 1px solid var(--bs-border-color);
	border-left: 4px solid var(--bs-secondary);
	border-radius: .5rem;
	box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .15);
	padding: .6rem .8rem;
}
.toastx.success { border-left-color: var(--bs-success); }
.toastx.danger  { border-left-color: var(--bs-danger); }
.toastx.warning,
.toastx.offline { border-left-color: var(--bs-warning); }
.toastx.info    { border-left-color: var(--bs-info); }
.toastx.online  { border-left-color: var(--bs-success); }
.toastx .hdr { margin-bottom: .15rem; }
.toastx .hdr button { background: none; color: var(--bs-secondary-color); }
.toastx .body { font-size: .9rem; }
.toastx .progress {
	height: 3px;
	margin-top: .5rem;
	background: var(--bs-border-color);
	border-radius: 2px;
	overflow: hidden;
}
.toastx .progress .bar { height: 100%; width: 100%; background: var(--bs-primary); }
