/*
 * Doplňky ke Gov Design Systemu – jen to, co Gov DS sám neřeší.
 * Barvy a rozestupy výhradně přes tokeny Gov DS (fungují i v tmavém režimu).
 * Žádné inline styly v šablonách (blokuje je Content-Security-Policy).
 */

/* Patička vždy dole */
html {
	color-scheme: light;
}

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	margin: 0;
}

main {
	flex: 1;
}

/* Logo ČÚZK (inline SVG v hlavičce) */
.gov-header__logo-svg {
	flex-shrink: 0;
	height: 56px;
}

@media (min-width: 48em) {
	.gov-header__logo-svg {
		height: 64px;
	}
}

.gov-header__logo-svg .logo-text {
	fill: #00469b;
}

.gov-header__logo-svg .logo-flag {
	fill: #d70c0f;
}

.gov-header__logo-svg .logo-emblem {
	fill: #fff;
}

/* Patička */
.gov-footer__content {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--spacing-l);
}

/* Formuláře Nette vykreslené Gov DS komponentami (parts/gov-form.latte) */
.gov-nette-form {
	display: grid;
	gap: var(--spacing-xl);
	max-width: 42rem;
	margin-top: var(--spacing-xl);
}

.gov-nette-form__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-l);
}

.gov-nette-form gov-form-radio-group,
.gov-nette-form gov-form-checkbox-group {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--spacing-m);
}

.gov-nette-form__native {
	display: grid;
	gap: var(--spacing-s);
}

