/**
 * schach.in theme
 * CSS
 *
 * Part of »Zugzwang Project«
 * https://www.zugzwang.org/themes/schach.in
 *
 * @author Gustaf Mossakowski <gustaf@koenige.org>
 * @copyright Copyright © 2022 Gustaf Mossakowski
 * @license http://opensource.org/licenses/lgpl-3.0.html LGPL-3.0
 */


@media screen {
	.clubs .banner	{ background-color: #FC0;
					background-image: url('/_layout/clubs/bg-clubs.png'); }
	.ratings .banner	{ background-color: #FC0;
					background-image: url('/_layout/clubs/bg-clubs.png'); }
}
.clubs h1, .clubs h2
				{ color: #FC0;  }
.ratings h1, .ratings h2
				{ color: #FC0;  }

/**
 * chess16 theme
 * CSS
 *
 * Part of »Zugzwang Project«
 * https://www.zugzwang.org/themes/chess16
 *
 * @author Gustaf Mossakowski <gustaf@koenige.org>
 * @author Falco Nogatz <fnogatz@gmail.com>
 * @copyright Copyright © 2016-2018, 2022-2025 Gustaf Mossakowski
 * @copyright Copyright © 2020 Falco Nogatz
 * @license http://opensource.org/licenses/lgpl-3.0.html LGPL-3.0
 */


/* fonts */
@font-face	{ font-family: 'Fira Sans'; font-style: normal; font-weight: 400;
			src: local('Fira Sans'), local('FiraSans-Regular'),
			url(/_layout/chess16/fonts/FiraSans-Regular.woff2) format('woff2'),
			url(/_layout/chess16/fonts/FiraSans-Regular.woff) format('woff'); }
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 700;
			src: local('Fira Sans Bold'), local('FiraSans-Bold'),
			url(/_layout/chess16/fonts/FiraSans-Bold.woff2) format('woff2'),
			url(/_layout/chess16/fonts/FiraSans-Bold.woff) format('woff'); }
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 400;
			src: local('Fira Sans Italic'), local('FiraSans-Italic'),
			url(/_layout/chess16/fonts/FiraSans-Italic.woff2) format('woff2'),
			url(/_layout/chess16/fonts/FiraSans-Italic.woff) format('woff'); }


/* elements */
html, body	{ height: 100%; width: 100%; }
body		{ background: white; color: black; margin: 0; padding: 0; 
			font-family: "Fira Sans", Helvetica, sans-serif;
			line-height: 1.44; }

h1			{ font-size: 140%; margin: .5em 0 .25em; }
h1, h2		{ line-height: 1.2; }
h1+h2		{ margin-top: 0; }
h2			{ font-size: 125%; font-weight: normal; margin: 1.5em 0 .5em; }
h2+h3		{ margin-top: 0; }
h3			{ font-size: 110%; font-weight: bold; margin: 1.5em 0 .5em; }
h1 em, h2 em
			{ font-weight: normal; font-style: normal; }
h4			{ margin-bottom: 0; }
div h2:first-child, div h3:first-child
			{ margin-top: 1em; }

p, ul, ol, dl
			{ margin: .5em 0; hyphens: auto; }
ul ul, ol ol, ul ol, ol ul
			{ margin: 0; }
p, li, dd	{ max-width: 50rem; }

dl p		{ margin: 0; }
ul p, ol p	{ margin-bottom: 0; }
dt			{ font-weight: bold; }
hr			{ color: #CCC; background-color: #CCC; height: 1px; border: 0;
			margin: 1em 0; padding: 0; }

