/* Steigungsrechner (Modellbahn) – Styles */
.stgr {
	--stgr-accent: #b8860b;
	--stgr-border: #d9d9d9;
	--stgr-bg: #ffffff;
	--stgr-bg-soft: #f7f5f0;
	--stgr-text: #222222;
	--stgr-muted: #666666;
	--stgr-ok: #3a8f3a;
	--stgr-mid: #d9a400;
	--stgr-high: #d97706;
	--stgr-critical: #c0392b;

	box-sizing: border-box;
	max-width: 860px;
	margin: 1.5em auto;
	padding: 1.25em 1.5em;
	border: 1px solid var(--stgr-border);
	border-radius: 10px;
	background: var(--stgr-bg);
	color: var(--stgr-text);
	font-size: 16px;
	line-height: 1.45;
}
.stgr *, .stgr *::before, .stgr *::after { box-sizing: inherit; }

.stgr-head { margin-bottom: 1em; }
.stgr-title { margin: 0 0 0.15em 0; font-size: 1.35em; color: var(--stgr-text); }
.stgr-sub { margin: 0; color: var(--stgr-muted); font-size: 0.9em; }

/* Modus-Auswahl */
.stgr-modes {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4em;
	margin-bottom: 1em;
}
.stgr-modes-label { font-size: 0.85em; font-weight: 600; width: 100%; }
.stgr-mode {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0.35em 0.75em;
	border: 1px solid var(--stgr-border);
	border-radius: 999px;
	background: var(--stgr-bg-soft);
	cursor: pointer;
	font-size: 0.9em;
	margin: 0;
	transition: all 0.15s ease;
}
.stgr-mode:hover { border-color: var(--stgr-accent); }
.stgr-mode input { accent-color: var(--stgr-accent); margin: 0; }
.stgr-mode:has(input:checked) {
	background: var(--stgr-accent);
	border-color: var(--stgr-accent);
	color: #fff;
}

/* Eingabefelder */
.stgr-fields {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.9em;
}
@media (max-width: 700px) {
	.stgr-fields { grid-template-columns: 1fr; }
}
.stgr-field {
	display: flex;
	flex-direction: column;
	gap: 0.25em;
	padding: 0.7em;
	border: 1px solid var(--stgr-border);
	border-radius: 8px;
	background: var(--stgr-bg-soft);
}
.stgr-field label { font-weight: 600; font-size: 0.9em; }
.stgr-input-wrap { display: flex; align-items: center; gap: 0.35em; }
.stgr-input {
	width: 100%;
	font-size: 1.25em;
	font-weight: 600;
	padding: 0.25em 0.4em;
	border: 1px solid var(--stgr-border);
	border-radius: 6px;
	text-align: right;
	color: var(--stgr-text);
	background: var(--stgr-bg);
}
.stgr-unit { font-size: 0.9em; color: var(--stgr-muted); min-width: 2.2em; }
.stgr-field-hint { font-size: 0.75em; color: var(--stgr-muted); }
.stgr-field.is-output {
	border: 2px solid var(--stgr-accent);
}
.stgr-field.is-output .stgr-input {
	background: #fdf6e3;
	border-color: var(--stgr-accent);
	color: var(--stgr-accent);
}
.stgr-field.is-output label::after {
	content: " (wird berechnet)";
	font-weight: 400;
	font-size: 0.85em;
	color: var(--stgr-accent);
}

/* Presets */
.stgr-presets {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35em;
	margin-top: 0.8em;
	align-items: center;
}
.stgr-presets-label { font-size: 0.8em; font-weight: 600; width: 100%; color: var(--stgr-muted); }
.stgr-preset {
	font-size: 0.8em;
	padding: 0.3em 0.6em;
	border: 1px solid var(--stgr-border);
	border-radius: 999px;
	background: var(--stgr-bg-soft);
	color: var(--stgr-text);
	cursor: pointer;
	transition: all 0.15s ease;
}
.stgr-preset:hover {
	border-color: var(--stgr-accent);
	background: var(--stgr-accent);
	color: #fff;
}

/* Ergebnis */
.stgr-result {
	margin-top: 1em;
	padding: 0.9em;
	border: 1px solid var(--stgr-border);
	border-radius: 8px;
}
.stgr-result-main { display: flex; align-items: baseline; gap: 0.4em; flex-wrap: wrap; }
.stgr-result-value {
	font-size: 2.4em;
	font-weight: 700;
	color: var(--stgr-accent);
	line-height: 1.1;
}
.stgr-result-unit { font-size: 1.05em; font-weight: 600; }
.stgr-result-extras {
	display: flex;
	flex-wrap: wrap;
	gap: 1.2em;
	margin-top: 0.4em;
	font-size: 0.88em;
	color: var(--stgr-muted);
}
.stgr-extra strong { color: var(--stgr-text); }

.stgr-rating { margin-top: 0.7em; }
.stgr-rating-bar {
	height: 10px;
	border-radius: 999px;
	background: var(--stgr-bg-soft);
	border: 1px solid var(--stgr-border);
	overflow: hidden;
}
.stgr-rating-fill {
	height: 100%;
	width: 0%;
	border-radius: 999px;
	background: var(--stgr-ok);
	transition: width 0.25s ease, background-color 0.25s ease;
}
.stgr-rating-fill.is-ok { background: var(--stgr-ok); }
.stgr-rating-fill.is-mid { background: var(--stgr-mid); }
.stgr-rating-fill.is-high { background: var(--stgr-high); }
.stgr-rating-fill.is-critical { background: var(--stgr-critical); }
.stgr-rating-text { margin-top: 0.3em; font-size: 0.9em; font-weight: 600; }

.stgr-summary {
	margin-top: 0.6em;
	font-size: 0.88em;
	background: var(--stgr-bg-soft);
	border-radius: 6px;
	padding: 0.5em 0.65em;
}
.stgr-summary:empty { display: none; }

.stgr-warn {
	margin-top: 0.6em;
	color: #a33;
	background: #fdeeee;
	border: 1px solid #e8b4b4;
	border-radius: 6px;
	padding: 0.35em 0.6em;
	font-size: 0.85em;
}

/* Praxis-Hinweise */
.stgr-tips {
	margin-top: 1em;
	font-size: 0.88em;
	border: 1px dashed var(--stgr-accent);
	border-radius: 8px;
	padding: 0.6em 0.8em;
	background: var(--stgr-bg-soft);
}
.stgr-tips summary { cursor: pointer; font-weight: 600; }
.stgr-tips ul { margin: 0.6em 0 0.2em 1.2em; padding: 0; }
.stgr-tips li { margin-bottom: 0.4em; }
