/* ==========================================================================
   Resonanzraum – Frontend Styles
   Kosmisch-dunkles Farbschema: tiefes Blau-Violett als Basis, glühende
   Akzentfarben je Sphäre. Alle Farben über CSS-Variablen, damit das
   Farbschema im Admin (Einstellungen → Farbschema) austauschbar bleibt.
   ========================================================================== */

.rr-app {
	--rr-bg: #0b0d1a;
	--rr-bg-panel: #12162b;
	--rr-bg-card: #171c36;
	--rr-border: rgba(255, 255, 255, 0.08);
	--rr-text: #e7e9f7;
	--rr-text-dim: #9298b8;
	--rr-primary: #7c5cff;
	--rr-primary-glow: rgba(124, 92, 255, 0.45);
	--rr-accent-default: 199, 89%, 60%;

	position: relative;
	background: var(--rr-bg);
	color: var(--rr-text);
	border-radius: 16px;
	padding: 16px 28px 28px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	line-height: 1.55;
	overflow: hidden;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
	box-sizing: border-box;
	margin: 0;
}
.rr-app * {
	box-sizing: border-box;
}
.rr-app > *:first-child {
	margin-top: 0;
}

.rr-urwelle-canvas-wrap {
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: 0.5;
	pointer-events: none;
}
.rr-urwelle-canvas-wrap canvas {
	width: 100%;
	height: 100%;
	display: block;
}

.rr-app > * {
	position: relative;
	z-index: 1;
}

/* ---------------------------------------------------------------- Header */
.rr-app-header {
	text-align: center;
	margin: 0 0 20px;
}
.rr-app-title {
	font-size: 28px;
	margin: 0 0 4px;
	line-height: 1.2;
	background: linear-gradient(90deg, #7c5cff, #35d9e8);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	letter-spacing: 0.5px;
}
.rr-app-subtitle {
	margin: 0 0 16px;
	color: var(--rr-text-dim);
	font-size: 14px;
}

/* -------------------------------------------------------- Feld-Anzeige */
.rr-feld-gauge {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	max-width: 420px;
	margin: 0 auto;
	padding: 12px 18px;
	background: var(--rr-bg-panel);
	border: 1px solid var(--rr-border);
	border-radius: 999px;
}
.rr-feld-orb {
	position: relative;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #2a2f52, #0b0d1a 70%);
	border: 1px solid var(--rr-border);
	overflow: hidden;
	flex-shrink: 0;
}
.rr-feld-orb-fill {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: var(--rr-fill, 0%);
	background: linear-gradient(180deg, #35d9e8, #7c5cff);
	box-shadow: 0 0 18px 4px var(--rr-primary-glow);
	transition: height 1.2s ease;
	animation: rr-pulse 3s ease-in-out infinite;
}
@keyframes rr-pulse {
	0%, 100% { filter: brightness(1); }
	50% { filter: brightness(1.35); }
}
.rr-feld-text {
	display: flex;
	flex-direction: column;
	text-align: left;
	font-size: 13px;
}
.rr-feld-text strong {
	font-size: 13px;
	color: var(--rr-text);
}
.rr-feld-text span {
	color: var(--rr-text-dim);
}

/* --------------------------------------------------------------- Tabs */
.rr-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
	margin-bottom: 22px;
	border-bottom: 1px solid var(--rr-border);
	padding-bottom: 12px;
}
.rr-tab {
	background: transparent;
	border: 1px solid var(--rr-border);
	color: var(--rr-text-dim);
	padding: 8px 16px;
	border-radius: 999px;
	cursor: pointer;
	font-size: 13px;
	transition: all 0.2s ease;
}
.rr-tab:hover {
	color: var(--rr-text);
	border-color: var(--rr-primary);
}
.rr-tab.is-active {
	background: var(--rr-primary);
	color: #fff;
	border-color: var(--rr-primary);
	box-shadow: 0 0 16px var(--rr-primary-glow);
}

.rr-panel {
	display: none;
	animation: rr-fade-in 0.35s ease;
}
.rr-panel.is-active {
	display: block;
}
@keyframes rr-fade-in {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: translateY(0); }
}

