/*!
 * MyKbel – vzhled administrace a veřejných stránek (design systém 1.0, docs/design/design-system.md).
 * Načítá se ZA Bootstrapem 5.3. Tokeny --mk-* odpovídají 1:1 docs/design/tokens.json,
 * proměnné Bootstrapu (--bs-*) jsou na ně přemapované.
 */

/* ===================================================================== Písma */

@font-face {
	font-family: "Inter";
	src: url("../fonts/inter.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Bricolage Grotesque";
	src: url("../fonts/bricolage-grotesque.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}

/* ===================================================================== Tokeny – světlý režim */

:root,
[data-bs-theme="light"] {
	/* barvy z loga (jen dekor) */
	--mk-brand-sky: #62C6FD;
	--mk-brand-water-light: #24A4F3;
	--mk-brand-water: #0C6AAC;
	--mk-brand-water-deep: #0B2E44;
	--mk-brand-forest: #0E693C;
	--mk-brand-forest-deep: #04472D;
	--mk-brand-grass: #86C640;
	--mk-brand-grass-light: #94D14B;
	--mk-brand-concrete: #F4EADE;
	--mk-brand-concrete-shade: #E3D6C7;
	--mk-brand-rail: #EB7644;
	--mk-brand-rail-shade: #B2502C;

	--mk-bg: #FAF6EF;
	--mk-surface: #FFFFFF;
	--mk-surface-alt: #F5EFE6;
	--mk-surface-sunken: #F2EADF;
	--mk-surface-hover: #FBF8F3;
	--mk-border: #E3D6C7;
	--mk-border-strong: #8F8577;
	--mk-text: #1E2A30;
	--mk-text-muted: #5C5850;
	--mk-text-subtle: #757065;
	--mk-text-on-color: #FFFFFF;

	--mk-primary: #0C6AAC;
	--mk-primary-hover: #0A5A93;
	--mk-primary-active: #0A4F80;
	--mk-primary-subtle: #DCEEFB;
	--mk-primary-text: #0A4F80;
	--mk-on-primary: #FFFFFF;

	--mk-secondary: #0E693C;
	--mk-secondary-hover: #0B5732;
	--mk-secondary-subtle: #E1F1D3;
	--mk-secondary-text: #0B4F2E;
	--mk-on-secondary: #FFFFFF;

	--mk-accent: #C2501E;
	--mk-accent-hover: #A8421A;
	--mk-accent-subtle: #FCE6DA;
	--mk-accent-text: #8A3512;
	--mk-accent-decor: #EB7644;
	--mk-on-accent: #FFFFFF;

	--mk-success: #1E7A3C;
	--mk-success-subtle: #E2F2D8;
	--mk-success-text: #16572C;
	--mk-warning: #9A5B00;
	--mk-warning-subtle: #FCEFCF;
	--mk-warning-text: #5E3F00;
	--mk-warning-border: #F2C14E;
	--mk-danger: #B3261E;
	--mk-danger-subtle: #FBE3E0;
	--mk-danger-text: #8C1D18;
	--mk-on-danger: #FFFFFF;
	--mk-info: #0C6AAC;
	--mk-info-subtle: #DCEEFB;
	--mk-info-text: #0A4F80;

	--mk-sidebar-bg: #0B2E44;
	--mk-sidebar-text: #E6F1F8;
	--mk-sidebar-text-muted: #9FC3D9;
	--mk-sidebar-active-bg: rgba(98, 198, 253, 0.16);
	--mk-sidebar-active-indicator: #62C6FD;
	--mk-sidebar-hover-bg: rgba(255, 255, 255, 0.06);
	--mk-sidebar-border: rgba(255, 255, 255, 0.1);

	--mk-focus-ring: rgba(12, 106, 172, 0.35);
	--mk-map-stroke: #0C6AAC;
	--mk-map-fill: #62C6FD;
	--mk-map-selected: #C2501E;
	--mk-map-user-location: #EB7644;
	--mk-hero-gradient-from: #62C6FD;
	--mk-hero-gradient-via: #0C6AAC;
	--mk-hero-gradient-to: #0A4F80;

	--mk-shadow-sm: 0 1px 2px rgba(30, 42, 48, 0.06), 0 1px 3px rgba(30, 42, 48, 0.06);
	--mk-shadow-md: 0 4px 12px rgba(30, 42, 48, 0.08), 0 1px 3px rgba(30, 42, 48, 0.06);
	--mk-shadow-lg: 0 16px 40px rgba(30, 42, 48, 0.14), 0 4px 12px rgba(30, 42, 48, 0.08);
	--mk-shadow-logo: 0 8px 24px rgba(11, 46, 68, 0.25);
	--mk-logo-ring: rgba(30, 42, 48, 0.08);

	/* typografie, rozměry, pohyb */
	--mk-font-heading: "Bricolage Grotesque", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--mk-font-body: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--mk-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
	--mk-radius-xs: 4px;
	--mk-radius-sm: 6px;
	--mk-radius-md: 10px;
	--mk-radius-lg: 14px;
	--mk-radius-xl: 20px;
	--mk-radius-xxl: 28px;
	--mk-radius-pill: 999px;
	--mk-sidebar-width: 256px;
	--mk-topbar-height: 56px;
	--mk-content-max-width: 1280px;
	--mk-form-max-width: 720px;
	--mk-gutter: 16px;
	--mk-card-padding: 16px;
	--mk-ease: cubic-bezier(0.2, 0, 0, 1);
	--mk-duration-fast: 120ms;
	--mk-duration-base: 200ms;
	--mk-duration-slow: 320ms;

	/* Bootstrap */
	--bs-body-font-family: var(--mk-font-body);
	--bs-body-font-size: 0.9375rem;
	--bs-body-line-height: 1.6;
	--bs-body-bg: var(--mk-bg);
	--bs-body-bg-rgb: 250, 246, 239;
	--bs-body-color: var(--mk-text);
	--bs-body-color-rgb: 30, 42, 48;
	--bs-emphasis-color: var(--mk-text);
	--bs-emphasis-color-rgb: 30, 42, 48;
	--bs-heading-color: var(--mk-text);
	--bs-secondary-color: var(--mk-text-muted);
	--bs-secondary-color-rgb: 92, 88, 80;
	--bs-secondary-bg: var(--mk-surface-alt);
	--bs-tertiary-color: var(--mk-text-subtle);
	--bs-tertiary-bg: var(--mk-surface-alt);
	--bs-border-color: var(--mk-border);
	--bs-border-color-translucent: var(--mk-border);
	--bs-border-radius: 10px;
	--bs-border-radius-sm: 6px;
	--bs-border-radius-lg: 14px;
	--bs-border-radius-xl: 20px;
	--bs-border-radius-xxl: 28px;
	--bs-border-radius-pill: 999px;
	--bs-box-shadow-sm: var(--mk-shadow-sm);
	--bs-box-shadow: var(--mk-shadow-md);
	--bs-box-shadow-lg: var(--mk-shadow-lg);
	--bs-focus-ring-width: 3px;
	--bs-focus-ring-opacity: 1;
	--bs-focus-ring-color: var(--mk-focus-ring);
	--bs-link-color: var(--mk-primary);
	--bs-link-color-rgb: 12, 106, 172;
	--bs-link-hover-color: var(--mk-primary-active);
	--bs-link-hover-color-rgb: 10, 79, 128;
	--bs-highlight-bg: var(--mk-warning-subtle);
	--bs-highlight-color: var(--mk-warning-text);
	--bs-code-color: var(--mk-accent-text);
	--bs-form-invalid-color: var(--mk-danger);
	--bs-form-invalid-border-color: var(--mk-danger);
	--bs-form-valid-color: var(--mk-success);
	--bs-form-valid-border-color: var(--mk-success);

	--bs-primary: var(--mk-primary);
	--bs-primary-rgb: 12, 106, 172;
	--bs-primary-bg-subtle: var(--mk-primary-subtle);
	--bs-primary-text-emphasis: var(--mk-primary-text);
	--bs-primary-border-subtle: #A9D3F3;
	/* Bootstrapí „secondary“ je šedá pro tlumený text (.text-secondary), ne lesní zelená značky */
	--bs-secondary: var(--mk-text-muted);
	--bs-secondary-rgb: 92, 88, 80;
	--bs-secondary-bg-subtle: var(--mk-surface-alt);
	--bs-secondary-text-emphasis: var(--mk-text-muted);
	--bs-secondary-border-subtle: var(--mk-border);
	--bs-success: var(--mk-success);
	--bs-success-rgb: 30, 122, 60;
	--bs-success-bg-subtle: var(--mk-success-subtle);
	--bs-success-text-emphasis: var(--mk-success-text);
	--bs-success-border-subtle: #B9DFA5;
	--bs-warning: var(--mk-warning);
	--bs-warning-rgb: 154, 91, 0;
	--bs-warning-bg-subtle: var(--mk-warning-subtle);
	--bs-warning-text-emphasis: var(--mk-warning-text);
	--bs-warning-border-subtle: var(--mk-warning-border);
	--bs-danger: var(--mk-danger);
	--bs-danger-rgb: 179, 38, 30;
	--bs-danger-bg-subtle: var(--mk-danger-subtle);
	--bs-danger-text-emphasis: var(--mk-danger-text);
	--bs-danger-border-subtle: #F2B8B2;
	--bs-info: var(--mk-info);
	--bs-info-rgb: 12, 106, 172;
	--bs-info-bg-subtle: var(--mk-info-subtle);
	--bs-info-text-emphasis: var(--mk-info-text);
	--bs-info-border-subtle: #A9D3F3;
	--bs-light: var(--mk-surface-alt);
	--bs-light-rgb: 245, 239, 230;
	--bs-light-bg-subtle: var(--mk-surface-alt);
	--bs-light-text-emphasis: var(--mk-text-muted);
	--bs-light-border-subtle: var(--mk-border);
	--bs-dark-rgb: 30, 42, 48;

	color-scheme: light;
}

/* ===================================================================== Tokeny – tmavý režim („noční rybník“) */

[data-bs-theme="dark"] {
	--mk-bg: #0E1A21;
	--mk-surface: #15242D;
	--mk-surface-alt: #1C2F3A;
	--mk-surface-sunken: #09131A;
	--mk-surface-hover: #1A2B35;
	--mk-border: #2E4552;
	--mk-border-strong: #6B8494;
	--mk-text: #EEE8DF;
	--mk-text-muted: #B3AA9E;
	--mk-text-subtle: #9A9185;
	--mk-text-on-color: #0E1A21;

	--mk-primary: #62C6FD;
	--mk-primary-hover: #86D4FD;
	--mk-primary-active: #A9E0FE;
	--mk-primary-subtle: #0E3550;
	--mk-primary-text: #8FD3FF;
	--mk-on-primary: #00293F;

	--mk-secondary: #94D14B;
	--mk-secondary-hover: #A9DC6C;
	--mk-secondary-subtle: #1F4A12;
	--mk-secondary-text: #DDF2C6;
	--mk-on-secondary: #0F2A06;

	--mk-accent: #F08A5A;
	--mk-accent-hover: #F4A47E;
	--mk-accent-subtle: #6E2A0E;
	--mk-accent-text: #FFDBCB;
	--mk-accent-decor: #F08A5A;
	--mk-on-accent: #2A1206;

	--mk-success: #7DD08E;
	--mk-success-subtle: #143321;
	--mk-success-text: #BDEBC7;
	--mk-warning: #F2C14E;
	--mk-warning-subtle: #3A2C08;
	--mk-warning-text: #F7DC97;
	--mk-warning-border: #8A6A1C;
	--mk-danger: #FFB4AB;
	--mk-danger-subtle: #4A1512;
	--mk-danger-text: #FFDAD6;
	--mk-on-danger: #690005;
	--mk-info: #8FD3FF;
	--mk-info-subtle: #0E3550;
	--mk-info-text: #CDEBFF;

	--mk-sidebar-bg: #09131A;
	--mk-sidebar-text: #EEE8DF;
	--mk-sidebar-text-muted: #B3AA9E;
	--mk-sidebar-active-bg: rgba(98, 198, 253, 0.14);
	--mk-sidebar-active-indicator: #62C6FD;

	--mk-focus-ring: rgba(98, 198, 253, 0.45);
	--mk-map-stroke: #62C6FD;
	--mk-map-fill: #62C6FD;
	--mk-map-selected: #F08A5A;
	--mk-map-user-location: #F08A5A;
	--mk-hero-gradient-from: #0C6AAC;
	--mk-hero-gradient-via: #0B4A75;
	--mk-hero-gradient-to: #0B2E44;

	--mk-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
	--mk-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.45);
	--mk-shadow-lg: 0 16px 40px rgba(0, 0, 0, 0.55);
	--mk-shadow-logo: 0 8px 24px rgba(0, 0, 0, 0.5);
	--mk-logo-ring: rgba(255, 255, 255, 0.08);

	--bs-body-bg: var(--mk-bg);
	--bs-body-bg-rgb: 14, 26, 33;
	--bs-body-color: var(--mk-text);
	--bs-body-color-rgb: 238, 232, 223;
	--bs-emphasis-color: var(--mk-text);
	--bs-emphasis-color-rgb: 238, 232, 223;
	--bs-heading-color: var(--mk-text);
	--bs-secondary-color: var(--mk-text-muted);
	--bs-secondary-color-rgb: 179, 170, 158;
	--bs-secondary-bg: var(--mk-surface-alt);
	--bs-tertiary-color: var(--mk-text-subtle);
	--bs-tertiary-bg: var(--mk-surface-alt);
	--bs-border-color: var(--mk-border);
	--bs-border-color-translucent: var(--mk-border);
	--bs-link-color: var(--mk-primary);
	--bs-link-color-rgb: 98, 198, 253;
	--bs-link-hover-color: var(--mk-primary-active);
	--bs-link-hover-color-rgb: 169, 224, 254;
	--bs-highlight-bg: var(--mk-warning-subtle);
	--bs-highlight-color: var(--mk-warning-text);
	--bs-code-color: var(--mk-accent-text);
	--bs-form-invalid-color: var(--mk-danger);
	--bs-form-invalid-border-color: var(--mk-danger);
	--bs-form-valid-color: var(--mk-success);
	--bs-form-valid-border-color: var(--mk-success);

	--bs-primary: var(--mk-primary);
	--bs-primary-rgb: 98, 198, 253;
	--bs-primary-bg-subtle: var(--mk-primary-subtle);
	--bs-primary-text-emphasis: var(--mk-primary-text);
	--bs-primary-border-subtle: #1C5A85;
	--bs-secondary: var(--mk-text-muted);
	--bs-secondary-rgb: 179, 170, 158;
	--bs-secondary-bg-subtle: var(--mk-surface-alt);
	--bs-secondary-text-emphasis: var(--mk-text-muted);
	--bs-secondary-border-subtle: var(--mk-border);
	--bs-success: var(--mk-success);
	--bs-success-rgb: 125, 208, 142;
	--bs-success-bg-subtle: var(--mk-success-subtle);
	--bs-success-text-emphasis: var(--mk-success-text);
	--bs-success-border-subtle: #2C5C3A;
	--bs-warning: var(--mk-warning);
	--bs-warning-rgb: 242, 193, 78;
	--bs-warning-bg-subtle: var(--mk-warning-subtle);
	--bs-warning-text-emphasis: var(--mk-warning-text);
	--bs-warning-border-subtle: var(--mk-warning-border);
	--bs-danger: var(--mk-danger);
	--bs-danger-rgb: 255, 180, 171;
	--bs-danger-bg-subtle: var(--mk-danger-subtle);
	--bs-danger-text-emphasis: var(--mk-danger-text);
	--bs-danger-border-subtle: #7A2620;
	--bs-info: var(--mk-info);
	--bs-info-rgb: 143, 211, 255;
	--bs-info-bg-subtle: var(--mk-info-subtle);
	--bs-info-text-emphasis: var(--mk-info-text);
	--bs-info-border-subtle: #1C5A85;
	--bs-light: var(--mk-surface-alt);
	--bs-light-rgb: 28, 47, 58;
	--bs-light-bg-subtle: var(--mk-surface-alt);
	--bs-light-text-emphasis: var(--mk-text-muted);
	--bs-light-border-subtle: var(--mk-border);

	color-scheme: dark;
}

@media (min-width: 768px) {
	:root {
		--mk-gutter: 32px;
		--mk-card-padding: 20px;
	}
}

/* ===================================================================== Základ a typografie */

html {
	font-size: 16px;
}

body {
	background-color: var(--mk-bg);
	color: var(--mk-text);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, .h1, .h2, .h3,
.navbar-brand, .mk-stat-value, .mk-display {
	font-family: var(--mk-font-heading);
	font-optical-sizing: auto;
	color: var(--mk-text);
}

h1, .h1 { font-size: 1.875rem; line-height: 2.375rem; font-weight: 700; letter-spacing: -0.5px; }
h2, .h2 { font-size: 1.5rem; line-height: 2rem; font-weight: 600; letter-spacing: -0.3px; }
h3, .h3 { font-size: 1.25rem; line-height: 1.75rem; font-weight: 600; letter-spacing: -0.2px; }
h4, .h4 { font-family: var(--mk-font-body); font-size: 1.0625rem; line-height: 1.5rem; font-weight: 600; letter-spacing: 0; }
h5, .h5, h6, .h6 { font-family: var(--mk-font-body); font-size: 0.9375rem; line-height: 1.5rem; font-weight: 600; }

@media (max-width: 575.98px) {
	h1, .h1 { font-size: 1.625rem; line-height: 2.125rem; }
	h2, .h2 { font-size: 1.375rem; line-height: 1.875rem; }
}

.mk-display {
	font-size: 2.5rem;
	line-height: 3rem;
	font-weight: 700;
	letter-spacing: -0.8px;
}

.lead, .mk-body-lg {
	font-size: 1.0625rem;
	line-height: 1.625rem;
	font-weight: 400;
}

small, .small, .mk-body-sm {
	font-size: 0.8125rem;
	line-height: 1.25rem;
}

.mk-caption {
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 500;
	letter-spacing: 0.2px;
}

.mk-overline {
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
	letter-spacing: 0.7px;
	text-transform: uppercase;
	color: var(--mk-text-muted);
}

.mk-num, .table, .mk-stat-value, time {
	font-variant-numeric: tabular-nums;
}

p {
	max-width: 68ch;
}

a {
	text-underline-offset: 0.18em;
	text-decoration-thickness: 1px;
}

.text-muted, .text-body-secondary, .text-secondary {
	color: var(--mk-text-muted) !important;
}

.text-subtle {
	color: var(--mk-text-subtle) !important;
}

.text-accent {
	color: var(--mk-accent-hover) !important;
}

hr {
	border-color: var(--mk-border);
	opacity: 1;
}

::selection {
	background: var(--mk-primary-subtle);
	color: var(--mk-primary-text);
}

:focus-visible {
	outline: 3px solid var(--mk-focus-ring);
	outline-offset: 2px;
}

.mk-skip-link {
	position: absolute;
	left: 8px;
	top: -100px;
	z-index: 2000;
	padding: 8px 16px;
	border-radius: var(--mk-radius-md);
	background: var(--mk-surface);
	color: var(--mk-primary);
	font-weight: 600;
	box-shadow: var(--mk-shadow-md);
}

.mk-skip-link:focus {
	top: 8px;
}

.bi {
	line-height: 1;
	vertical-align: -0.125em;
}

/* ===================================================================== Logo */

.mk-logo {
	--mk-logo-size: 40px;
	position: relative;
	display: inline-block;
	flex: none;
	width: var(--mk-logo-size);
	height: var(--mk-logo-size);
	border-radius: 22%;
	overflow: hidden;
	/* náhradní plocha (nebe → voda), dokud nejsou exporty loga */
	background: linear-gradient(180deg, var(--mk-brand-sky) 0%, var(--mk-brand-sky) 34%, var(--mk-brand-forest) 34%, var(--mk-brand-forest) 44%, var(--mk-brand-water-light) 44%, var(--mk-brand-water) 100%);
}

.mk-logo::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	box-shadow: inset 0 0 0 1px var(--mk-logo-ring);
	pointer-events: none;
}

.mk-logo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	color: transparent;
}

.mk-logo-hero {
	box-shadow: var(--mk-shadow-logo);
}

/* ===================================================================== Tlačítka */

.btn {
	--bs-btn-padding-x: 1rem;
	--bs-btn-padding-y: 0.5625rem;
	--bs-btn-font-family: var(--mk-font-body);
	--bs-btn-font-size: 0.875rem;
	--bs-btn-font-weight: 600;
	--bs-btn-line-height: 1.25rem;
	--bs-btn-border-radius: var(--mk-radius-md);
	--bs-btn-disabled-opacity: 0.5;
	--bs-btn-focus-box-shadow: 0 0 0 3px var(--mk-focus-ring);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 40px;
	letter-spacing: 0.1px;
	transition: color var(--mk-duration-fast) var(--mk-ease), background-color var(--mk-duration-fast) var(--mk-ease), border-color var(--mk-duration-fast) var(--mk-ease), box-shadow var(--mk-duration-fast) var(--mk-ease);
}

input.btn {
	display: inline-block;
}

.btn .bi {
	font-size: 1rem;
	vertical-align: 0;
}

.btn-sm {
	--bs-btn-padding-x: 0.75rem;
	--bs-btn-padding-y: 0.3125rem;
	--bs-btn-font-size: 0.8125rem;
	--bs-btn-border-radius: 8px;
	min-height: 32px;
	gap: 0.375rem;
}

.btn-lg {
	--bs-btn-padding-x: 1.25rem;
	--bs-btn-padding-y: 0.8125rem;
	--bs-btn-font-size: 0.9375rem;
	--bs-btn-line-height: 1.25rem;
	--bs-btn-border-radius: var(--mk-radius-md);
	min-height: 48px;
}

.btn-primary {
	--bs-btn-color: var(--mk-on-primary);
	--bs-btn-bg: var(--mk-primary);
	--bs-btn-border-color: var(--mk-primary);
	--bs-btn-hover-color: var(--mk-on-primary);
	--bs-btn-hover-bg: var(--mk-primary-hover);
	--bs-btn-hover-border-color: var(--mk-primary-hover);
	--bs-btn-active-color: var(--mk-on-primary);
	--bs-btn-active-bg: var(--mk-primary-active);
	--bs-btn-active-border-color: var(--mk-primary-active);
	--bs-btn-disabled-color: var(--mk-on-primary);
	--bs-btn-disabled-bg: var(--mk-primary);
	--bs-btn-disabled-border-color: var(--mk-primary);
}

.btn-accent {
	--bs-btn-color: var(--mk-on-accent);
	--bs-btn-bg: var(--mk-accent);
	--bs-btn-border-color: var(--mk-accent);
	--bs-btn-hover-color: var(--mk-on-accent);
	--bs-btn-hover-bg: var(--mk-accent-hover);
	--bs-btn-hover-border-color: var(--mk-accent-hover);
	--bs-btn-active-color: var(--mk-on-accent);
	--bs-btn-active-bg: var(--mk-accent-hover);
	--bs-btn-active-border-color: var(--mk-accent-hover);
	--bs-btn-disabled-color: var(--mk-on-accent);
	--bs-btn-disabled-bg: var(--mk-accent);
	--bs-btn-disabled-border-color: var(--mk-accent);
	--bs-btn-focus-box-shadow: 0 0 0 3px rgba(194, 80, 30, 0.35);
}

.btn-outline-primary {
	--bs-btn-color: var(--mk-primary);
	--bs-btn-bg: transparent;
	--bs-btn-border-color: var(--mk-primary);
	--bs-btn-hover-color: var(--mk-on-primary);
	--bs-btn-hover-bg: var(--mk-primary);
	--bs-btn-hover-border-color: var(--mk-primary);
	--bs-btn-active-color: var(--mk-on-primary);
	--bs-btn-active-bg: var(--mk-primary-active);
	--bs-btn-active-border-color: var(--mk-primary-active);
	--bs-btn-disabled-color: var(--mk-primary);
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: var(--mk-primary);
}

.btn-light,
.btn-outline-secondary {
	--bs-btn-color: var(--mk-text);
	--bs-btn-bg: var(--mk-surface-alt);
	--bs-btn-border-color: var(--mk-border);
	--bs-btn-hover-color: var(--mk-text);
	--bs-btn-hover-bg: var(--mk-surface-sunken);
	--bs-btn-hover-border-color: var(--mk-border-strong);
	--bs-btn-active-color: var(--mk-text);
	--bs-btn-active-bg: var(--mk-surface-sunken);
	--bs-btn-active-border-color: var(--mk-border-strong);
	--bs-btn-disabled-color: var(--mk-text-muted);
	--bs-btn-disabled-bg: var(--mk-surface-alt);
	--bs-btn-disabled-border-color: var(--mk-border);
}

.btn-outline-danger {
	--bs-btn-color: var(--mk-danger);
	--bs-btn-bg: transparent;
	--bs-btn-border-color: var(--mk-danger);
	--bs-btn-hover-color: var(--mk-on-danger);
	--bs-btn-hover-bg: var(--mk-danger);
	--bs-btn-hover-border-color: var(--mk-danger);
	--bs-btn-active-color: var(--mk-on-danger);
	--bs-btn-active-bg: var(--mk-danger);
	--bs-btn-active-border-color: var(--mk-danger);
	--bs-btn-disabled-color: var(--mk-danger);
	--bs-btn-disabled-border-color: var(--mk-danger);
}

.btn-danger {
	--bs-btn-color: var(--mk-on-danger);
	--bs-btn-bg: var(--mk-danger);
	--bs-btn-border-color: var(--mk-danger);
	--bs-btn-hover-color: var(--mk-on-danger);
	--bs-btn-hover-bg: var(--mk-danger-text);
	--bs-btn-hover-border-color: var(--mk-danger-text);
}

.btn-outline-light {
	--bs-btn-color: #FFFFFF;
	--bs-btn-border-color: rgba(255, 255, 255, 0.7);
	--bs-btn-hover-color: var(--mk-brand-water-deep);
	--bs-btn-hover-bg: #FFFFFF;
	--bs-btn-hover-border-color: #FFFFFF;
	--bs-btn-active-color: var(--mk-brand-water-deep);
	--bs-btn-active-bg: #FFFFFF;
}

.btn-link {
	--bs-btn-color: var(--mk-primary);
	--bs-btn-hover-color: var(--mk-primary-active);
	--bs-btn-active-color: var(--mk-primary-active);
	--bs-btn-disabled-color: var(--mk-text-muted);
	text-decoration: none;
}

.btn-link:hover {
	text-decoration: underline;
}

.btn-link.mk-btn-cancel {
	--bs-btn-color: var(--mk-text-muted);
	--bs-btn-hover-color: var(--mk-text);
}

.btn-link.link-danger {
	--bs-btn-color: var(--mk-danger);
	--bs-btn-hover-color: var(--mk-danger-text);
	min-height: 0;
}

.mk-icon-btn {
	width: 32px;
	min-width: 32px;
	padding: 0 !important;
}

.mk-icon-btn.btn-light:hover {
	color: var(--mk-danger);
}

@media (max-width: 575.98px) {
	.btn:not(.btn-sm):not(.btn-link) {
		min-height: 44px;
	}
}

/* ===================================================================== Formuláře */

.form-label,
.mk-form label:not(.form-check-label):not(.mk-check-label) {
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
	letter-spacing: 0.1px;
	color: var(--mk-text);
	margin-bottom: 0.375rem;
}

label.required::after,
.form-label.required::after {
	content: " *";
	color: var(--mk-danger);
	font-weight: 600;
}

.form-text {
	font-size: 0.8125rem;
	line-height: 1.25rem;
	color: var(--mk-text-muted);
	margin-top: 0.375rem;
}

.form-control,
.form-select {
	min-height: 44px;
	padding: 0.625rem 0.875rem;
	font-size: 0.9375rem;
	line-height: 1.375rem;
	color: var(--mk-text);
	background-color: var(--mk-surface);
	border-color: var(--mk-border-strong);
	border-radius: var(--mk-radius-md);
	transition: border-color var(--mk-duration-fast) var(--mk-ease), box-shadow var(--mk-duration-fast) var(--mk-ease);
}

.form-select {
	padding-right: 2.5rem;
	background-position: right 0.875rem center;
}

textarea.form-control {
	min-height: 88px;
}

.form-control-sm,
.form-select-sm {
	min-height: 32px;
	padding: 0.25rem 0.625rem;
	font-size: 0.8125rem;
	line-height: 1.25rem;
	border-radius: 8px;
}

.form-select-sm {
	padding-right: 2rem;
	background-position: right 0.625rem center;
}

.form-control::placeholder {
	color: var(--mk-text-subtle);
	opacity: 1;
}

.form-control:focus,
.form-select:focus {
	color: var(--mk-text);
	background-color: var(--mk-surface);
	border-color: var(--mk-primary);
	box-shadow: 0 0 0 3px var(--mk-focus-ring);
}

.form-control[readonly] {
	background-color: var(--mk-surface-alt);
	color: var(--mk-text-muted);
}

.form-control:disabled,
.form-select:disabled {
	background-color: var(--mk-surface-alt);
	opacity: 0.7;
}

.form-control.is-invalid,
.form-select.is-invalid {
	border-color: var(--mk-danger);
	background-image: none;
	padding-right: 0.875rem;
}

.form-select.is-invalid {
	padding-right: 2.5rem;
	--bs-form-select-bg-icon: none;
}

.form-control.is-invalid:focus,
.form-select.is-invalid:focus {
	border-color: var(--mk-danger);
	box-shadow: 0 0 0 3px rgba(179, 38, 30, 0.25);
}

.invalid-feedback {
	font-size: 0.8125rem;
	line-height: 1.25rem;
	color: var(--mk-danger);
	margin-top: 0.375rem;
}

.invalid-feedback::before {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	margin-right: 0.375rem;
	vertical-align: -0.15em;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.form-check-input {
	width: 1.125rem;
	height: 1.125rem;
	margin-top: 0.1875rem;
	background-color: var(--mk-surface);
	border-color: var(--mk-border-strong);
	cursor: pointer;
}

.form-check-input:checked {
	background-color: var(--mk-primary);
	border-color: var(--mk-primary);
}

.form-check-input:focus {
	border-color: var(--mk-primary);
	box-shadow: 0 0 0 3px var(--mk-focus-ring);
}

[data-bs-theme="dark"] .form-check-input:checked[type="checkbox"] {
	--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%2300293F' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}

[data-bs-theme="dark"] .form-check-input:checked[type="radio"] {
	--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%2300293F'/%3e%3c/svg%3e");
}

.form-check-label,
.mk-check-label {
	font-weight: 400;
	cursor: pointer;
}

/* Nette renderer vykresluje checkbox jako <label><input> text</label> */
.mk-form label > .form-check-input {
	float: none;
	margin-left: 0;
	vertical-align: -0.2em;
}

.mk-form label:has(> .form-check-input) {
	font-weight: 400;
	cursor: pointer;
}

.mk-form,
.mk-form-narrow {
	max-width: var(--mk-form-max-width);
}

.mk-form .mb-3 {
	margin-bottom: 1rem !important;
}

.mk-form .mb-3 ~ .mb-3:has(> .btn:only-child),
.mk-form .mb-3 ~ .mb-3:has(> input.btn:only-child) {
	margin-top: 1.5rem;
	margin-bottom: 0 !important;
}

@media (max-width: 575.98px) {
	.mk-form .mb-3 > .btn-primary:only-child,
	.mk-form .mb-3 > input.btn-primary:only-child {
		width: 100%;
	}
}

.mk-form-section + .mk-form-section {
	margin-top: 1.5rem;
}

/* ===================================================================== Karty */

.card {
	--bs-card-bg: var(--mk-surface);
	--bs-card-color: var(--mk-text);
	--bs-card-border-color: var(--mk-border);
	--bs-card-border-radius: var(--mk-radius-lg);
	--bs-card-inner-border-radius: calc(var(--mk-radius-lg) - 1px);
	--bs-card-spacer-y: var(--mk-card-padding);
	--bs-card-spacer-x: var(--mk-card-padding);
	--bs-card-cap-padding-y: 0.875rem;
	--bs-card-cap-padding-x: var(--mk-card-padding);
	--bs-card-cap-bg: var(--mk-surface-alt);
	--bs-card-cap-color: var(--mk-text);
	--bs-card-title-color: var(--mk-text);
	box-shadow: none;
}

.card.shadow-sm {
	box-shadow: none !important;
}

.card-header {
	border-bottom-color: var(--mk-border);
}

.card-footer {
	border-top-color: var(--mk-border);
}

.mk-card-header {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	padding: 1rem var(--mk-card-padding);
	background: transparent;
	border-bottom: 1px solid var(--mk-border);
}

.mk-card-header > :first-child {
	margin: 0 auto 0 0;
}

.mk-card-title {
	font-family: var(--mk-font-heading);
	font-size: 1.25rem;
	line-height: 1.75rem;
	font-weight: 600;
	letter-spacing: -0.2px;
	margin: 0;
}

.mk-card-link {
	transition: box-shadow var(--mk-duration-fast) var(--mk-ease), border-color var(--mk-duration-fast) var(--mk-ease);
}

.mk-card-link:hover,
.mk-card-link:focus-within {
	border-color: var(--mk-border-strong);
	box-shadow: var(--mk-shadow-sm);
}

.mk-card-foot {
	padding: 0.75rem var(--mk-card-padding);
	background: var(--mk-surface-alt);
	border-top: 1px solid var(--mk-border);
	border-radius: 0 0 calc(var(--mk-radius-lg) - 1px) calc(var(--mk-radius-lg) - 1px);
	font-size: 0.8125rem;
	color: var(--mk-text-muted);
}

/* seznam vlastností (detail člena, revíru, položky) */
.mk-props {
	display: grid;
	grid-template-columns: minmax(8rem, 38%) 1fr;
	gap: 0;
	margin: 0;
}

.mk-props > dt,
.mk-props > dd {
	padding: 0.75rem 0;
	margin: 0;
	border-bottom: 1px solid var(--mk-border);
}

.mk-props > dt {
	font-weight: 500;
	color: var(--mk-text-muted);
	padding-right: 1rem;
}

.mk-props > dt:nth-last-of-type(1),
.mk-props > dd:last-child {
	border-bottom: 0;
}

.mk-props > dt:first-of-type,
.mk-props > dt:first-of-type + dd {
	padding-top: 0;
}

.mk-props > dt:last-of-type,
.mk-props > dd:last-of-type {
	padding-bottom: 0;
}

@media (max-width: 575.98px) {
	.mk-props {
		grid-template-columns: 1fr;
	}

	.mk-props > dt {
		border-bottom: 0;
		padding-bottom: 0.125rem;
	}

	.mk-props > dd {
		padding-top: 0;
	}
}

/* ===================================================================== Statistiky (Přehled) */

.mk-stat .card-body {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.mk-stat-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: var(--mk-radius-md);
	font-size: 1.25rem;
	margin-bottom: 0.75rem;
}

.mk-stat-label {
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
	letter-spacing: 0.7px;
	text-transform: uppercase;
	color: var(--mk-text-muted);
}

.mk-stat-value {
	font-size: 2rem;
	line-height: 2.25rem;
	font-weight: 700;
	letter-spacing: -0.5px;
}

.mk-stat-unit {
	font-family: var(--mk-font-body);
	font-size: 0.8125rem;
	font-weight: 400;
	letter-spacing: 0;
	color: var(--mk-text-muted);
}

.mk-stat-note {
	margin-top: 0.5rem;
}

.mk-tone-primary { background: var(--mk-primary-subtle); color: var(--mk-primary); }
.mk-tone-info { background: var(--mk-info-subtle); color: var(--mk-info); }
.mk-tone-secondary { background: var(--mk-secondary-subtle); color: var(--mk-secondary); }
.mk-tone-accent { background: var(--mk-accent-subtle); color: var(--mk-accent-text); }
.mk-tone-warning { background: var(--mk-warning-subtle); color: var(--mk-warning-text); }
.mk-tone-danger { background: var(--mk-danger-subtle); color: var(--mk-danger-text); }

.mk-welcome {
	position: relative;
	padding-left: 1rem;
	margin-bottom: 1.5rem;
}

.mk-welcome::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	bottom: 2px;
	width: 4px;
	border-radius: 4px;
	background: linear-gradient(180deg, var(--mk-brand-sky), var(--mk-brand-water));
}

/* ===================================================================== Datová dlaždice a seznam akcí */

.mk-date-tile {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 48px;
	height: 48px;
	border-radius: var(--mk-radius-md);
	background: var(--mk-primary-subtle);
	color: var(--mk-primary-text);
}

.mk-date-tile-day {
	font-family: var(--mk-font-heading);
	font-size: 1.25rem;
	line-height: 1.25rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.mk-date-tile-month {
	font-size: 0.6875rem;
	line-height: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	margin-top: 2px;
}

.mk-date-tile.is-past {
	background: var(--mk-surface-alt);
	color: var(--mk-text-muted);
}

.mk-event-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.mk-event-row {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 0.875rem var(--mk-card-padding);
	border-top: 1px solid var(--mk-border);
	transition: background-color var(--mk-duration-fast) var(--mk-ease);
}

.mk-event-row:first-child {
	border-top: 0;
}

.mk-event-row:last-child {
	border-radius: 0 0 calc(var(--mk-radius-lg) - 1px) calc(var(--mk-radius-lg) - 1px);
}

.mk-event-row:hover {
	background: var(--mk-surface-hover);
}

.mk-event-body {
	flex: 1 1 auto;
	min-width: 0;
}

.mk-event-title {
	font-weight: 600;
	color: var(--mk-text);
	text-decoration: none;
}

.mk-event-title:hover {
	text-decoration: underline;
}

.mk-event-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 0.5rem;
	margin-top: 0.25rem;
	font-size: 0.8125rem;
	color: var(--mk-text-muted);
}

.mk-event-time {
	flex: none;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--mk-text-muted);
	font-variant-numeric: tabular-nums;
}

/* ===================================================================== Tabulky */

.table {
	--bs-table-bg: transparent;
	--bs-table-color: var(--mk-text);
	--bs-table-border-color: var(--mk-border);
	--bs-table-striped-bg: var(--mk-surface-hover);
	--bs-table-hover-bg: var(--mk-surface-hover);
	--bs-table-hover-color: var(--mk-text);
	--bs-table-active-bg: var(--mk-surface-alt);
	color: var(--mk-text);
}

.table > :not(caption) > * > * {
	padding: 0.75rem 1rem;
}

.table > thead > tr > th {
	height: 40px;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	background-color: var(--mk-surface-alt);
	color: var(--mk-text-muted);
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
	letter-spacing: 0.7px;
	text-transform: uppercase;
	white-space: nowrap;
	border-bottom-color: var(--mk-border);
	vertical-align: middle;
}

.table > tbody > tr > td,
.table > tbody > tr > th {
	height: 52px;
}

.table.table-sm > :not(caption) > * > * {
	padding: 0.5rem 0.75rem;
	height: auto;
}

.table.table-sm > thead > tr > th {
	height: 34px;
}

.table > tbody > tr:last-child > * {
	border-bottom-width: 0;
}

.card > .table-responsive > .table > :not(caption) > tr > :first-child,
.card > .table-responsive > .table > :not(caption) > * > :first-child,
.card > .table > :not(caption) > * > :first-child {
	padding-left: var(--mk-card-padding);
}

.card > .table-responsive > .table > :not(caption) > * > :last-child,
.card > .table > :not(caption) > * > :last-child {
	padding-right: var(--mk-card-padding);
}

.card > .table-responsive:first-child > .table > thead > tr:first-child > th:first-child,
.card > .table:first-child > thead > tr:first-child > th:first-child {
	border-top-left-radius: calc(var(--mk-radius-lg) - 1px);
}

.card > .table-responsive:first-child > .table > thead > tr:first-child > th:last-child,
.card > .table:first-child > thead > tr:first-child > th:last-child {
	border-top-right-radius: calc(var(--mk-radius-lg) - 1px);
}

.card > .table-responsive,
.card > .table {
	border-radius: calc(var(--mk-radius-lg) - 1px);
}

.mk-cell-link,
.table a.mk-cell-link {
	font-weight: 600;
	color: var(--mk-text);
	text-decoration: none;
}

.mk-cell-link:hover {
	color: var(--mk-primary);
	text-decoration: underline;
}

.mk-cell-muted {
	color: var(--mk-text-muted);
}

.mk-cell-actions {
	width: 1%;
	white-space: nowrap;
	text-align: right;
}

/* filtr nad tabulkou */
.mk-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	padding: 0.75rem;
	margin-bottom: 1rem;
	background: var(--mk-surface-alt);
	border: 1px solid var(--mk-border);
	border-radius: var(--mk-radius-lg);
}