del			{ text-decoration: line-through; color: #999; }
del * 		{ text-decoration: line-through; }

img			{ border: 0; max-width: 100%; }

legend		{ text-wrap: balance; }

a			{ text-decoration: none; }
a:hover		{ text-decoration: underline; }
a:link, .nav a:visited
			{ color: #7094bb; }
a:visited	{ color: #AAA; }

a:target, h3:target, span:target, .results tr:target td,
.events tr:target td
			{ background-color: yellow; }
h2:target	{ background-color: yellow; padding-top: .5em;
			padding-bottom: .5em; }

@media print {
	body 		{ background: white; color: black; font-size: 11pt; }
	@page		{ margin: 1.5cm 1.5cm 2cm 2cm; }

	h1, h2, h3	{ page-break-after: avoid; }
	img			{ max-width: 100%; }
	figure, img	{ page-break-inside: avoid; }

	a:link, a:visited
				{ color: black; text-decoration: none; }
	a[href^=http]:after
				{ content: " [" attr(href) "] "; }
}
@media screen and (max-width: 640px) {
	h1			{ font-size: 130%; padding: 0 .58em; }
	h2			{ font-size: 120%; padding: 0 .625em; }
	h3			{ padding: 0 .68em; }
	dt			{ padding-left: .75em; }
	dd			{ padding: 0 0 0 2.25em; margin: 0; }
	p, dl, legend
				{ padding: 0 .75em; }
	td p		{ padding: 0 0; }
}


/* page.template.txt */
#full		{ position: relative; /* needed for footer positioning */
			height: auto !important; /* IE6: treated as min-height */
			min-height: 100%; /* real browsers */ }
.foot, .text, #head
			{ max-width: 60rem; margin: auto; padding: 0 .75em; }
#head		{ padding-top: 1px; position: relative; min-height: 4.5em; }
#foot		{ clear: both; padding: 1em 0 .5em; text-align: center; 
			position: absolute; bottom: 0; width: 100%; }
#foot, #head
			{ color: #999; }
#foot a, #head a
			{ text-decoration: none; }
#foot a:hover, #head a:hover
			{ text-decoration: underline; }
.banner		{ width: 100%; height: 160px; position: relative;
			background-repeat: no-repeat; background-position: 50% 50%; }
.logo-top	{ position: absolute; z-index: 1000; right: .75em; width: 60px; 
			top: .5em; background: #FFF; margin: 0; }
.logo-wide	{ position: absolute; z-index: 1000; right: .75em; height: 48px; 
			top: .5em; background: #FFF; margin: 0; }
.logo-top img, .logo-wide img
			{ vertical-align: bottom; }
.logo-top a:hover img
			{ background: #CCC; }
.logo-wide img
			{ height: 44px; padding-top: 8px; }
@media screen and (max-width: 480px) {
	.banner		{ height: 80px; background-size: auto 80px; }
	.logo-wide img
				{ height: 36px; padding-top: 12px; }
}
@media screen and (max-width: 320px) {
	.logo-wide img
				{ height: 32px; padding-top: 14px; }
}
@media screen and (max-width: 640px) {
	p.logo-top, p#breadcrumbs, p.logo-wide
				{ padding: 0; }
}

#content	{ overflow: hidden; padding-bottom: 4em; text-align: center; }
.text		{ padding: 1em .75em; line-height: 1.4; text-align: left; }
@media screen and (max-width: 640px) {
	#content	{ padding-bottom: 8rem; }
	#foot		{ bottom: .75em; background: white;
				padding: 0; font-size: 90%; width: auto; left: 0; right: 0; }
	#head		{ position: static; }
	.text		{ padding: 1em 0; }
}

/* navigation */
.below a		{ font-weight: bold; }
#breadcrumbs
			{ margin: 0 80px .25em 0; line-height: 1.2; color: #000; }
#breadcrumbs em
			{ font-style: normal; font-size: 80%; color: #BBB; }
#nav		{ margin: 1em 110px 0 0; padding: 3px 0; }
.nav		{ list-style: none; text-transform: uppercase; line-height: 1.2; }
.nav li		{ margin: 0; padding: 0; display: inline; }
.nav li:before
			{ content: " \00a0·\00a0\00a0"; }
.nav li:first-child:before
			{ content: ""; }
.nav strong	{ color: #000; }
@media screen and (max-width: 640px) {
	#breadcrumbs
				{ position: absolute; bottom: 5.5rem; margin: 0; left: .75em;
				text-align: center; right: .75em; }
	.nav, #breadcrumbs
				{ font-size: 90%; }
}
@media print {
	#foot, .nav, #breadcrumbs
				{ display: none; }
}

.subnav			{ margin: .75em auto; padding: 0 .75em; max-width: 60em; }
.subnav	ul		{ margin: 0; padding: 0; }
@media screen and (max-width: 640px) {
	.subnav			{ text-align: center; padding: 0 .25em; }
}

/* foot of page */
#foot nav ul
			{ clear: left; margin: 0 auto 1em; padding: 0; list-style: none; }
#foot nav li
			{ margin: 0; padding: 0; display: inline-block; }
#foot nav li:before
			{ content: " \00a0·\00a0\00a0"; }
#foot nav li:first-child:before
			{ content: ""; }
#foot nav ul .searchform
			{ display: inline-block; }
#foot nav ul .searchform label
			{ display: none; }

/* colour schemes */
@media screen {
	.error .banner	{ background-color: #C00;
					background-image: url('/_layout/chess16/bg-error.png');
					background-position: 60% 50%; }
}

@media screen {
	.wide			{ max-width: none; margin: 0 auto; display: inline-block; }
	.wide div.zzfilter
					{ max-width: 60em; margin-left: auto; margin-right: auto; }
	.wide table.data td
					{ max-width: 20em; }
}
@media screen and (min-width: 62em) {
	.wide			{ min-width: 60em; }
}
@media print {
	.banner		{ display: none; }
	.noprint	{ display: none; }
}
@media screen and (max-width: 640px) {
	#text		{ padding: 0 .75em; }
	p.logo-top, p#breadcrumbs, p.logo-wide
				{ padding: 0; }
}


/* general classes for multiple templates */
/* errors */
p.error, div.error
				{ background: #C00; color: white; max-width: 30em;
				padding: .25em; font-weight: bold; }
/* other */
.nobr			{ white-space: nowrap; }
.abstract		{ font-size: 120%; line-height: 1.4; margin: 1em 0;
				max-width: 50rem; }
@media screen and (max-width: 640px) {
	.nobr			{ white-space: normal; }
}
.note			{ font-size: 120%; }
.note strong	{ color: #C00; }
/* numbers */
#content .number	{ text-align: right; padding-right: .25em; }
.col2 			{ width: 47%; float: left; padding: 0 2% 1em 0;
				overflow: hidden; }
@media screen and (max-width: 640px) {
	.col2			{ width: auto; float: none; padding: 0; margin: 0; }
}
#zzform .add-new	{ max-width: 60em; }


/* login form */
/* calendar: online registration */
#login, .application
				{ max-width: 60em; margin: 0 auto; }
.login label	{ display: block; float: left; width: 10em; }
.login .submit	{ margin-left: 10em; }
.login fieldset, fieldset.application
				{ background: #d6e4b3; max-width: 32em; border: none; }
				/* @todo green, @todo stripes */
.login legend, .application legend
				{ background: #d6e4b3; padding: .25em .5em; }
.login p, .application p
				{ padding: 0 .5em; clear: left; margin: .5em 0; }
.login, .application
				{ margin-top: 1.5em; }
.logintext		{ float: right; max-width: 28em; padding: .5em 0 1em 2em; }


/* feedback/feedback.template.txt */
@media screen and (max-width: 640px) {
	textarea#feedback		{ margin: 0 .75em; max-width: 92%; }
	.feedback input			{ max-width: 98%; }
}

/* zzform */
div.text #zzform	{ padding: 0; }
@media screen and (max-width: 640px) {
	#zzform table.data	{ margin: .5em 1em; }
	#zzform .pages		{ margin-left: 1em; }
}

/* zzform list display */
#zzform ul.data li
			{ max-width: 126px; height: 240px; }

/* zzform separator */
#zzform .separator
			{ padding: 0 .5rem; }

/* subpages */
.subpages .important
			{ font-weight: bold; margin-top: .5em; margin-bottom: .5em; }


/* internal: status traffic ligths */
/* custom/templates/bewerber-lv.template.txt */
/* custom/templates/bewerber-overview.template.txt */
/* custom/zzbrick_tables/buchungen.php */
/* custom/zzbrick_tables/participations.php */
/* rooms/templates/checkin.template.txt */
/* tournaments/zzbrick_tables/teams.php */
.status-yes, .status-no, .status-open, .status-partly, .status-exempt
				{ float: left; width: 1em; height: 1em; border: 1px solid black; 
				margin-right: .5em; }
.status-yes		{ background-color: green; }
.status-no		{ background-color: red; }
.status-open	{ background-color: yellow; }
.status-partly	{ background-color: black; }
.status-exempt	{ background-color: cornflowerblue; }


/* search */
.searchform label
			{ display: none; }
div.searchresults h2:first-child
			{ margin-top: 0; }
.searchresults .search-items
			{ margin: 1rem 0; padding: 0; list-style: none; }
.searchresults .search-items li
			{ margin: 0 0 1em 0; padding: 0; clear: left;
			/* following code all to avoid breaks inside li element */
			break-inside: avoid-column; }
.searchresults .search-items img
			{ width: 80px; height: 80px; float: left; margin: 0 1rem 1rem 0; }
.searchresults .search-items p
			{ margin-left: 6rem; }

@media screen and (min-width: 721px) {
	.searchresults .search-items
				{ columns: 2; }
}


/* page.template.txt */
.logo-right	{ float: right; padding: .25em 0 0 .25em; }


/* top of page */
.banner		{ background: #FC0 url(/_layout/schachin/bg-schachin.png);
			background-position: 50% 50%; background-repeat: no-repeat;
			background-size: auto 100%; }


/* custom pages */
.login fieldset, .login legend
			{ background: #FC0; }


/* ratinglist.template.txt */
.ratings .memberships
			{ font-size: .85rem; }


/* login */
/*
 * Cascading Style Sheets (CSS)
 * for login form
 *
 * Part of »Zugzwang Project«
 * https://www.zugzwang.org/modules/default
 *
 * @author Gustaf Mossakowski <gustaf@koenige.org>
 * @copyright Copyright © 2025 Gustaf Mossakowski
 * @license http://opensource.org/licenses/lgpl-3.0.html LGPL-3.0
 */


#login		{ max-width: 40rem; margin: 5rem auto; 
			--default_login_css_background_color: #FFCC00; }
#login fieldset
			{ position: relative; border: none; margin: 2.5rem 0 1rem;
			display: grid; grid-template-columns: 9rem 12.5rem; gap: .5rem;
			background: var(--default_login_css_background_color) url(/_layout/schachin/zugzwang-stripes.png) repeat-y 100% 0;
			background-size: 75%; padding: 1.5rem 1rem 1rem; border-radius: 3px; }
#login legend
			{ position: absolute; padding: .75rem 1rem; transform: translateY(-50%);
			background-color: inherit; border-radius: inherit; }
#login form	{ margin: 1rem 0 0; }
#login fieldset p	{ margin: 0; }
#login input[type=submit], p.submit
			{ grid-column: 2 / 3; height: 1.6rem; }
#login .error
			{ grid-column: 1 / 3; text-wrap: balance; }
@media screen and (max-width: 30rem) {
	#login fieldset
				{ background-size: 75%; }
}
@media screen and (max-width: 25rem) {
	#login		{ margin: 1rem auto; }
	#login fieldset
				{ grid-template-columns: auto; background-size: 100%;
				background-position: 4rem 0; }
	#login input[type=submit], p.submit
				{ grid-column: 1 / 2; }
	#login fieldset label
				{ margin-bottom: -.25rem; }
	#login .error
				{ grid-column: 1 / 2; }
}

.logintext		{ float: none; max-width: none; padding: 0; }


/* internal: persons */
.contact th		{ padding: .25em .5em .25em 0; vertical-align: top; }
.contact td		{ padding: .25em 0 .25em; vertical-align: top; }

.contact table	{ border-collapse: collapse; margin: 1em 0; }
.contact tbody tr:nth-child(2n+1) td, .contact tbody tr:nth-child(2n+1) th
				{ background: #F0F0F0; }
.contact tbody tr:nth-child(2n) td, .contact tbody tr:nth-child(2n) th
				{ background: #FFF; }
.contact tbody tr:target:nth-child(2n+1) td, .contact tbody tr:target:nth-child(2n) td,
.contact tbody tr:target:nth-child(2n+1) th, .contact tbody tr:target:nth-child(2n) th
				{ background: yellow; }
.contact ul		{ margin: 0; padding: 0; list-style: none; }
.contact li		{ margin: 0; padding: 0; }
.contact p		{ margin: 0 0 .5em; }

.contact .teilnahmen
				{ margin: 0; }
.contact .teilnahmen th
				{ padding: .1em .5em .1em 0;
				font-weight: normal; font-style: italic; }
.contact .teilnahmen tbody th
				{ text-align: right; }
.contact .teilnahmen td
				{ padding: .1em .5em .1em 0; }
.contact .teilnahmen tbody tr:nth-child(2n+1) td, .contact .teilnahmen tbody tr:nth-child(2n+1) th
				{ background: transparent; }
.contact .teilnahmen tbody tr:nth-child(2n) td, .contact .teilnahmen tbody tr:nth-child(2n) th
				{ background: transparent; }
.contact .nurmeldung, .contact .nurmeldung a
				{ color: #CCC; }
.contact .platz1	span { background-color: #C98910; color: white; padding: 0 .25em; }
.contact .platz2	span { background-color: #A8A8A8; color: white; padding: 0 .25em;}
.contact .platz3	span { background-color: #965A38; color: white; padding: 0 .25em;}