.rr-panel-hint {
	color: var(--rr-text-dim);
	font-size: 13px;
	text-align: center;
	margin-bottom: 14px;
}

/* ---------------------------------------------------------- Sphären */
.rr-sphaeren-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 16px;
}
.rr-sphaere-card {
	--accent-color: hsl(var(--rr-accent, var(--rr-accent-default)));
	background: var(--rr-bg-card);
	border: 1px solid var(--rr-border);
	border-top: 3px solid var(--accent-color);
	border-radius: 14px;
	padding: 18px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.rr-sphaere-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35), 0 0 0 1px var(--accent-color);
}
.rr-sphaere-symbol {
	font-size: 26px;
	color: var(--accent-color);
	text-shadow: 0 0 14px var(--accent-color);
}
.rr-sphaere-card h3 {
	margin: 0;
	font-size: 16px;
}
.rr-sphaere-intro {
	font-size: 13px;
	color: var(--rr-text-dim);
	margin: 0;
	flex-grow: 1;
}
.rr-sphaere-frage {
	font-size: 12.5px;
	font-style: italic;
	color: var(--accent-color);
	margin: 0;
}
.rr-sphaere-card--einzeln {
	max-width: 480px;
	margin: 0 auto 16px;
}

/* --------------------------------------------------------------- Buttons */
.rr-btn {
	border: none;
	border-radius: 999px;
	padding: 9px 18px;
	font-size: 13px;
	cursor: pointer;
	transition: all 0.2s ease;
	font-weight: 600;
}
.rr-btn-primary {
	background: linear-gradient(90deg, #7c5cff, #35d9e8);
	color: #0b0d1a;
}
.rr-btn-primary:hover {
	filter: brightness(1.1);
	box-shadow: 0 0 16px var(--rr-primary-glow);
}
.rr-btn-ghost {
	background: transparent;
	border: 1px solid var(--rr-border);
	color: var(--rr-text);
}
.rr-btn-ghost:hover {
	border-color: var(--rr-primary);
	color: var(--rr-primary);
}
.rr-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* ------------------------------------------------------------- Formular */
.rr-gedanke-form-wrap {
	margin-top: 22px;
	background: var(--rr-bg-panel);
	border: 1px solid var(--rr-border);
	border-radius: 14px;
	padding: 18px;
}
.rr-gedanke-form-wrap textarea,
.rr-tagesfrage-box textarea {
	width: 100%;
	min-height: 90px;
	background: var(--rr-bg);
	border: 1px solid var(--rr-border);
	border-radius: 10px;
	color: var(--rr-text);
	padding: 12px;
	font-family: inherit;
	font-size: 13.5px;
	resize: vertical;
}
.rr-gedanke-form-wrap textarea:focus,
.rr-tagesfrage-box textarea:focus {
	outline: none;
	border-color: var(--rr-primary);
	box-shadow: 0 0 0 3px var(--rr-primary-glow);
}
.rr-form-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 10px;
}
.rr-zeichen-count {
	font-size: 11px;
	color: var(--rr-text-dim);
}
.rr-form-message {
	margin: 10px 0 0;
	font-size: 13px;
	color: #35d9e8;
	min-height: 18px;
}
.rr-form-message.is-error {
	color: #ff6b8b;
}