.mk-filter > .mk-search {
	flex: 1 1 240px;
}

.mk-filter > .form-select {
	flex: 0 1 220px;
	width: auto;
}

.mk-search {
	position: relative;
}

.mk-search > .bi {
	position: absolute;
	left: 0.875rem;
	top: 50%;
	transform: translateY(-50%);
	color: var(--mk-text-subtle);
	pointer-events: none;
}

.mk-search > .form-control {
	padding-left: 2.375rem;
}

.mk-filter .form-check {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding-left: 0;
}

.mk-filter .form-check-input {
	margin: 0;
	float: none;
}

@media (max-width: 575.98px) {
	.mk-filter > .form-select,
	.mk-filter > .mk-search {
		flex: 1 1 100%;
	}
}

/* ===================================================================== Odznaky */

.badge {
	--bs-badge-padding-x: 0.5rem;
	--bs-badge-padding-y: 0;
	--bs-badge-font-size: 0.75rem;
	--bs-badge-font-weight: 600;
	--bs-badge-border-radius: var(--mk-radius-pill);
	display: inline-flex;
	align-items: center;
	gap: 0.3125rem;
	height: 22px;
	line-height: 1;
	white-space: nowrap;
	vertical-align: middle;
	letter-spacing: 0.1px;
	border: 1px solid transparent;
}

