/* Luxxamed Mitglieder – Frontend-Styles (v1.8)
   Eigene Basis-Schriftgröße in px; alle Größen in em relativ dazu.
   Damit unabhängig von der Theme-Grundschrift (z. B. html{font-size:62.5%}). */

.luxm-form, .luxm-account, .luxm-dash, .luxm-academy {
	--luxm-accent: #0e7c86;
	--luxm-accent-dark: #0a5a62;
	--luxm-ink: #1c2b2d;
	--luxm-muted: #51625f;
	--luxm-line: #d6e0e1;
	--luxm-bg: #ffffff;
	--luxm-soft: #f3f7f7;
	--luxm-danger: #b4322a;
	--luxm-danger-soft: #fbf1f0;
	--luxm-radius: 12px;
	font-size: 18px;
	line-height: 1.6;
	color: var(--luxm-ink);
	margin: 0 auto;
	box-sizing: border-box;
	-webkit-text-size-adjust: 100%;
}
.luxm-form *, .luxm-account *, .luxm-dash *, .luxm-academy * { box-sizing: border-box; }
.luxm-form, .luxm-account { max-width: 680px; }
.luxm-dash { max-width: 1080px; }
.luxm-academy { max-width: 780px; }

/* ------------------------------------------------------------ Karten */
.luxm-form,
.luxm-account > section,
.luxm-card {
	background: var(--luxm-bg);
	border: 1px solid var(--luxm-line);
	border-radius: var(--luxm-radius);
	padding: 1.6em 1.75em;
	margin: 0 0 1.2em;
}

/* ------------------------------------------------------------ Typografie */
.luxm-form h2, .luxm-form h3,
.luxm-account h2, .luxm-academy h2 {
	font-size: 1.3em;
	line-height: 1.3;
	margin: 0 0 .25em;
	color: var(--luxm-ink);
}
.luxm-form p, .luxm-account p, .luxm-dash p, .luxm-academy p {
	font-size: 1em;
	margin: 0 0 1em;
}
.luxm-hint {
	color: var(--luxm-muted);
	font-size: .9em !important;
	margin: .2em 0 1.2em !important;
}