/* ------------------------------------------------------------------ Feed */
.rr-feed-filter {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 14px;
	font-size: 13px;
	color: var(--rr-text-dim);
}
.rr-feed-filter select {
	background: var(--rr-bg-panel);
	color: var(--rr-text);
	border: 1px solid var(--rr-border);
	border-radius: 8px;
	padding: 6px 10px;
}
.rr-feed-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.rr-gedanke-item {
	background: var(--rr-bg-card);
	border: 1px solid var(--rr-border);
	border-radius: 12px;
	padding: 14px 16px;
	display: flex;
	gap: 12px;
}
.rr-gedanke-item img {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	flex-shrink: 0;
}
.rr-gedanke-meta {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: var(--rr-text-dim);
	margin-bottom: 4px;
	flex-wrap: wrap;
}
.rr-gedanke-meta .rr-sphaere-tag {
	padding: 2px 8px;
	border-radius: 999px;
	background: rgba(124, 92, 255, 0.15);
	color: #b8a9ff;
	font-size: 11px;
}
.rr-gedanke-text {
	font-size: 13.5px;
	margin: 0 0 8px;
	white-space: pre-wrap;
}
.rr-resonanz-btn {
	background: transparent;
	border: 1px solid var(--rr-border);
	color: var(--rr-text-dim);
	border-radius: 999px;
	padding: 4px 12px;
	font-size: 12px;
	cursor: pointer;
}
.rr-resonanz-btn.is-aktiv {
	color: #35d9e8;
	border-color: #35d9e8;
	box-shadow: 0 0 10px rgba(53, 217, 232, 0.4);
}
.rr-gedanke-actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.rr-diskussion-toggle {
	background: transparent;
	border: 1px solid var(--rr-border);
	color: var(--rr-text-dim);
	border-radius: 999px;
	padding: 4px 12px;
	font-size: 12px;
	cursor: pointer;
}
.rr-diskussion-toggle:hover {
	color: var(--rr-primary);
	border-color: var(--rr-primary);
}

/* ------------------------------------------------------------ Diskussion */
.rr-diskussion-wrap {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px dashed var(--rr-border);
}
.rr-kommentar-liste {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 10px;
}
.rr-kommentar-item {
	display: flex;
	gap: 10px;
}
.rr-kommentar-item img {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	flex-shrink: 0;
}
.rr-kommentar-body {
	flex: 1;
	background: var(--rr-bg-panel);
	border: 1px solid var(--rr-border);
	border-radius: 10px;
	padding: 8px 12px;
}
.rr-kommentar-meta {
	display: flex;
	gap: 8px;
	align-items: baseline;
	font-size: 11.5px;
	color: var(--rr-text-dim);
}
.rr-kommentar-meta strong {
	color: var(--rr-text);
	font-size: 12px;
}
.rr-kommentar-text {
	font-size: 13px;
	margin: 4px 0 6px;
	white-space: pre-wrap;
}
.rr-kommentar-antworten {
	background: none;
	border: none;
	color: var(--rr-primary);
	font-size: 11.5px;
	cursor: pointer;
	padding: 0;
}
.rr-kommentar-antworten:hover {
	text-decoration: underline;
}
.rr-kommentar-kinder {
	margin-top: 10px;
	padding-left: 16px;
	border-left: 2px solid var(--rr-border);
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.rr-antwort-slot:empty {
	margin: 0;
}
.rr-antwort-form {
	margin-top: 8px;
	background: var(--rr-bg-panel);
	border: 1px solid var(--rr-border);
	border-radius: 10px;
	padding: 10px;
}
.rr-antwort-form textarea {
	width: 100%;
	min-height: 56px;
	background: var(--rr-bg);
	border: 1px solid var(--rr-border);
	border-radius: 8px;
	color: var(--rr-text);
	padding: 8px 10px;
	font-family: inherit;
	font-size: 13px;
	resize: vertical;
}
.rr-antwort-form textarea:focus {
	outline: none;
	border-color: var(--rr-primary);
	box-shadow: 0 0 0 3px var(--rr-primary-glow);
}
.rr-antwort-form .rr-form-row {
	margin-top: 6px;
}
.rr-antwort-form .rr-form-message {
	font-size: 12px;
	margin-top: 6px;
}

/* -------------------------------------------------------------- PDF-Embed */
.rr-pdf-wrap {
	max-width: 760px;
	margin: 0 auto;
}
.rr-pdf-intro {
	text-align: center;
	margin-bottom: 16px;
}
.rr-pdf-intro h3 {
	margin: 0 0 6px;
	font-size: 18px;
}
.rr-pdf-intro p {
	color: var(--rr-text-dim);
	font-size: 13.5px;
	margin: 0 0 12px;
}
.rr-pdf-frame-wrap {
	background: var(--rr-bg-panel);
	border: 1px solid var(--rr-border);
	border-radius: 14px;
	padding: 10px;
}
.rr-pdf-frame {
	width: 100%;
	height: 70vh;
	min-height: 420px;
	border: none;
	border-radius: 8px;
	background: #fff;
}
.rr-pdf-fallback {
	text-align: center;
	font-size: 12px;
	color: var(--rr-text-dim);
	margin: 8px 0 0;
}
.rr-standalone-pdf {
	padding: 18px;
}

@media (max-width: 600px) {
	.rr-pdf-frame { height: 60vh; }
}

/* -------------------------------------------------------------- Netzwerk */
.rr-netzwerk-wrap {
	background: var(--rr-bg-panel);
	border: 1px solid var(--rr-border);
	border-radius: 14px;
	height: 420px;
	overflow: hidden;
}
#rr-netzwerk-canvas {
	width: 100%;
	height: 100%;
	display: block;
	cursor: grab;
}