.badge .bi {
	font-size: 0.75rem;
	vertical-align: 0;
}

.badge-dot::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
	flex: none;
}

.badge-subtle-success { background: var(--mk-success-subtle); color: var(--mk-success-text); }
.badge-subtle-success.badge-dot::before { background: var(--mk-success); }
.badge-subtle-info { background: var(--mk-info-subtle); color: var(--mk-info-text); }
.badge-subtle-info.badge-dot::before { background: var(--mk-info); }
.badge-subtle-primary { background: var(--mk-primary-subtle); color: var(--mk-primary-text); }
.badge-subtle-primary.badge-dot::before { background: var(--mk-primary); }
.badge-subtle-secondary { background: var(--mk-secondary-subtle); color: var(--mk-secondary-text); }
.badge-subtle-secondary.badge-dot::before { background: var(--mk-secondary); }
.badge-subtle-accent { background: var(--mk-accent-subtle); color: var(--mk-accent-text); }
.badge-subtle-accent.badge-dot::before { background: var(--mk-accent-decor); }
.badge-subtle-warning { background: var(--mk-warning-subtle); color: var(--mk-warning-text); }
.badge-subtle-warning.badge-dot::before { background: var(--mk-warning); }
.badge-subtle-danger { background: var(--mk-danger-subtle); color: var(--mk-danger-text); }
.badge-subtle-danger.badge-dot::before { background: var(--mk-danger); }
.badge-subtle-neutral { background: var(--mk-surface-alt); color: var(--mk-text-muted); border-color: var(--mk-border); }
.badge-subtle-neutral.badge-dot::before { background: var(--mk-border-strong); }