/* ------------------------------------------------------------ Felder */
.luxm-form label,
.luxm-account label {
	display: block;
	font-size: .9em;
	font-weight: 600;
	color: var(--luxm-ink);
	margin: 0 0 1.1em;
}
.luxm-form input[type="text"],
.luxm-form input[type="email"],
.luxm-form input[type="password"],
.luxm-account input[type="text"],
.luxm-account input[type="email"],
.luxm-account input[type="password"] {
	display: block;
	width: 100%;
	margin-top: .4em;
	padding: .7em .85em;
	font-size: 1.1em;          /* ≥16px → kein Auto-Zoom auf iPhone */
	line-height: 1.4;
	font-weight: 400;
	color: var(--luxm-ink);
	background: var(--luxm-bg);
	border: 1px solid var(--luxm-line);
	border-radius: 8px;
	min-height: 48px;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.luxm-form input:disabled,
.luxm-account input:disabled { background: var(--luxm-soft); color: var(--luxm-muted); }
.luxm-form input:focus,
.luxm-account input:focus {
	outline: none;
	border-color: var(--luxm-accent);
	box-shadow: 0 0 0 3px rgba(14,124,134,.18);
}
.luxm-form label.luxm-inline {
	display: flex;
	align-items: center;
	gap: .6em;
	font-weight: 500;
}
.luxm-form label.luxm-inline input { width: 20px; height: 20px; margin: 0; min-height: 0; }

/* ------------------------------------------------------------ Buttons */
.luxm-form button,
.luxm-account button {
	display: inline-block;
	cursor: pointer;
	font-size: 1em;
	font-weight: 600;
	line-height: 1.3;
	padding: .8em 1.5em;
	min-height: 48px;
	border-radius: 8px;
	border: 1px solid var(--luxm-accent);
	background: var(--luxm-accent);
	color: #fff;
	transition: background .15s ease, border-color .15s ease;
}
.luxm-form button:hover,
.luxm-account button:hover { background: var(--luxm-accent-dark); border-color: var(--luxm-accent-dark); }
.luxm-form button:focus-visible,
.luxm-account button:focus-visible { outline: 3px solid rgba(14,124,134,.35); outline-offset: 2px; }
.luxm-form a, .luxm-account a { color: var(--luxm-accent); }

/* ------------------------------------------------------------ DSGVO-Tabelle */
.luxm-account table.luxm-data {
	width: 100%;
	border-collapse: collapse;
	margin: .4em 0 1.2em;
	font-size: 1em;
	border: 0;
}
.luxm-account table.luxm-data tr { border-bottom: 1px solid var(--luxm-line); }
.luxm-account table.luxm-data tr:last-child { border-bottom: 0; }
.luxm-account table.luxm-data td { padding: .6em 0; border: 0; vertical-align: top; }
.luxm-account table.luxm-data td:first-child { color: var(--luxm-muted); width: 40%; padding-right: 1em; }
.luxm-account table.luxm-data td:last-child { word-break: break-word; }

/* ------------------------------------------------------------ Gefahrenzone */
.luxm-account section.luxm-danger { border-color: #eccfcc; background: var(--luxm-danger-soft); }
.luxm-account section.luxm-danger h2 { color: var(--luxm-danger); }
.luxm-account section.luxm-danger button { background: var(--luxm-danger); border-color: var(--luxm-danger); }
.luxm-account section.luxm-danger button:hover { background: #8f2820; border-color: #8f2820; }
.luxm-account section.luxm-danger code {
	font-size: .95em; background: #fff; padding: .1em .45em;
	border-radius: 4px; border: 1px solid #eccfcc;
}

/* ------------------------------------------------------------ Meldungen */
.luxm-notice { padding: .8em 1em; border-radius: 8px; margin-bottom: 1.2em; font-size: 1em; }
.luxm-notice.success { background: #eef7f2; border-left: 4px solid #2e7d57; color: #205a3f; }
.luxm-notice.error   { background: #fbf1f0; border-left: 4px solid var(--luxm-danger); color: #8f2820; }

/* ------------------------------------------------------------ Dashboard */
.luxm-dash { --luxm-warm: #9a5b00; --luxm-warm-soft: #fdf5e8; }
.luxm-dash-head {
	display: flex; align-items: flex-end; justify-content: space-between; gap: 1em; flex-wrap: wrap;
	padding: .2em 0 1.1em; margin-bottom: 1.3em;
	border-bottom: 1px solid var(--luxm-line);
}
.luxm-dash-head h1 { font-size: 2.1em; line-height: 1.1; margin: 0 0 .15em; letter-spacing: -.015em; color: var(--luxm-ink); }
.luxm-dash-head p { margin: 0; color: var(--luxm-muted); font-size: 1.02em; }
.luxm-chip {
	display: inline-block; font-size: .82em; font-weight: 600; white-space: nowrap;
	padding: .4em .85em; border-radius: 999px;
	background: var(--luxm-soft); color: var(--luxm-accent-dark); border: 1px solid var(--luxm-line);
}
.luxm-chip.is-warn { background: var(--luxm-warm-soft); color: var(--luxm-warm); border-color: #efd9b4; }

.luxm-firststeps {
	background: var(--luxm-soft); border: 1px solid var(--luxm-line);
	border-left: 4px solid var(--luxm-accent); border-radius: var(--luxm-radius);
	padding: 1em 1.3em; margin: 0 0 1.4em;
}
.luxm-firststeps h2 { margin: 0 0 .25em; font-size: 1.1em; }
.luxm-firststeps p { margin: 0; color: var(--luxm-muted); }

.luxm-sec {
	font-size: .95em; font-weight: 700; color: var(--luxm-muted);
	margin: 0 0 .8em; letter-spacing: .01em;
}

/* Abschnitte untereinander: Informationen oben, Kacheln darunter */
.luxm-news, .luxm-quick { margin: 0 0 1.8em; }

/* Kacheln: gleich groß, Reihen füllen die Breite (symmetrisch) */
.luxm-tiles {
	display: flex; flex-wrap: wrap; gap: 1em; margin: 0;
	--luxm-gap: 1em;
}
.luxm-tiles > p:empty, .luxm-tiles > br,
.luxm-news-list > p:empty, .luxm-news-list > br { display: none; } /* Schutz gegen Theme-Absätze */
.luxm-tiles > .luxm-tile {
	flex: 1 1 calc((100% - (var(--luxm-cols, 3) - 1) * var(--luxm-gap)) / var(--luxm-cols, 3));
	max-width: 100%;
}

.luxm-tile {
	display: flex; align-items: flex-start; gap: .9em;
	padding: 1.15em 1.2em; min-height: 6.4em; min-width: 0;
	background: #fff; border: 1px solid var(--luxm-line); border-radius: var(--luxm-radius);
	text-decoration: none !important; color: var(--luxm-ink) !important;
	transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
}
.luxm-tile:hover { border-color: var(--luxm-accent); box-shadow: 0 8px 22px rgba(14,124,134,.10); transform: translateY(-2px); }
.luxm-tile:focus-visible { outline: 3px solid rgba(14,124,134,.35); outline-offset: 2px; }
.luxm-ico {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	width: 2.6em; height: 2.6em; border-radius: 10px;
	background: var(--luxm-soft); color: var(--luxm-accent);
}
.luxm-ico svg { width: 1.4em; height: 1.4em; }
.luxm-ico.small { width: 2em; height: 2em; border-radius: 8px; }
.luxm-ico.small svg { width: 1.1em; height: 1.1em; }
.luxm-tile-text { display: flex; flex-direction: column; gap: .2em; min-width: 0; }
.luxm-tile-title {
	font-size: 1.12em; font-weight: 700; line-height: 1.25;
	word-break: normal; overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto;
}
.luxm-tile-desc { font-size: .9em; color: var(--luxm-muted); line-height: 1.4; word-break: normal; }
.luxm-tile.is-quiet { background: var(--luxm-soft); }
.luxm-tile.is-quiet .luxm-ico { background: #fff; }

/* Hervorgehoben: gleiche Größe, nur farbig */
.luxm-tile.is-featured { background: var(--luxm-accent); border-color: var(--luxm-accent); color: #fff !important; }
.luxm-tile.is-featured:hover { background: var(--luxm-accent-dark); border-color: var(--luxm-accent-dark); }
.luxm-tile.is-featured .luxm-ico { background: rgba(255,255,255,.16); color: #fff; }
.luxm-tile.is-featured .luxm-tile-desc { color: rgba(255,255,255,.88); }

/* Informationen über die volle Breite, mehrere nebeneinander */
.luxm-news-list {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1em;
}
.luxm-news-item {
	background: #fff; border: 1px solid var(--luxm-line); border-left: 4px solid var(--luxm-accent);
	border-radius: var(--luxm-radius); padding: 1em 1.2em;
}
.luxm-news-item.is-important { background: var(--luxm-warm-soft); border-color: #efd9b4; border-left-color: var(--luxm-warm); }
.luxm-news-meta { display: flex; gap: .6em; align-items: center; font-size: .8em; color: var(--luxm-muted); margin-bottom: .35em; }
.luxm-flag { font-weight: 700; color: var(--luxm-warm); background: #fff; border: 1px solid #efd9b4; border-radius: 999px; padding: .1em .6em; }
.luxm-news-item h3 { font-size: 1.08em; line-height: 1.3; margin: 0 0 .3em; color: var(--luxm-ink); }
.luxm-news-text { font-size: .95em; margin: 0 0 .5em; color: var(--luxm-ink); }
.luxm-news-text:last-child { margin-bottom: 0; }
.luxm-news-link { font-size: .93em; font-weight: 600; color: var(--luxm-accent) !important; }

.luxm-dash-foot {
	display: flex; align-items: center; gap: .7em;
	margin-top: 1.6em; padding-top: 1em; border-top: 1px solid var(--luxm-line);
	color: var(--luxm-muted); font-size: .92em;
}
.luxm-dash-foot strong { color: var(--luxm-ink); }

@media (max-width: 900px) {
	.luxm-tiles > .luxm-tile { flex-basis: calc((100% - var(--luxm-gap)) / 2); }
}

/* ------------------------------------------------------------ Academy */
.luxm-academy section,
.luxm-academy .luxm-card { background: #fff; border: 1px solid var(--luxm-line); border-radius: var(--luxm-radius); padding: 1.5em 1.6em; }
.luxm-academy .luxm-soon { border-left: 4px solid var(--luxm-accent); background: var(--luxm-soft); }
.luxm-courses { display: flex; flex-direction: column; gap: .75em; margin-top: .6em; }
.luxm-course {
	display: block; padding: 1em 1.1em;
	border: 1px solid var(--luxm-line); border-radius: 10px;
	text-decoration: none !important; color: inherit !important;
	transition: border-color .15s ease;
}
.luxm-course:hover { border-color: var(--luxm-accent); }
.luxm-course-title { font-weight: 600; font-size: 1.05em; display: block; margin-bottom: .5em; }
.luxm-progress { display: block; height: 8px; background: var(--luxm-soft); border-radius: 999px; overflow: hidden; margin-bottom: .4em; }
.luxm-progress-bar { display: block; height: 100%; background: var(--luxm-accent); border-radius: 999px; }
.luxm-course-meta { font-size: .9em; color: var(--luxm-muted); }

/* ------------------------------------------------------------ Smartphone */
@media (max-width: 640px) {
	.luxm-form, .luxm-account, .luxm-dash, .luxm-academy { font-size: 17px; }
	.luxm-form,
	.luxm-account > section,
	.luxm-card,
	.luxm-academy section { padding: 1.2em 1.05em; border-radius: 10px; }

	/* Buttons über die volle Breite – gut mit dem Daumen erreichbar */
	.luxm-form button,
	.luxm-account button { display: block; width: 100%; text-align: center; }

	/* DSGVO-Tabelle: Bezeichnung über dem Wert statt nebeneinander */
	.luxm-account table.luxm-data,
	.luxm-account table.luxm-data tbody,
	.luxm-account table.luxm-data tr,
	.luxm-account table.luxm-data td { display: block; width: 100%; }
	.luxm-account table.luxm-data tr { padding: .5em 0; }
	.luxm-account table.luxm-data td { padding: 0; }
	.luxm-account table.luxm-data td:first-child { width: 100%; font-size: .85em; padding: 0 0 .1em; }

	.luxm-dash-head h1 { font-size: 1.7em; }
	.luxm-tiles > .luxm-tile { flex-basis: 100%; }
	.luxm-tile { min-height: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.luxm-tile, .luxm-form input, .luxm-account input, .luxm-form button, .luxm-account button { transition: none; }
	a.luxm-tile:hover { transform: none; }
}

/* ------------------------------------------------------------ Sprachumschalter */
.luxm-lang {
	display: flex; justify-content: flex-end; gap: .25em;
	margin: 0 0 .9em; font-size: .78em; line-height: 1;
}
.luxm-lang a {
	display: inline-block; padding: .45em .7em; border-radius: 6px;
	font-weight: 700; letter-spacing: .04em; text-decoration: none !important;
	color: var(--luxm-muted, #51625f) !important; border: 1px solid transparent;
}
.luxm-lang a:hover { border-color: var(--luxm-line, #d6e0e1); }
.luxm-lang a.is-active {
	color: var(--luxm-accent-dark, #0a5a62) !important;
	background: var(--luxm-soft, #f3f7f7); border-color: var(--luxm-line, #d6e0e1);
}
.luxm-lang a:focus-visible { outline: 3px solid rgba(14,124,134,.35); outline-offset: 2px; }
.luxm-dash > .luxm-lang { margin-bottom: .2em; }

/* ------------------------------------------------------------ Abmelden */
.luxm-btn { display: inline-block; text-decoration: none !important; color: #fff !important; }
.luxm-btn.is-secondary { background: #fff; color: var(--luxm-accent-dark, #0a5a62) !important; border: 1px solid var(--luxm-line, #d6e0e1); }
.luxm-btn.is-secondary:hover { border-color: var(--luxm-accent, #0e7c86); background: #fff; }
.luxm-form .luxm-btn {
	cursor: pointer; font-size: 1em; font-weight: 600; line-height: 1.3; padding: .8em 1.5em;
	border-radius: 8px; border: 1px solid var(--luxm-accent); background: var(--luxm-accent); margin: 0 .4em .4em 0;
}
.luxm-form .luxm-btn.is-secondary { background: #fff; border-color: var(--luxm-line); }
.luxm-dash-meta { display: flex; align-items: center; gap: .9em; flex-wrap: wrap; }
.luxm-logout-link { font-size: .85em; font-weight: 600; color: var(--luxm-muted) !important; text-decoration: none !important; }
.luxm-logout-link:hover { color: var(--luxm-accent) !important; text-decoration: underline !important; }
@media (max-width: 640px) { .luxm-form .luxm-btn { display: block; text-align: center; margin: 0 0 .6em; } }

.luxm-logout { text-align: center; max-width: 520px; }
.luxm-logout .luxm-lang { justify-content: flex-end; }
.luxm-logout-ico {
	display: inline-flex; align-items: center; justify-content: center;
	width: 3.4em; height: 3.4em; border-radius: 50%; margin: .2em 0 .8em;
	background: var(--luxm-soft); color: var(--luxm-accent);
}
.luxm-logout h3 { font-size: 1.35em; margin: 0 0 .3em; }
.luxm-logout .luxm-hint { margin-bottom: 1.4em !important; }
.luxm-logout .luxm-actions { margin: 0; }
