/**
 * Konto: der Knopf im Kopf, die Anmeldeseite, das Profil.
 *
 * Bewusst dieselben Bausteine wie der Rest der Seite — `.knopf`, `.huelle`,
 * `.hinweiskasten`, `.block-kopf` stehen in grund.css und werden hier nur
 * benutzt. Ein eigenes Aussehen für den Kontobereich wäre die häufigste Art,
 * wie eine Seite in zwei Seiten zerfällt.
 */

/* ------------------------------------------------------ Knopf im Seitenkopf */

.kontoknopf {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	text-decoration: none;
	color: var(--fels);
	font-weight: 600;
	font-size: 0.875rem;
	padding: 0.25rem 0.6rem 0.25rem 0.25rem;
	border-radius: 999px;
	border: 1px solid transparent;
	transition: border-color 0.15s, background 0.15s;
}

.kontoknopf:hover {
	border-color: var(--riss);
	background: color-mix(in srgb, var(--papier) 70%, transparent);
}

/* Der Name verschwindet zuerst: Auf schmalen Geräten zählt der Kreis, nicht
   die Schrift daneben. */
@media (max-width: 46rem) {
	.kontoknopf span { display: none; }
}

.kontoknopf-aus {
	border-color: var(--riss);
	padding: 0.4rem 0.9rem;
}

.kontozeichen {
	display: grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	flex: none;
	border-radius: 999px;
	font-style: normal;
	font-weight: 700;
	font-size: 0.8rem;
	line-height: 1;
	overflow: hidden;
	background: var(--firn);
	color: var(--fels);
}

.kontozeichen img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* -------------------------------------------------------- Anmelden-Seite */

.kontoseite {
	display: grid;
	gap: 2.5rem;
	grid-template-columns: minmax(0, 1fr);
	padding-block: 3rem 5rem;
	align-items: start;
}

@media (min-width: 60rem) {
	.kontoseite { grid-template-columns: minmax(0, 26rem) minmax(0, 1fr); gap: 4rem; }
}

.kontokasten {
	background: var(--papier);
	border: 1px solid var(--riss);
	border-radius: 3px;
}

.kontowahl {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-bottom: 1px solid var(--riss);
}

.kontowahl button {
	appearance: none;
	background: none;
	border: 0;
	border-bottom: 2px solid transparent;
	padding: 0.9rem 0.5rem;
	font: inherit;
	font-weight: 600;
	font-size: 0.875rem;
	color: var(--dunst);
	cursor: pointer;
}

.kontowahl button[aria-selected="true"] {
	color: var(--fels);
	border-bottom-color: var(--fels);
}

.kontoform {
	display: grid;
	gap: 1.1rem;
	padding: 1.75rem;
}

.kontoform h1 { font-size: 1.5rem; margin: 0; }
.kontosatz { margin: -0.6rem 0 0; color: var(--dunst); font-size: 0.9375rem; }

.kontoform label { display: grid; gap: 0.35rem; }

.kontoform label > span {
	font-variation-settings: 'wdth' 78;
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--dunst);
}

.kontoform input {
	font: inherit;
	padding: 0.65rem 0.75rem;
	border: 1px solid var(--riss);
	border-radius: 2px;
	background: var(--papier);
	color: var(--fels);
}

.kontoform input:focus-visible {
	outline: 2px solid var(--fels);
	outline-offset: -1px;
}

.kontoform small { color: var(--dunst); font-size: 0.8125rem; line-height: 1.4; }

.kontofehler {
	margin: 0;
	padding: 0.6rem 0.75rem;
	border-left: 3px solid #d92d3a;
	background: color-mix(in srgb, #d92d3a 8%, transparent);
	font-size: 0.875rem;
}

.kontohinweis h2 { font-size: 1.125rem; }
.kontohinweis ul { padding-left: 1.1rem; display: grid; gap: 0.6rem; margin: 0 0 1.25rem; }
.kontohinweis li { line-height: 1.5; }
.kontoklein { color: var(--dunst); font-size: 0.875rem; line-height: 1.55; }

/* ----------------------------------------------------------------- Profil */

.profilkopf {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	padding-block: 3rem 2rem;
	flex-wrap: wrap;
}

.profilkopf h1 { margin: 0; font-size: clamp(1.75rem, 4vw, 2.5rem); }
.profilkopf > div { flex: 1 1 12rem; }
.profilkopf .marke { margin: 0.25rem 0 0; }

.profilblock { padding-bottom: 2.5rem; }

.profilgitter {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 48rem) {
	.profilgitter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.farbfeld { grid-column: 1 / -1; }
}

.profilfeld { display: grid; gap: 0.4rem; align-content: start; }

.profilfeld > span {
	font-variation-settings: 'wdth' 78;
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--dunst);
}