/* staré třídy Bootstrapu ve zbytku aplikace → subtilní varianty */
.badge.text-bg-success { background: var(--mk-success-subtle) !important; color: var(--mk-success-text) !important; }
.badge.text-bg-info, .badge.text-bg-primary { background: var(--mk-info-subtle) !important; color: var(--mk-info-text) !important; }
.badge.text-bg-warning { background: var(--mk-warning-subtle) !important; color: var(--mk-warning-text) !important; }
.badge.text-bg-danger { background: var(--mk-danger-subtle) !important; color: var(--mk-danger-text) !important; }
.badge.text-bg-secondary, .badge.text-bg-light { background: var(--mk-surface-alt) !important; color: var(--mk-text-muted) !important; border-color: var(--mk-border); }

/* ===================================================================== Upozornění a flash zprávy */

.alert {
	--bs-alert-padding-x: 1rem;
	--bs-alert-padding-y: 0.75rem;
	--bs-alert-border-radius: var(--mk-radius-md);
	--bs-alert-link-color: inherit;
	border: 0;
	border-left: 4px solid var(--mk-alert-stripe, var(--mk-border-strong));
	font-size: 0.9375rem;
}

.alert .alert-link,
.alert a {
	color: inherit;
	font-weight: 600;
	text-decoration: underline;
}