/* Nativní prvky Nette zůstávají ve formuláři kvůli odeslání dat a CSRF, ale nejsou vidět */
.nette-controls {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* Pomocná třída pro čtečky obrazovky */

/* Tabulky typu „popisek – hodnota“ */
.gov-table th[scope="row"] {
	width: 30%;
}

/* --- Žádost o dálkový přístup --- */
/* --- reklamace ----------------------------------------------------------------- */
.reklamace-form > section,
.reklamace-sekce {
	margin-bottom: 2.5rem;
}

.reklamace-sekce > h2 {
	border-bottom: 1px solid var(--gov-color-secondary-400, #ddd);
	padding-bottom: 0.5rem;
	margin-bottom: 1rem;
}

/* tabulky současného stavu – vzdušné */
.reklamace-tabulka table {
	width: 100%;
	border-collapse: collapse;
}

.reklamace-tabulka th,
.reklamace-tabulka td {
	padding: 0.6rem 0.9rem;
	text-align: left;
	vertical-align: top;
}

.reklamace-tabulka tbody tr {
	border-bottom: 1px solid var(--gov-color-secondary-300, #eee);
}

.reklamace-tabulka th[scope="row"] {
	width: 40%;
	font-weight: 500;
	color: var(--gov-color-secondary-700, #555);
}

.reklamace-tea td {
	vertical-align: middle;
}

.reklamace-tea td gov-form-control {
	margin: 0;
}

.reklamace-mapa {
	margin: 0;
}

.reklamace-mapa img {
	display: block;
	max-width: 100%;
	height: auto;
	border: 1px solid var(--gov-color-secondary-400, #ddd);
}

.reklamace-mapa figcaption {
	display: block;
	margin-top: 0.5rem;
}

@media (min-width: 992px) {
	.reklamace-mapa-sloupec {
		padding-left: 2.5rem;
	}
}

.reklamace-mapa-nadpis {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.reklamace-ikona-odkaz {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: 4px;
	color: var(--color-primary-600, #2362a2);
	--gov-icon-size: 1.125rem;
}

.reklamace-ikona-odkaz[hidden] {
	display: none;
}

.reklamace-ikona-odkaz:hover,
.reklamace-ikona-odkaz:focus-visible {
	background: var(--color-primary-200, #e3eef9);
}

.reklamace-ikona-odkaz gov-icon {
	width: 1.125rem;
	height: 1.125rem;
}

.reklamace-bod {
	border: 0;
	margin: 0 0 1rem;
	padding: 0;
}

.reklamace-priloha img {
	max-width: 200px;
	max-height: 200px;
	border: 1px solid var(--gov-color-secondary-400, #ddd);
}

.reklamace-odkazy a {
	margin-right: 1.25rem;
}

[hidden] {
	display: none !important;
}


/* --- rozvržení podle Gov DS (gov-layout) a patička ---------------------------------- */
.gov-footer__heading {
	font-size: var(--font-size-headline-s);
	line-height: 150%;
	font-weight: 500;
	color: var(--component-footer-text-primary);
	margin: 0 0 var(--templates-margin-m, 1rem);
}

.gov-footer__address {
	list-style: none;
}



.gov-footer__main {
	list-style: none;
	margin: 0 0 var(--spacing-l, 1.5rem);
	padding: 0;
	justify-content: flex-start;
}

.gov-footer__main > li::before,
.gov-footer__address > li::before {
	content: none;
}


/* --- úvodní stránka: seznam formulářů (bloky s hlavičkou) ---------------------------- */
.reklamace-box {
	height: 100%;
	border: 1px solid var(--border-subtle, #d4d8de);
	border-radius: var(--corner-radius-m, 0.5rem);
	background: var(--background-white, #fff);
	overflow: hidden;
}

.reklamace-box__head {
	display: flex;
	align-items: center;
	gap: var(--spacing-s, 0.75rem);
	margin: 0;
	padding: var(--spacing-m, 1rem) var(--spacing-l, 1.5rem);
	background: var(--background-primary, #2362a2);
	color: var(--text-white-fixed, #fff);
	font-size: var(--font-size-headline-xs, 1.125rem);
	line-height: 1.4;
	font-weight: 500;
}

.reklamace-box__head gov-icon {
	--icon-size: 1.25rem;
	color: var(--icon-on-bold-white, #fff);
	flex: 0 0 auto;
}

.reklamace-box__list {
	list-style: none;
	margin: 0;
	padding: var(--spacing-xs, 0.5rem) 0;
}

.reklamace-box__list li {
	margin: 0;
	padding: 0;
}

.reklamace-box__list li::before {
	content: none;
}

.reklamace-box__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--spacing-s, 0.75rem);
	padding: 0.55rem var(--spacing-l, 1.5rem);
	color: var(--text-primary-color, #2362a2);
	font-weight: 500;
	text-decoration: none;
}

.reklamace-box__list li + li a {
	border-top: 1px solid var(--border-subtlest, #eceef1);
}

.reklamace-box__list a gov-icon {
	--icon-size: 1rem;
	flex: 0 0 auto;
	opacity: 0.6;
	transition: transform 0.15s ease, opacity 0.15s ease;
}

.reklamace-box__list a:hover,
.reklamace-box__list a:focus-visible {
	background: var(--background-primary-subtlest, #eef4fb);
	text-decoration: underline;
}

.reklamace-box__list a:hover gov-icon {
	opacity: 1;
	transform: translateX(2px);
}

.reklamace-box__list a:focus-visible {
	outline: 2px solid var(--status-focus, #ffbf00);
	outline-offset: -2px;
}

/* --- formulář reklamace: rozestupy a zarovnání prvků --------------------------------- */
.reklamace-form gov-grid {
	gap: var(--spacing-l, 1.5rem) var(--spacing-xl, 2rem);
}

[data-ident="hledani"] > * + *,
[data-ident="vysledek"] > * + * {
	margin-top: var(--spacing-l, 1.5rem);
}

/* pole s tlačítkem na jednom řádku (kód RÚIAN + Načíst, GPS + Převést) */
.reklamace-inline {
	display: flex;
	align-items: flex-end;
	gap: var(--spacing-s, 0.75rem);
}

.reklamace-inline > :first-child {
	flex: 1 1 auto;
	min-width: 0;
}

.reklamace-inline > gov-button {
	flex: 0 0 auto;
}

.reklamace-sekce > * + * {
	margin-top: var(--spacing-l, 1.5rem);
}

.reklamace-sekce > h2 + * {
	margin-top: 0;
}

.reklamace-form gov-form-control {
	display: block;
}

.reklamace-bod legend {
	margin-bottom: var(--spacing-s, 0.75rem);
}

.reklamace-bod__gps {
	display: flex;
	align-items: flex-end;
	padding-bottom: 0;
}

.reklamace-gps {
	margin-top: var(--spacing-m, 1rem);
}

/* --- typografie: decentnější nadpisy v barvě ČÚZK (Gov DS primary-700) --------------- */
main h1:not([slot]),
.gov-page-heading h1 {
	font-size: 1.75rem;
	line-height: 1.25;
	font-weight: 500;
	color: var(--color-primary-700, #0e3578);
}

@media (min-width: 48em) {
	main h1:not([slot]),
	.gov-page-heading h1 {
		font-size: 2rem;
	}
}

main h2:not([slot]) {
	font-size: 1.375rem;
	line-height: 1.3;
	font-weight: 500;
	color: var(--color-primary-700, #0e3578);
}

main legend,
main h3:not([slot]) {
	font-size: 1.125rem;
	line-height: 1.35;
	font-weight: 500;
	color: var(--color-primary-700, #0e3578);
}

.gov-page-heading {
	margin-bottom: var(--spacing-m, 1rem) !important;
}

.gov-page-heading__annotation {
	margin-top: var(--spacing-xs, 0.5rem);
	color: var(--text-secondary, #4b5563);
	font-weight: 400;
}

/* --- drobečková navigace: menší písmo, oddělená linkou ------------------------------ */
main gov-breadcrumbs {
	display: block;
	margin-bottom: var(--spacing-xl, 2rem) !important;
	padding-bottom: var(--spacing-xs, 0.5rem);
	border-bottom: 1px solid var(--border-subtle, #d4d8de);
}

gov-breadcrumbs li,
gov-breadcrumbs a,
gov-breadcrumbs span {
	font-size: var(--font-size-body-s, 0.875rem);
	min-height: 0;
}

/* --- informace k formuláři: schované pod tlačítkem s ikonou (details/summary) ------- */
.app-info > summary {
	display: inline-flex;
	align-items: center;
	gap: var(--spacing-xs, 0.5rem);
	padding: 0.375rem 0.75rem;
	border: 1px solid var(--border-primary, #3771b8);
	border-radius: var(--corner-radius-m, 0.5rem);
	background: var(--background-white, #fff);
	color: var(--text-primary-color, #00469b);
	font-size: var(--font-size-body-s, 0.875rem);
	font-weight: 500;
	cursor: pointer;
	list-style: none;
}

.app-info > summary::-webkit-details-marker {
	display: none;
}

.app-info > summary::after {
	content: "";
	width: 0.45rem;
	height: 0.45rem;
	margin-left: 0.25rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	transition: transform 0.15s ease;
}

.app-info[open] > summary::after {
	transform: rotate(-135deg) translateY(-1px);
}

.app-info > summary:hover {
	background: var(--background-primary-subtlest, #f2f6fc);
}

.app-info > summary:focus-visible {
	outline: 2px solid var(--status-focus, #ffbf00);
	outline-offset: 2px;
}

.app-info > summary gov-icon {
	--icon-size: 1rem;
}

.app-info__body {
	max-width: 50rem;
	margin-top: var(--spacing-s, 0.75rem);
	padding: var(--spacing-m, 1rem) var(--spacing-l, 1.5rem);
	border-left: 4px solid var(--color-primary-600, #00469b);
	border-radius: var(--corner-radius-m, 0.5rem);
	background: var(--background-primary-subtlest, #f2f6fc);
}

.app-info__body > :last-child {
	margin-bottom: 0;
}

.app-info__body h3:not([slot]) {
	font-size: 1rem;
	margin: 0 0 var(--spacing-xs, 0.5rem);
}

.app-info__body h3:not(:first-child) {
	margin-top: var(--spacing-m, 1rem);
}

.reklamace-tabulka th,
.reklamace-tabulka td {
	font-size: 0.9375rem;
}

/* --- detail reklamace -------------------------------------------------------------- */
.detail-blok {
	background: #fff;
	border: 1px solid var(--gov-color-secondary-300, #e5e5e5);
	border-radius: 4px;
	padding: 1rem 1.25rem 1.25rem;
	margin-bottom: 1.5rem;
}

main .detail-blok > h2:not([slot]) {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-size: 1.125rem;
	margin: 0 0 0.75rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--color-primary-700, #0e3578);
}

.detail-blok .reklamace-tabulka th,
.detail-blok .reklamace-tabulka td {
	padding: 0.5rem 0.5rem;
}

.detail-blok .reklamace-tabulka tbody tr:last-child {
	border-bottom: 0;
}

.detail-blok .reklamace-tabulka th[scope="row"] {
	width: 38%;
}

.detail-stav {
	display: inline-block;
	padding: 0.125rem 0.5rem;
	border-radius: 4px;
	background: var(--color-primary-200, #e3eef9);
	color: var(--color-primary-700, #0e3578);
	font-weight: 500;
}

.detail-chyba td {
	color: var(--color-error-600, #c52a3a);
}

.detail-mapa {
	margin: 1rem 0 0.75rem;
}

.detail-mapa img {
	width: 100%;
	max-width: 100%;
}

.detail-odkazy {
	list-style: none;
	margin: 0;
	padding: 0;
}

.detail-odkazy li + li {
	margin-top: 0.375rem;
}

.detail-odkazy a {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
}

.detail-odkazy gov-icon {
	width: 0.875rem;
	height: 0.875rem;
	flex: none;
}

main ul.detail-odkazy > li {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}

main ul.detail-odkazy > li::before,
main ul.detail-odkazy > li::marker {
	content: none;
	display: none;
}

.detail-blok:last-child {
	margin-bottom: 0;
}

/* nadpis bloku na úvodu – bílý text (přebíjí obecné main h2) */
main h2.reklamace-box__head:not([slot]) {
	color: var(--text-white-fixed, #fff);
}

/* --- souhrn chyb formuláře --------------------------------------------------------- */
.form-chyby:focus {
	outline: 3px solid var(--color-error-400, #e57373);
	outline-offset: 2px;
}

.form-chyby p,
.form-chyby ul {
	margin: 0;
}

.form-chyby ul {
	margin-top: 0.5rem;
	padding-left: 1.25rem;
}

.form-chyby li + li {
	margin-top: 0.25rem;
}