/* ---------------------------------------------------------------- Profil */
.rr-profil-inhalt {
	max-width: 560px;
	margin: 0 auto;
}
.rr-profil-kopf {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 18px;
}
.rr-profil-kopf img {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	border: 2px solid var(--rr-primary);
}
.rr-profil-stats {
	display: flex;
	gap: 18px;
	margin-top: 8px;
	font-size: 13px;
	color: var(--rr-text-dim);
}
.rr-profil-stats strong {
	color: var(--rr-text);
	display: block;
	font-size: 16px;
}
.rr-profil-bio textarea {
	width: 100%;
	min-height: 70px;
	background: var(--rr-bg-panel);
	border: 1px solid var(--rr-border);
	color: var(--rr-text);
	border-radius: 10px;
	padding: 10px;
	font-size: 13px;
	margin-bottom: 8px;
}
.rr-abzeichen-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	gap: 10px;
	margin-top: 10px;
}
.rr-abzeichen-item {
	background: var(--rr-bg-card);
	border: 1px solid var(--rr-border);
	border-radius: 10px;
	padding: 10px;
	text-align: center;
	font-size: 11px;
}
.rr-abzeichen-item .rr-abzeichen-symbol {
	font-size: 22px;
	color: var(--rr-primary);
	display: block;
	margin-bottom: 4px;
}
.rr-anfrage-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: var(--rr-bg-card);
	border: 1px solid var(--rr-border);
	border-radius: 10px;
	padding: 8px 12px;
	font-size: 13px;
	margin-bottom: 8px;
}
.rr-anfrage-item .rr-anfrage-actions button {
	margin-left: 6px;
}

/* ----------------------------------------------------------- Tagesfrage */
.rr-tagesfrage-box {
	max-width: 520px;
	margin: 0 auto;
	background: var(--rr-bg-panel);
	border: 1px solid var(--rr-border);
	border-radius: 14px;
	padding: 20px;
	text-align: center;
}
.rr-tagesfrage-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--rr-primary);
}
.rr-tagesfrage-text {
	font-size: 16px;
	margin: 8px 0 16px;
	font-style: italic;
}
.rr-standalone-feld,
.rr-standalone-tagesfrage,
.rr-standalone-sphaere {
	padding: 18px;
}

@media (max-width: 600px) {
	.rr-app { padding: 18px; }
	.rr-sphaeren-grid { grid-template-columns: 1fr; }
}