.alert-success { --bs-alert-bg: var(--mk-success-subtle); --bs-alert-color: var(--mk-success-text); --mk-alert-stripe: var(--mk-success); }
.alert-info, .alert-primary { --bs-alert-bg: var(--mk-info-subtle); --bs-alert-color: var(--mk-info-text); --mk-alert-stripe: var(--mk-info); }
.alert-warning { --bs-alert-bg: var(--mk-warning-subtle); --bs-alert-color: var(--mk-warning-text); --mk-alert-stripe: var(--mk-warning-border); }
.alert-danger { --bs-alert-bg: var(--mk-danger-subtle); --bs-alert-color: var(--mk-danger-text); --mk-alert-stripe: var(--mk-danger); }
.alert-secondary, .alert-light { --bs-alert-bg: var(--mk-surface-alt); --bs-alert-color: var(--mk-text); --mk-alert-stripe: var(--mk-border-strong); }

.mk-flash {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
}

.mk-flash > .bi {
	font-size: 1.25rem;
	line-height: 1.5rem;
	flex: none;
}

.mk-flash-text {
	flex: 1 1 auto;
	min-width: 0;
	padding-top: 1px;
}

.mk-flash.alert-dismissible {
	padding-right: 3rem;
}

.mk-flash .btn-close {
	padding: 1.0625rem 1rem;
}