.profilfeld input[type="text"] {
	font: inherit;
	padding: 0.65rem 0.75rem;
	border: 1px solid var(--riss);
	border-radius: 2px;
	background: var(--papier);
}

.profilfeld small { color: var(--dunst); font-size: 0.8125rem; }

.bildreihe { display: flex; gap: 0.5rem; flex-wrap: wrap; }

.farbwahl {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.farbknopf {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 999px;
	border: 2px solid transparent;
	box-shadow: 0 0 0 1px var(--riss);
	cursor: pointer;
	padding: 0;
}

/* Der gewählte Ring ist außen, nicht innen: innen würde er die Farbe
   verkleinern, und genau die soll man beurteilen. */
.farbknopf[aria-pressed="true"] {
	box-shadow: 0 0 0 2px var(--papier), 0 0 0 4px var(--fels);
}

.farbknopf:focus-visible { outline: 2px solid var(--fels); outline-offset: 4px; }

.profilstand { color: var(--dunst); font-size: 0.875rem; min-height: 1.2em; margin: 1rem 0 0; }

.merkliste {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0;
	border-top: 1px solid var(--riss);
}

.merkliste li { border-bottom: 1px solid var(--riss); padding: 0.85rem 0; }

.merkliste a {
	display: flex;
	gap: 0.75rem;
	align-items: baseline;
	flex-wrap: wrap;
	text-decoration: none;
	color: inherit;
}

.merkliste a:hover b { text-decoration: underline; }
.merkliste a span { color: var(--dunst); font-size: 0.875rem; }
.merknotiz { margin: 0.4rem 0 0; color: var(--dunst); font-size: 0.9375rem; line-height: 1.5; }

.knopf-warnung {
	border-color: #d92d3a;
	color: #d92d3a;
	margin-top: 0.75rem;
}

.knopf-warnung:hover { background: #d92d3a; color: #fff; }

/* Für Beschriftungen, die nur Vorleseprogramme brauchen. */
.wegdamit {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* -------------------------------------------- Herz und Notiz in der Liste */

/**
 * Die Spalte ist immer da, aber leer, solange niemand angemeldet ist.
 *
 * Erst `data-merken="ja"` an der Tabelle gibt ihr Breite. Ohne das steht bei
 * Gaesten eine leere Spalte im Weg — und mit einem ausgegrauten Herz, das zum
 * Anmelden auffordert, waere aus einer Tabelle eine Werbeflaeche geworden.
 */
.merkspalte { width: 0; padding: 0 !important; }

.pistentabelle[data-merken="ja"] .merkspalte {
	width: 5.5rem;
	padding: 0.55rem 0.75rem !important;
	white-space: nowrap;
	text-align: right;
}

.merkknopf {
	appearance: none;
	background: none;
	border: 0;
	padding: 0.25rem;
	cursor: pointer;
	color: var(--riss);
	line-height: 0;
	border-radius: 3px;
	transition: color 0.15s, transform 0.15s;
}

.merkknopf:hover { color: var(--dunst); transform: scale(1.12); }
.merkknopf:focus-visible { outline: 2px solid var(--fels); outline-offset: 1px; }

.merkknopf[data-tu="herz"][aria-pressed="true"] { color: #d92d3a; }
.merkknopf[data-tu="notiz"][aria-pressed="true"] { color: var(--fels); }

.zeilennotiz {
	margin: 0.35rem 0 0;
	padding-left: 1.1rem;
	color: var(--dunst);
	font-size: 0.875rem;
	line-height: 1.45;
	max-width: 32rem;
}

/* ------------------------------------------------------ Schon hier gewesen */

.besuchtknopf {
	appearance: none;
	margin-top: 0.75rem;
	padding: 0.4rem 0.9rem;
	font: inherit;
	font-size: 0.8125rem;
	font-weight: 600;
	border: 1px solid var(--riss);
	border-radius: 999px;
	background: color-mix(in srgb, var(--papier) 70%, transparent);
	color: var(--dunst);
	cursor: pointer;
	transition: border-color 0.15s, color 0.15s, background 0.15s;
}

.besuchtknopf:hover { border-color: var(--dunst); color: var(--fels); }

.besuchtknopf[aria-pressed="true"] {
	background: var(--fels);
	border-color: var(--fels);
	color: var(--papier);
}
