:root {
	--gold: #e1b54c;
	--gold-dunkel: #b48a2a;
	--tinte: #1d1d1b;
	--grau: #6b6b66;
	--linie: #e6e3dc;
	--grund: #ffffff;
	--flaeche: #faf8f3;
	--rot: #b3261e;
}

*, *::before, *::after { box-sizing: border-box; }

html, body { margin: 0; }

body {
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	color: var(--tinte);
	background: var(--grund);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

.start {
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	flex-direction: column;
	padding: 2rem 1.5rem;
}

.buehne {
	flex: 1;
	display: grid;
	place-items: center;
}

.logo {
	margin: 0;
	width: min(900px, 100%);
}

.sponsor {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .85rem;
	padding-block: 1.5rem 1rem;
}

.sponsor__titel {
	margin: 0;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--grau);
}

.sponsor__logo { width: 160px; }

.zugang {
	background: var(--flaeche);
	min-height: 100vh;
	padding: 1.5rem 1rem 4rem;
}

.kopf {
	display: flex;
	justify-content: center;
	margin-bottom: 1rem;
}

.kopf img { width: 260px; }

.karte {
	max-width: 640px;
	margin: 0 auto;
	background: var(--grund);
	border: 1px solid var(--linie);
	border-radius: 14px;
	padding: 2rem;
}

.karte--schmal { max-width: 400px; }

.karte__kopf {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

h1 {
	font-size: 1.5rem;
	margin: 0 0 .5rem;
}

h2 {
	font-size: .8rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gold-dunkel);
	margin: 2rem 0 .75rem;
	padding-bottom: .4rem;
	border-bottom: 2px solid var(--gold);
}

h3 {
	font-size: 1rem;
	margin: 1.25rem 0 .25rem;
}

.hinweis {
	color: var(--grau);
	font-size: .95rem;
	margin: 0 0 1rem;
}

.gueltig { font-size: .92rem; }
.gueltig--abgelaufen { color: var(--rot); font-weight: 600; }

label {
	display: block;
	font-weight: 600;
	font-size: .9rem;
	margin-bottom: .35rem;
}

input[type="password"] {
	width: 100%;
	font: inherit;
	padding: .7rem .85rem;
	border: 1px solid #cfcbc2;
	border-radius: 8px;
	background: var(--grund);
}

input[type="password"]:focus {
	outline: 2px solid var(--gold);
	outline-offset: 1px;
	border-color: var(--gold);
}

.fehler {
	color: var(--rot);
	font-size: .9rem;
	margin: .6rem 0 0;
}

.knopf {
	margin-top: 1rem;
	width: 100%;
	font: inherit;
	font-weight: 600;
	padding: .75rem 1rem;
	border: 0;
	border-radius: 8px;
	background: var(--tinte);
	color: #fff;
	cursor: pointer;
}

.knopf:hover { background: #000; }
.knopf:disabled { opacity: .5; cursor: not-allowed; }

.knopf--leise {
	margin: 0;
	width: auto;
	padding: .45rem .9rem;
	font-size: .85rem;
	background: transparent;
	color: var(--grau);
	border: 1px solid var(--linie);
}

.knopf--leise:hover { background: var(--flaeche); color: var(--tinte); }

dl { margin: 0; }

.zeile {
	display: grid;
	grid-template-columns: 10rem 1fr;
	gap: .5rem 1rem;
	align-items: center;
	padding: .55rem 0;
	border-bottom: 1px solid var(--linie);
}

dt {
	color: var(--grau);
	font-size: .9rem;
}

dd {
	margin: 0;
	display: flex;
	align-items: center;
	gap: .6rem;
	min-width: 0;
}

code {
	font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
	font-size: .92rem;
	overflow-wrap: anywhere;
	flex: 1;
}

.kopieren {
	flex: none;
	font: inherit;
	font-size: .78rem;
	padding: .25rem .6rem;
	border: 1px solid var(--linie);
	border-radius: 6px;
	background: var(--grund);
	color: var(--grau);
	cursor: pointer;
}

.kopieren:hover { border-color: var(--gold); color: var(--tinte); }
.kopieren.ist-kopiert { background: var(--gold); border-color: var(--gold); color: var(--tinte); }

.auge {
	flex: none;
	display: grid;
	place-items: center;
	width: 2rem;
	height: 1.75rem;
	padding: 0;
	border: 1px solid var(--linie);
	border-radius: 6px;
	background: var(--grund);
	color: var(--grau);
	cursor: pointer;
}

.auge:hover { border-color: var(--gold); color: var(--tinte); }

.auge svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
}

.auge__strich { display: none; }
.auge[aria-pressed="true"] .auge__strich { display: inline; }

@media (max-width: 520px) {
	.karte { padding: 1.25rem; }
	.zeile { grid-template-columns: 1fr; gap: .2rem; }
}