.mk-flash.fade:not(.show) {
	opacity: 0;
}

[data-bs-theme="dark"] .btn-close {
	filter: var(--bs-btn-close-white-filter);
}

/* ===================================================================== Prázdné stavy */

.mk-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 3rem 1.5rem;
}

.mk-empty-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin-bottom: 1rem;
	border-radius: 50%;
	background: var(--mk-primary-subtle);
	color: var(--mk-primary);
	font-size: 2rem;
}

.mk-empty-title {
	font-family: var(--mk-font-heading);
	font-size: 1.25rem;
	line-height: 1.75rem;
	font-weight: 600;
	letter-spacing: -0.2px;
	margin: 0 0 0.375rem;
}

.mk-empty-text {
	max-width: 40ch;
	color: var(--mk-text-muted);
	margin: 0 auto;
}

.mk-empty-action {
	margin-top: 1.25rem;
}

.mk-empty-compact {
	padding: 1.5rem;
	text-align: center;
	color: var(--mk-text-muted);
}

/* ===================================================================== Navigace v obsahu */

.breadcrumb {
	--bs-breadcrumb-margin-bottom: 0.25rem;
	--bs-breadcrumb-divider-color: var(--mk-text-subtle);
	--bs-breadcrumb-item-active-color: var(--mk-text-muted);
	--bs-breadcrumb-item-padding-x: 0.375rem;
	font-size: 0.8125rem;
	line-height: 1.25rem;
}

.breadcrumb a {
	color: var(--mk-text-muted);
	text-decoration: none;
}

.breadcrumb a:hover {
	color: var(--mk-primary);
	text-decoration: underline;
}

.mk-page-header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.75rem 1rem;
	margin-bottom: 1.5rem;
}

.mk-page-title {
	flex: 1 1 18rem;
	min-width: 0;
}

.mk-page-title h1 {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 0.75rem;
}

.mk-page-sub {
	margin: 0.25rem 0 0;
	color: var(--mk-text-muted);
}

.mk-page-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.mk-page-actions form {
	margin: 0;
}

.mk-section {
	margin-top: 2rem;
}

.mk-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
	margin-bottom: 0.75rem;
}

.mk-section-head > h2,
.mk-section-head > .h2 {
	margin: 0 auto 0 0;
	font-size: 1.25rem;
	line-height: 1.75rem;
}

/* segmentový přepínač (Nadcházející / Proběhlé) */
.mk-segmented {
	display: inline-flex;
	gap: 2px;
	padding: 4px;
	margin-bottom: 1rem;
	background: var(--mk-surface-alt);
	border: 1px solid var(--mk-border);
	border-radius: var(--mk-radius-md);
	list-style: none;
}

.mk-segmented .nav-link {
	padding: 0.375rem 0.875rem;
	border-radius: 7px;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--mk-text-muted);
	text-decoration: none;
	transition: background-color var(--mk-duration-fast) var(--mk-ease), color var(--mk-duration-fast) var(--mk-ease);
}

.mk-segmented .nav-link:hover {
	color: var(--mk-text);
}

.mk-segmented .nav-link.active {
	background: var(--mk-surface);
	color: var(--mk-text);
	box-shadow: var(--mk-shadow-sm);
}

.nav-pills {
	--bs-nav-pills-border-radius: var(--mk-radius-md);
	--bs-nav-pills-link-active-color: var(--mk-on-primary);
	--bs-nav-pills-link-active-bg: var(--mk-primary);
}

.nav {
	--bs-nav-link-color: var(--mk-primary);
	--bs-nav-link-hover-color: var(--mk-primary-active);
}

.list-group {
	--bs-list-group-bg: var(--mk-surface);
	--bs-list-group-color: var(--mk-text);
	--bs-list-group-border-color: var(--mk-border);
	--bs-list-group-border-radius: var(--mk-radius-lg);
	--bs-list-group-item-padding-y: 0.875rem;
	--bs-list-group-item-padding-x: 1.25rem;
	--bs-list-group-action-hover-bg: var(--mk-surface-hover);
	--bs-list-group-action-hover-color: var(--mk-text);
	--bs-list-group-action-color: var(--mk-text);
	--bs-list-group-action-active-bg: var(--mk-surface-alt);
	--bs-list-group-active-bg: var(--mk-primary);
	--bs-list-group-active-border-color: var(--mk-primary);
}

.list-group-item-action {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-weight: 500;
}

.dropdown-menu {
	--bs-dropdown-bg: var(--mk-surface);
	--bs-dropdown-border-color: var(--mk-border);
	--bs-dropdown-border-radius: var(--mk-radius-md);
	--bs-dropdown-box-shadow: var(--mk-shadow-md);
	--bs-dropdown-link-color: var(--mk-text);
	--bs-dropdown-link-hover-bg: var(--mk-surface-alt);
	box-shadow: var(--mk-shadow-md);
}

.modal {
	--bs-modal-border-radius: var(--mk-radius-xl);
	--bs-modal-bg: var(--mk-surface);
	--bs-modal-box-shadow: var(--mk-shadow-lg);
}

.tooltip {
	--bs-tooltip-bg: var(--mk-text);
	--bs-tooltip-color: var(--mk-bg);
	--bs-tooltip-border-radius: var(--mk-radius-sm);
	font-family: var(--mk-font-body);
}

/* ===================================================================== Rozvržení administrace */

.mk-shell {
	display: flex;
	min-height: 100vh;
	min-height: 100dvh;
}

.mk-main {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.mk-content {
	width: 100%;
	max-width: var(--mk-content-max-width);
	padding: 1.5rem var(--mk-gutter) 3rem;
}

@media (min-width: 768px) {
	.mk-content {
		padding-top: 2rem;
	}
}

.mk-flashes {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-bottom: 1.5rem;
}

.mk-flashes > .alert {
	margin: 0;
}

/* horní lišta (mobil a tablet) */
.mk-topbar {
	position: sticky;
	top: 0;
	z-index: 1020;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	height: var(--mk-topbar-height);
	padding: 0 0.5rem;
	background: var(--mk-surface);
	border-bottom: 1px solid var(--mk-border);
}

.mk-topbar-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: var(--mk-radius-md);
	background: transparent;
	color: var(--mk-text);
	font-size: 1.5rem;
}

.mk-topbar-toggle:hover {
	background: var(--mk-surface-alt);
}

.mk-brand {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	min-width: 0;
	color: inherit;
	text-decoration: none;
}

.mk-brand-name {
	font-family: var(--mk-font-heading);
	font-weight: 700;
	font-size: 1.125rem;
	line-height: 1.5rem;
	letter-spacing: -0.3px;
	color: var(--mk-text);
}

.mk-brand:hover {
	color: inherit;
}

/* postranní panel (offcanvas-lg) */
.mk-sidebar {
	--bs-offcanvas-width: 280px;
	--bs-offcanvas-bg: var(--mk-sidebar-bg);
	--bs-offcanvas-color: var(--mk-sidebar-text);
	--bs-offcanvas-border-width: 0;
	--bs-offcanvas-box-shadow: var(--mk-shadow-lg);
	--bs-offcanvas-transition: transform var(--mk-duration-slow) var(--mk-ease);
	color: var(--mk-sidebar-text);
}

.mk-sidebar-inner {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
	width: 100%;
	background: var(--mk-sidebar-bg);
	color: var(--mk-sidebar-text);
}

@media (min-width: 992px) {
	.mk-sidebar {
		position: sticky;
		top: 0;
		flex: 0 0 var(--mk-sidebar-width);
		width: var(--mk-sidebar-width);
		height: 100vh;
		height: 100dvh;
		background-color: var(--mk-sidebar-bg) !important;
	}
}

.mk-sidebar-head {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 1.25rem 1rem 1rem;
}

.mk-sidebar-head .mk-brand {
	flex: 1 1 auto;
	gap: 0.75rem;
	padding: 0.25rem;
	margin: -0.25rem;
	border-radius: var(--mk-radius-md);
}

.mk-sidebar-head .mk-brand:focus-visible {
	outline-color: var(--mk-sidebar-active-indicator);
}

.mk-sidebar .mk-brand-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.mk-sidebar .mk-brand-name {
	font-size: 1.25rem;
	line-height: 1.5rem;
	color: var(--mk-sidebar-text);
}

.mk-brand-org {
	font-size: 0.8125rem;
	line-height: 1.125rem;
	color: var(--mk-sidebar-text-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.mk-sidebar .btn-close {
	flex: none;
}

.mk-org-switch {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	margin: 0 0.75rem 0.5rem;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--mk-sidebar-border);
	border-radius: var(--mk-radius-md);
	color: var(--mk-sidebar-text);
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
	transition: background-color var(--mk-duration-fast) var(--mk-ease);
}

.mk-org-switch span {
	flex: 1 1 auto;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.mk-org-switch .bi {
	color: var(--mk-sidebar-text-muted);
}

.mk-org-switch:hover,
.mk-org-switch.active {
	background: var(--mk-sidebar-hover-bg);
	color: var(--mk-sidebar-text);
}

.mk-org-switch.active {
	border-color: var(--mk-sidebar-active-indicator);
}

.mk-nav {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 0.5rem 0.75rem 1rem;
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
}

.mk-nav ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.mk-nav-link {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	height: 40px;
	padding: 0 0.75rem;
	border-radius: var(--mk-radius-md);
	color: var(--mk-sidebar-text-muted);
	font-size: 0.9375rem;
	font-weight: 500;
	text-decoration: none;
	transition: background-color var(--mk-duration-fast) var(--mk-ease), color var(--mk-duration-fast) var(--mk-ease);
}

.mk-nav-link .bi {
	font-size: 1.25rem;
	width: 1.25rem;
	text-align: center;
	vertical-align: 0;
}

.mk-nav-link:hover {
	background: var(--mk-sidebar-hover-bg);
	color: var(--mk-sidebar-text);
}

.mk-nav-link:focus-visible {
	outline: 2px solid var(--mk-sidebar-active-indicator);
	outline-offset: -2px;
}

.mk-nav-link.active {
	background: var(--mk-sidebar-active-bg);
	color: var(--mk-sidebar-text);
	font-weight: 600;
}

.mk-nav-link.active::before {
	content: "";
	position: absolute;
	left: -0.75rem;
	top: 8px;
	bottom: 8px;
	width: 3px;
	border-radius: 0 3px 3px 0;
	background: var(--mk-sidebar-active-indicator);
}

.mk-nav-section {
	margin: 1.25rem 0 0.5rem;
	padding: 1rem 0.75rem 0;
	border-top: 1px solid var(--mk-sidebar-border);
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
	letter-spacing: 0.7px;
	text-transform: uppercase;
	color: var(--mk-sidebar-text-muted);
}

.mk-sidebar-foot {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	padding: 0.875rem 1rem;
	border-top: 1px solid var(--mk-sidebar-border);
}

.mk-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--mk-primary-subtle);
	color: var(--mk-primary-text);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.3px;
}

.mk-user {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.mk-user-name {
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
	color: var(--mk-sidebar-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.mk-user-role {
	font-size: 0.75rem;
	line-height: 1rem;
	color: var(--mk-sidebar-text-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.mk-sidebar-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: var(--mk-radius-md);
	background: transparent;
	color: var(--mk-sidebar-text-muted);
	font-size: 1.125rem;
	text-decoration: none;
	transition: background-color var(--mk-duration-fast) var(--mk-ease), color var(--mk-duration-fast) var(--mk-ease);
}

.mk-sidebar-icon-btn:hover {
	background: var(--mk-sidebar-hover-bg);
	color: var(--mk-sidebar-text);
}

.mk-sidebar-icon-btn:focus-visible {
	outline: 2px solid var(--mk-sidebar-active-indicator);
	outline-offset: 0;
}

@media (max-width: 991.98px) {
	.mk-sidebar-icon-btn {
		width: 44px;
		height: 44px;
	}
}

/* přepínač motivu – ikona podle zvoleného režimu */
.mk-theme-toggle .mk-theme-icon {
	display: none;
}

.mk-theme-toggle[data-mk-theme-mode="auto"] .mk-theme-icon-auto,
.mk-theme-toggle[data-mk-theme-mode="light"] .mk-theme-icon-light,
.mk-theme-toggle[data-mk-theme-mode="dark"] .mk-theme-icon-dark {
	display: inline-block;
}

.mk-theme-toggle:not([data-mk-theme-mode]) .mk-theme-icon-auto {
	display: inline-block;
}

/* ===================================================================== Mapa (Leaflet) */

.mk-map-card {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--mk-border);
	border-radius: var(--mk-radius-lg);
	background: var(--mk-surface-alt);
	isolation: isolate;
}

.fishery-map {
	height: 420px;
	width: 100%;
	z-index: 0;
	font-family: var(--mk-font-body);
	background: var(--mk-surface-alt);
}

@media (max-width: 767.98px) {
	.fishery-map {
		height: 320px;
	}
}

.leaflet-container {
	font-family: var(--mk-font-body);
	font-size: 0.875rem;
}

.leaflet-container a {
	color: var(--mk-primary);
}

.leaflet-popup-content-wrapper,
.leaflet-tooltip {
	border-radius: var(--mk-radius-md);
	background: var(--mk-surface);
	color: var(--mk-text);
	box-shadow: var(--mk-shadow-md);
}

.leaflet-popup-tip {
	background: var(--mk-surface);
}

.leaflet-popup-content {
	margin: 10px 14px;
	font-size: 0.9375rem;
	line-height: 1.5rem;
}

.leaflet-popup-content a,
.leaflet-popup-content strong {
	font-weight: 600;
}

.leaflet-tooltip {
	border: 1px solid var(--mk-border);
	font-weight: 600;
	padding: 4px 8px;
}

.leaflet-bar,
.leaflet-touch .leaflet-bar {
	border: 1px solid var(--mk-border) !important;
	border-radius: var(--mk-radius-md) !important;
	box-shadow: var(--mk-shadow-sm) !important;
	overflow: hidden;
}

.leaflet-bar a {
	background-color: var(--mk-surface);
	color: var(--mk-text);
	border-bottom-color: var(--mk-border);
}

.leaflet-bar a:hover {
	background-color: var(--mk-surface-alt);
	color: var(--mk-text);
}

[data-bs-theme="dark"] .leaflet-bar a {
	background-color: #F4EEE6;
	color: #1E2A30;
}

[data-bs-theme="dark"] .leaflet-tile-pane {
	filter: saturate(0.85) brightness(0.92);
}

.mk-map-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
	margin-bottom: 0.5rem;
}

.mk-map-toolbar > :first-child {
	margin-right: auto;
}

/* ===================================================================== Přihlášení a další stránky bez panelu */

.mk-auth {
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
	background: var(--mk-bg);
}

.mk-auth-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 140px var(--mk-gutter) 0;
	background:
		linear-gradient(180deg, var(--mk-hero-gradient-from) 0%, var(--mk-hero-gradient-via) 62%, var(--mk-hero-gradient-to) 100%) top / 100% 200px no-repeat;
}

/* pás trávy dole v hero (z loga) */
.mk-auth-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 176px;
	height: 24px;
	background:
		linear-gradient(var(--mk-brand-grass), var(--mk-brand-grass)) bottom / 100% 10px no-repeat,
		var(--mk-brand-forest);
	clip-path: polygon(0 60%, 6% 30%, 11% 55%, 18% 20%, 24% 50%, 31% 25%, 38% 55%, 45% 15%, 52% 45%, 58% 25%, 65% 55%, 72% 20%, 79% 50%, 86% 30%, 93% 55%, 100% 25%, 100% 100%, 0 100%);
	pointer-events: none;
}

.mk-auth-hero .mk-logo {
	--mk-logo-size: 120px;
	position: relative;
	z-index: 1;
}

.mk-auth-title {
	margin: 0.75rem 0 0;
	font-family: var(--mk-font-heading);
	font-size: 1.5rem;
	line-height: 2rem;
	font-weight: 700;
	letter-spacing: -0.3px;
	color: var(--mk-text);
}

.mk-auth-sub {
	margin: 0.125rem auto 0;
	font-size: 0.9375rem;
	color: var(--mk-text-muted);
}

.mk-auth-main {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 1.5rem var(--mk-gutter) 1.5rem;
}

.mk-auth-panel {
	width: 100%;
	max-width: 400px;
	margin: 0 auto;
	flex: 1 0 auto;
}

.mk-auth-panel h1 {
	margin-bottom: 0.5rem;
}

.mk-auth-lead {
	color: var(--mk-text-muted);
	margin-bottom: 1.5rem;
}

.mk-auth-panel .mk-form .mb-3 ~ .mb-3:has(> .btn:only-child),
.mk-auth-panel .mk-form .mb-3 ~ .mb-3:has(> input.btn:only-child) {
	margin-top: 1.5rem;
}

.mk-auth-panel .mk-form .btn[type="submit"],
.mk-auth-panel .mk-form input.btn {
	width: 100%;
	min-height: 48px;
	font-size: 0.9375rem;
}

.mk-auth-links {
	margin-top: 1.25rem;
	text-align: center;
	font-size: 0.875rem;
}

.mk-auth-links a {
	font-weight: 500;
}

.mk-auth-foot {
	margin-top: 2.5rem;
	text-align: center;
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 500;
	letter-spacing: 0.2px;
	color: var(--mk-text-muted);
}

.mk-auth-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin-bottom: 1rem;
	border-radius: 50%;
	font-size: 1.625rem;
}

@media (min-width: 992px) {
	.mk-auth {
		flex-direction: row;
	}

	.mk-auth-hero {
		flex: 0 0 41.6667%;
		justify-content: center;
		padding: 3rem 2rem 4.5rem;
		min-height: 100vh;
		min-height: 100dvh;
		position: sticky;
		top: 0;
		background: linear-gradient(180deg, var(--mk-hero-gradient-from) 0%, var(--mk-hero-gradient-via) 50%, var(--mk-hero-gradient-to) 100%);
	}

	.mk-auth-hero::after {
		top: auto;
		bottom: 0;
		height: 28px;
	}

	.mk-auth-hero .mk-logo {
		--mk-logo-size: 240px;
	}

	.mk-auth-title {
		margin-top: 2rem;
		font-size: 2.5rem;
		line-height: 3rem;
		letter-spacing: -0.8px;
		color: #FFFFFF;
	}

	.mk-auth-sub {
		font-size: 1.0625rem;
		line-height: 1.625rem;
		color: #FFFFFF;
		opacity: 0.95;
	}

	.mk-auth-main {
		flex: 1 1 58.3333%;
		justify-content: center;
		padding: 3rem 2rem 1.5rem;
	}

	.mk-auth-panel {
		flex: 0 0 auto;
		margin: auto;
	}
}

/* ===================================================================== Veřejné stránky (Front) */

.mk-front-header {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 0.75rem var(--mk-gutter);
	background: var(--mk-surface);
	border-bottom: 1px solid var(--mk-border);
}

.mk-front-header .mk-brand {
	margin-right: auto;
}

.mk-front-main {
	padding: 3rem var(--mk-gutter);
	max-width: var(--mk-content-max-width);
	margin: 0 auto;
	width: 100%;
}

.mk-hero {
	position: relative;
	overflow: hidden;
	color: #FFFFFF;
	background: linear-gradient(180deg, var(--mk-hero-gradient-from) 0%, var(--mk-hero-gradient-via) 45%, var(--mk-hero-gradient-to) 100%);
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 3rem var(--mk-gutter) 5rem;
}

.mk-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 32px;
	background:
		linear-gradient(var(--mk-brand-grass), var(--mk-brand-grass)) bottom / 100% 12px no-repeat,
		var(--mk-brand-forest);
	clip-path: polygon(0 60%, 5% 30%, 10% 55%, 16% 20%, 22% 50%, 28% 25%, 35% 55%, 42% 15%, 49% 45%, 56% 25%, 63% 55%, 70% 20%, 77% 50%, 84% 30%, 92% 55%, 100% 25%, 100% 100%, 0 100%);
}

.mk-hero-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	max-width: 40rem;
}

.mk-hero .mk-logo {
	--mk-logo-size: 180px;
}

.mk-hero h1 {
	margin: 2rem 0 0.5rem;
	color: #FFFFFF;
	font-size: 2.5rem;
	line-height: 3rem;
	font-weight: 700;
	letter-spacing: -0.8px;
}

.mk-hero p {
	font-size: 1.0625rem;
	line-height: 1.625rem;
	margin: 0 auto 2rem;
	color: #FFFFFF;
}

.mk-hero-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
}

@media (min-width: 768px) {
	.mk-hero .mk-logo {
		--mk-logo-size: 280px;
	}

	.mk-hero h1 {
		font-size: 3rem;
		line-height: 3.5rem;
	}
}

/* ===================================================================== Drobnosti */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

.mk-icon-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 32px;
	height: 32px;
	border-radius: 8px;
	font-size: 1rem;
}

/* skryté popisky (.visually-hidden je absolutně pozicované) nesmí vytéct z posuvné tabulky */
.table-responsive {
	position: relative;
}

/* řádkové formuláře v tabulce (zápis účasti) */
td > form.d-flex .form-select-sm {
	min-width: 8.5rem;
}

/* ===== Program schůze a úkoly ===== */
.mk-agenda { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; }
.mk-agenda-item { border-left: 4px solid var(--mk-primary); }
.mk-agenda-item.is-done { border-left-color: var(--mk-success); }
.mk-agenda-item.is-carried { border-left-color: var(--mk-warning, #9A5B00); opacity: .85; }
.mk-agenda-item.is-dropped { border-left-color: var(--mk-border-strong); opacity: .75; }
.mk-agenda-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.mk-agenda-num { font-family: var(--mk-font-heading); font-weight: 700; font-size: 1.25rem; color: var(--mk-primary); }
.mk-agenda-title { font-size: 1.125rem; line-height: 1.5rem; margin: 0; }
.mk-agenda-actions { margin-left: auto; display: flex; gap: 6px; }
.mk-agenda-meta { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 6px; font-size: .875rem; color: var(--mk-text-muted); }
.mk-agenda-desc { white-space: pre-line; margin: 10px 0 0; }
.mk-pre { white-space: pre-line; }
.mk-agenda-minutes { margin-top: 12px; padding: 8px 12px; border-left: 3px solid var(--mk-secondary); background: var(--mk-surface-alt); border-radius: 0 var(--mk-radius-sm) var(--mk-radius-sm) 0; }
.mk-tasks { list-style: none; padding: 0; margin: 12px 0 0; border-top: 1px solid var(--mk-border); }
.mk-task { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 8px 0; border-bottom: 1px solid var(--mk-border); }
.mk-task:last-child { border-bottom: 0; }
.mk-task.is-done .mk-task-title { text-decoration: line-through; color: var(--mk-text-muted); }
.mk-task-title { flex: 1 1 12rem; }
.mk-task-meta { display: flex; gap: 12px; font-size: .8125rem; color: var(--mk-text-muted); }
.mk-task-check { font-size: 1.25rem; line-height: 1; color: var(--mk-text-muted); text-decoration: none; }
a.mk-task-check:hover { color: var(--mk-primary); }
.mk-task.is-done .mk-task-check, .mk-task-check .bi-check-circle-fill { color: var(--mk-success); }
