:root{
	--c-primary:#417c3e;
	--c-primary-dark:#2f5c2c;
	--c-primary-light:#e8f1e7;
	--c-rest:#c97a2b;
	--c-rest-light:#fbeee0;
	--c-bg:#f6f9f5;
	--c-card:#fff;
	--c-text:#1e2a1c;
	--c-text-muted:#5b6b58;
	--c-danger:#b3423a;
	--c-danger-light:#f7e5e3;
	--c-border:#e1ebde;
	--c-border-dashed:#d6e3d3;
	--c-superset-disabled-border:#c9d4c6;
	--c-switch-off:#d6ded4;
	--c-phase-cool-bg:#dcefea;
	--c-phase-cool-fg:#2e8b7a;
	--c-phase-info-bg:#e4e9f0;
	--c-phase-info-fg:#5c7a99;
	--ring-size:260px;
	--radius-lg:22px;
	--radius-md:14px;
	--shadow:0 10px 30px -12px rgba(31, 58, 29, 0.28);
}

/* ---------- Dark Mode --------------------------------------------------
 * Zwei Wege, den dunklen Farbsatz zu aktivieren:
 * 1. automatisch, wenn das Betriebssystem Dunkel bevorzugt UND der
 *	Anwender keine explizite Wahl getroffen hat (kein data-theme-Attribut)
 * 2. manuell per Schalter (setzt data-theme="dark" bzw. "light" auf <html>
 *	und ueberschreibt damit die Systemeinstellung in beide Richtungen)
 * ------------------------------------------------------------------- */
@media (prefers-color-scheme: dark){
	:root:not([data-theme="light"]):not([data-theme="dark"]){
		--c-primary:#4f9e4c;
		--c-primary-dark:#82d684;
		--c-primary-light:#1e2f1c;
		--c-rest:#e6a95c;
		--c-rest-light:#3a2712;
		--c-bg:#12160f;
		--c-card:#1c2317;
		--c-text:#eef2ea;
		--c-text-muted:#93a68d;
		--c-danger:#e2726a;
		--c-danger-light:#3a1e1c;
		--c-border:#2c3a28;
		--c-border-dashed:#324232;
		--c-superset-disabled-border:#33422e;
		--c-switch-off:#33402f;
		--c-phase-cool-bg:#16332d;
		--c-phase-cool-fg:#4fd1b8;
		--c-phase-info-bg:#232c3a;
		--c-phase-info-fg:#8fb3da;
		--shadow:0 10px 30px -12px rgba(0, 0, 0, 0.65);
	}
}
:root[data-theme="dark"]{
	--c-primary:#4f9e4c;
	--c-primary-dark:#82d684;
	--c-primary-light:#1e2f1c;
	--c-rest:#e6a95c;
	--c-rest-light:#3a2712;
	--c-bg:#12160f;
	--c-card:#1c2317;
	--c-text:#eef2ea;
	--c-text-muted:#93a68d;
	--c-danger:#e2726a;
	--c-danger-light:#3a1e1c;
	--c-border:#2c3a28;
	--c-border-dashed:#324232;
	--c-superset-disabled-border:#33422e;
	--c-switch-off:#33402f;
	--c-phase-cool-bg:#16332d;
	--c-phase-cool-fg:#4fd1b8;
	--c-phase-info-bg:#232c3a;
	--c-phase-info-fg:#8fb3da;
	--shadow:0 10px 30px -12px rgba(0, 0, 0, 0.65);
}

*{ box-sizing:border-box; }
html, body{ height:100%; }
body{
	margin:0;
	background:radial-gradient(1200px 600px at 50% -10%, var(--c-primary-light), transparent 60%),
	var(--c-bg);
	color:var(--c-text);
	display:flex;
	justify-content:center;
	min-height:100%;
	-webkit-font-smoothing:antialiased;
	transition:background-color .2s ease, color .2s ease;
}

body,
input,
select,
textarea{
	font-family:'Segoe UI', system-ui, -apple-system, sans-serif;
}

.app{
	width:100%;
	max-width:480px;
	min-height:100vh;
	padding:24px 20px calc(24px + env(safe-area-inset-bottom));
	display:flex;
	flex-direction:column;
}

.eyebrow{
	letter-spacing:0.14em;
	text-transform:uppercase;
	color:var(--c-primary-dark);
	font-size:14px;
}

.brand{
	display:flex;
	align-items:center;
	gap:10px;
	margin-bottom:22px;
}
.brand-name{
	font-size:22px;
	letter-spacing:0.06em;
	color:var(--c-primary-dark);
}

.card{
	background:var(--c-card);
	border-radius:var(--radius-lg);
	box-shadow:var(--shadow);
	padding:22px;
}

h1{
	font-size:34px;
	letter-spacing:0.03em;
	margin:0 0 4px;
	color:var(--c-text);
}
.subtitle{
	color:var(--c-text-muted);
	font-size:15px;
	margin:0 0 18px;
	line-height:1.5;
}

.last-workout{
	display:flex;
	align-items:center;
	gap:10px;
	background:var(--c-primary-light);
	color:var(--c-primary-dark);
	border-radius:var(--radius-md);
	padding:12px 14px;
	font-size:14px;
	font-weight:600;
	margin-bottom:18px;
}
.last-workout svg{ flex:none; }

.exercise-list{
	list-style:none;
	margin:0 0 22px;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:8px;
}
.exercise-list li{
	display:flex;
	align-items:center;
	gap:12px;
	padding:10px 12px;
	background:var(--c-bg);
	border-radius:var(--radius-md);
	font-weight:600;
	font-size:15px;
	justify-content:space-between;
}
.exercise-num{
	flex:none;
	width:26px;height:26px;
	border-radius:50%;
	background:var(--c-primary);
	color:#fff;
	font-size:14px;
	display:flex;align-items:center;justify-content:center;
}
.exercise-name-label{
	flex:1;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.exercise-duration-badge{
	flex:none;
	font-size:13px;
	color:var(--c-primary-dark);
	background:var(--c-primary-light);
	padding:3px 9px;
	border-radius:999px;
}

.settings{
	display:grid;
	grid-template-columns:1fr /* 1fr*/;
	gap:14px;
	margin-bottom:22px;
}
.field label{
	display:block;
	font-size:12px;
	font-weight:700;
	color:var(--c-text-muted);
	text-transform:uppercase;
	letter-spacing:0.05em;
	margin-bottom:6px;
}
.stepper{
	display:flex;
	align-items:stretch;
	background:var(--c-bg);
	border-radius:var(--radius-md);
	overflow:hidden;
	border:1px solid var(--c-border);
}
.stepper button{
	width:38px;
	border:none;
	background:transparent;
	color:var(--c-primary-dark);
	font-size:20px;
	font-weight:700;
	cursor:pointer;
	touch-action:manipulation;
}
.stepper button:active{ background:var(--c-primary-light); }
.stepper input{
	/*flex:1;*/
	min-width:0;
	border:none;
	background:transparent;
	text-align:center;
	font-size:20px;
	color:var(--c-text);
	-moz-appearance:textfield;
	width:calc(100% - 72px);
}
.stepper input::-webkit-outer-spin-button,
.stepper input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.field-hint{ font-size:11px; color:var(--c-text-muted); margin-top:5px; }
.field-hint a{ color:var(--c-primary-dark); font-weight:600; }
.field-hint-warning{ color:var(--c-danger); font-weight:600; }
.date-input{
	width:100%;
	border:1px solid var(--c-border);
	background:var(--c-bg);
	border-radius:var(--radius-md);
	padding:11px 12px;
	font-size:16px;
	color:var(--c-text);
	font-family:inherit;
}
.date-input:focus-visible{ outline:3px solid #8fbf6e; outline-offset:2px; }

.btn{
	appearance:none;
	border:none;
	border-radius:var(--radius-md);
	font-weight:700;
	font-size:16px;
	padding:16px 20px;
	cursor:pointer;
	width:100%;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	touch-action:manipulation;
}
.btn:focus-visible, .stepper button:focus-visible, .stepper input:focus-visible{
	outline:3px solid #8fbf6e;
	outline-offset:2px;
}
.btn-primary{ background:var(--c-primary); color:#fff; }
.btn-primary:active{ background:var(--c-primary-dark); }
.btn-secondary{ background:var(--c-primary-light); color:var(--c-primary-dark); }
.btn-danger{ background:var(--c-danger-light); color:var(--c-danger); }
.btn-ghost{ background:transparent; color:var(--c-text-muted); }

.btn-row{ display:flex; gap:10px; margin-top:10px; }
.btn-row .btn{ width:auto; flex:1; }

/* ---------- Workout screen ---------- */
.workout-screen{
	flex:1;
	display:flex;
	flex-direction:column;
	align-items:center;
	text-align:center;
}
#step-content{
	display:flex;
	flex-direction:column;
	align-items:center;
	width:100%;
	transition:opacity .18s ease, transform .18s ease;
}
#step-content.step-fade-out{
	opacity:0;
	transform:translateY(4px);
}
@media (prefers-reduced-motion:reduce){
	#step-content{ transition:none; }
}
.progress-line{
	color:var(--c-text-muted);
	font-size:13px;
	font-weight:700;
	letter-spacing:0.06em;
	text-transform:uppercase;
	margin-bottom:6px;
}
.exercise-name{
	font-size:30px;
	letter-spacing:0.02em;
	margin:0 0 26px;
	min-height:38px;
	transition:color .25s ease;
}
.phase-rest .exercise-name{ color:var(--c-rest); }

.ring-wrap{
	position:relative;
	width:var(--ring-size);
	height:var(--ring-size);
	margin:0 auto 26px;
}
.ring-wrap svg{ width:100%; height:100%; transform:rotate(-90deg); }
.ring-bg{ fill:none; stroke:var(--c-primary-light); stroke-width:14; }
.ring-fg{
	fill:none;
	stroke:var(--c-primary);
	stroke-width:14;
	stroke-linecap:round;
	transition:stroke .25s ease;
}
.phase-rest .ring-bg{ stroke:var(--c-rest-light); }
.phase-rest .ring-fg{ stroke:var(--c-rest); }

.ring-center{
	position:absolute; inset:0;
	display:flex; flex-direction:column; align-items:center; justify-content:center;
}
.ring-time{
	font-size:64px;
	line-height:1;
	color:var(--c-text);
}
.ring-phase-label{
	font-size:13px;
	font-weight:700;
	letter-spacing:0.08em;
	text-transform:uppercase;
	color:var(--c-text-muted);
	margin-top:6px;
}
.phase-rest .ring-phase-label{ color:var(--c-rest); }

.pulse{ animation:pulseBeat 1s ease-in-out; }
@keyframes pulseBeat{
	0%{ transform:scale(1); }
	30%{ transform:scale(1.08); }
	100%{ transform:scale(1); }
}
@media (prefers-reduced-motion:reduce){
	.pulse{ animation:none; }
	
	.ring-fg, .exercise-name{ transition:none; }
}

.next-up{
	color:var(--c-text-muted);
	font-size:14px;
	margin-bottom:22px;
}
.next-up b{ color:var(--c-text); }

.controls{
	width:100%;
	display:flex;
	flex-direction:column;
	gap:10px;
	margin-top:auto;
}
.controls .row{ display:flex; gap:10px; }
.controls .row .btn{ flex:1; }

/* paused overlay */
.pause-overlay{
	display:none;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:6px;
	padding:34px 20px;
}
.pause-overlay.active{ display:flex; }
.pause-overlay .eyebrow{ margin-bottom:4px; }
.paused-time{
	font-size:52px;
	color:var(--c-primary-dark);
}

/* finish screen */
.finish-screen{
	flex:1;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	text-align:center;
}
.finish-badge{
	width:88px;height:88px;
	border-radius:50%;
	background:var(--c-primary-light);
	display:flex;align-items:center;justify-content:center;
	margin-bottom:18px;
}
.finish-title{
	font-size:36px;
	margin:0 0 8px;
	color:var(--c-primary-dark);
}
.finish-msg{ color:var(--c-text-muted); font-size:15px; margin:0 0 26px; max-width:320px; }

/* ---------- Abschluss-Bildschirm: "Wie anstrengend war's?" ---------- */
.feeling-field{
	width:100%;
	max-width:280px;
	margin-bottom:18px;
}
.feeling-row{
	display:flex;
	justify-content:center;
	gap:4px;
}
.feeling-btn{
	flex:1;
	appearance:none;
	border:none;
	background:transparent;
	font-size:26px;
	line-height:1;
	padding:8px 4px;
	border-radius:var(--radius-md);
	cursor:pointer;
	opacity:0.5;
	filter:grayscale(60%);
	transition:opacity .15s ease, filter .15s ease, background-color .15s ease, transform .1s ease;
	touch-action:manipulation;
}
.feeling-btn:active{ transform:scale(0.92); }
.feeling-btn[aria-pressed="true"]{
	opacity:1;
	filter:none;
	background:var(--c-primary-light);
}
.feeling-btn:focus-visible{ outline:3px solid #8fbf6e; outline-offset:2px; }

/* simple custom modal (used for the cancel confirmation) */
.modal-backdrop{
	position:fixed; inset:0;
	background:rgba(17, 28, 15, 0.45);
	display:none;
	align-items:flex-end;
	justify-content:center;
	z-index:50;
	padding:20px;
}
.modal-backdrop.active{ display:flex; }
.modal-box{
	background:var(--c-card);
	border-radius:var(--radius-lg);
	padding:22px;
	width:100%;
	max-width:440px;
	box-shadow:var(--shadow);
}
.modal-box h2{
	font-size:24px;
	margin:0 0 8px;
}
.modal-box p{ color:var(--c-text-muted); font-size:14px; margin:0 0 18px; }

.hidden{ display:none !important; }

.visually-hidden{
	position:absolute !important;
	width:1px; height:1px;
	margin:-1px; padding:0; border:0;
	overflow:hidden;
	clip:rect(0, 0, 0, 0);
	white-space:nowrap;
}

.brand-actions{
	margin-left:auto;
	display:flex;
	align-items:center;
	gap:8px;
}

.icon-btn{
	flex:none;
	width:36px;
	height:36px;
	border:none;
	border-radius:50%;
	background:var(--c-primary-light);
	color:var(--c-primary-dark);
	display:flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	touch-action:manipulation;
	text-decoration:none;
}
.icon-btn svg{ width:18px; height:18px; }
.icon-btn:active{ opacity:0.75; }
.icon-btn:focus-visible{ outline:3px solid #8fbf6e; outline-offset:2px; }

/* Bewusst klein und zuruecknehmend gehalten (im Gegensatz zu .btn) - diese
   Aktionen sollen nicht mit "Workout starten" o.ae. konkurrieren, gerade weil
   Loeschen-Aktionen dabei sind. */
.footer-links{
	display:flex;
	justify-content:center;
	align-items:center;
	flex-wrap:wrap;
	gap:8px;
	margin-top:22px;
	color:var(--c-text-muted);
	font-size:12px;
}
.text-link-btn{
	appearance:none;
	background:none;
	border:none;
	color:var(--c-text-muted);
	font-size:12px;
	font-weight:600;
	text-decoration:underline;
	text-decoration-color:var(--c-border);
	cursor:pointer;
	padding:4px 2px;
	touch-action:manipulation;
	font-family:inherit;
}
.text-link-btn:active{ opacity:0.7; }
.text-link-btn:focus-visible{ outline:3px solid #8fbf6e; outline-offset:2px; }
.text-link-danger{ color:var(--c-danger); }

.phase-prepare .ring-bg{ stroke:var(--c-phase-info-bg); }
.phase-prepare .ring-fg{ stroke:var(--c-phase-info-fg); }
.phase-prepare .exercise-name{ color:var(--c-phase-info-fg); }
.phase-prepare .ring-phase-label{ color:var(--c-phase-info-fg); }

.phase-warmup .ring-bg{ stroke:var(--c-phase-info-bg); }
.phase-warmup .ring-fg{ stroke:var(--c-phase-info-fg); }
.phase-warmup .exercise-name{ color:var(--c-phase-info-fg); }
.phase-warmup .ring-phase-label{ color:var(--c-phase-info-fg); }

.phase-cooldown .ring-bg{ stroke:var(--c-phase-cool-bg); }
.phase-cooldown .ring-fg{ stroke:var(--c-phase-cool-fg); }
.phase-cooldown .exercise-name{ color:var(--c-phase-cool-fg); }
.phase-cooldown .ring-phase-label{ color:var(--c-phase-cool-fg); }

.volume-field{ margin-bottom:22px; }
.volume-row{
	display:flex;
	align-items:center;
	gap:10px;
	flex-wrap:wrap;
}
.volume-row input[type="range"]{
	flex:1;
	min-width:120px;
	accent-color:var(--c-primary);
	height:6px;
}
.volume-value{
	flex:none;
	font-size:13px;
	font-weight:700;
	color:var(--c-primary-dark);
	min-width:34px;
	text-align:right;
}
.btn-test-beep{
	flex:none;
	width:auto;
	padding:8px 14px;
	font-size:13px;
}
.switch-field-label{
	font-size:14px;
	font-weight:700;
	color:var(--c-text);
	flex:1;
}

.workout-select-list{
	list-style:none;
	margin:0 0 8px;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:8px;
}
.workout-select-item{
	display:flex;
	align-items:stretch;
	gap:8px;
}
.workout-select-main{
	flex:1;
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	gap:2px;
	text-align:left;
	background:var(--c-bg);
	border:none;
	border-radius:var(--radius-md);
	padding:12px 14px;
	cursor:pointer;
	touch-action:manipulation;
}
.workout-select-main:active{ background:var(--c-primary-light); }
/* kurzer Zustand, waehrend nach einem Update per updateUrl gefragt wird */
.workout-select-item.is-checking-update{ opacity:0.55; pointer-events:none; }
.workout-select-name{ font-weight:700; font-size:15px; color:var(--c-text); }
.workout-select-meta{ font-size:12px; color:var(--c-text-muted); }
.workout-select-delete{
	flex:none;
	width:46px;
	border:none;
	background:var(--c-danger-light);
	color:var(--c-danger);
	border-radius:var(--radius-md);
	font-size:18px;
	cursor:pointer;
	touch-action:manipulation;
}
.workout-select-delete svg{
	width:18px;
	height:18px;
}
.workout-select-delete:active{ opacity:0.75; }
.workout-select-empty{
	color:var(--c-text-muted);
	font-size:14px;
	background:var(--c-bg);
	border-radius:var(--radius-md);
	padding:16px;
	text-align:center;
	margin-bottom:8px;
}
.switch-workout-link{
	display:block;
	width:100%;
	background:none;
	border:none;
	color:var(--c-text-muted);
	font-size:13px;
	font-weight:600;
	text-align:center;
	padding:10px 0 0;
	cursor:pointer;
	text-decoration:underline;
}

/* ---------- Kraft-Modus: Uebersicht ---------- */
.strength-exercise-list{
	list-style:none;
	margin:0 0 22px;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:10px;
}
.strength-exercise-item{
	background:var(--c-bg);
	border-radius:var(--radius-md);
	padding:12px 14px;
}
.strength-exercise-unit + .strength-exercise-unit{
	margin-top:12px;
	padding-top:12px;
	border-top:1px dashed var(--c-border-dashed);
}
.strength-superset-block{
	border-left:3px solid var(--c-rest);
	background:var(--c-rest-light);
}
.strength-superset-block-disabled{
	border-left:3px solid var(--c-superset-disabled-border);
	background:var(--c-bg);
}
.strength-superset-members{
	display:flex;
	flex-direction:column;
}
.strength-superset-toggle-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:10px;
	margin-bottom:12px;
	padding-bottom:10px;
	border-bottom:1px dashed var(--c-border-dashed);
}
.strength-superset-block-disabled .strength-superset-toggle-row{
	border-bottom-color:var(--c-border);
}
.strength-superset-toggle-text{
	font-size:13px;
	font-weight:700;
	color:var(--c-text);
}
.switch{
	position:relative;
	display:inline-block;
	flex:none;
	width:42px;
	height:25px;
	touch-action:manipulation;
}
.switch input{
	position:absolute;
	opacity:0;
	width:100%;
	height:100%;
	margin:0;
	cursor:pointer;
}
.switch-slider{
	position:absolute;
	inset:0;
	background:var(--c-switch-off);
	border-radius:999px;
	transition:background .15s ease;
}
.switch-slider::before{
	content:"";
	position:absolute;
	width:19px;
	height:19px;
	left:3px;
	top:3px;
	background:#fff;
	border-radius:50%;
	box-shadow:0 1px 3px rgba(0, 0, 0, 0.25);
	transition:transform .15s ease;
}
.switch input:checked + .switch-slider{ background:var(--c-rest); }
.switch input:checked + .switch-slider::before{ transform:translateX(17px); }
.switch input:focus-visible + .switch-slider{ outline:3px solid #8fbf6e; outline-offset:2px; }
.strength-exercise-head{
	display:flex;
	align-items:center;
	gap:10px;
	margin-bottom:8px;
}
.strength-exercise-name{
	flex:1;
	font-weight:700;
	font-size:15px;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.strength-badges{
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	margin-bottom:10px;
}
.strength-badge{
	font-size:12px;
	color:var(--c-primary-dark);
	background:var(--c-primary-light);
	padding:3px 9px;
	border-radius:999px;
	white-space:nowrap;
}
.strength-percent-row{
	display:flex;
	align-items:center;
	gap:10px;
}
.strength-percent-label{
	font-size:12px;
	font-weight:700;
	color:var(--c-text-muted);
	text-transform:uppercase;
	letter-spacing:0.05em;
	flex:none;
}
.strength-percent-row .stepper{ flex:1; }
.strength-percent-weight{
	flex:none;
	font-size:13px;
	font-weight:700;
	color:var(--c-primary-dark);
	min-width:64px;
	text-align:right;
	transition:color .15s ease, transform .15s ease;
}
.strength-percent-weight.weight-flash{
	color:var(--c-rest);
	transform:scale(1.12);
}
@media (prefers-reduced-motion:reduce){
	.strength-percent-weight{ transition:none; }
	
	.strength-percent-weight.weight-flash{ transform:none; }
}

/* ---------- Kraft-Modus: Trainingsablauf (Satz-Karte statt Ring) ---------- */
.strength-set-card{
	width:100%;
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:4px;
	margin-bottom:26px;
}
.strength-set-progress{
	color:var(--c-text-muted);
	font-size:13px;
	font-weight:700;
	letter-spacing:0.06em;
	text-transform:uppercase;
	margin-bottom:10px;
}
.strength-set-weight{
	font-size:56px;
	line-height:1;
	color:var(--c-text);
}
.strength-set-weight-unit{
	font-size:22px;
	color:var(--c-text-muted);
	margin-left:4px;
}
.strength-set-meta{
	display:flex;
	gap:8px;
	flex-wrap:wrap;
	justify-content:center;
	margin-top:14px;
}
.btn-confirm-set{
	font-size:19px;
	padding:22px 20px;
}
.strength-superset-runtime-badge{
	background:var(--c-rest-light);
	color:var(--c-rest);
}

/* ---------- Uebungs-Info-Link (optionale Ausfuehrungs-URL je Uebung) ---------- */
.info-link{
	display:inline-flex;
	align-items:center;
	gap:6px;
	font-size:14px;
	font-weight:700;
	color:var(--c-primary-dark);
	background:var(--c-primary-light);
	padding:8px 14px;
	border-radius:999px;
	text-decoration:none;
	white-space:nowrap;
	touch-action:manipulation;
	margin-bottom:18px;
}
.info-link svg{ flex:none; width:15px; height:15px; }
.info-link:active{ opacity:0.75; }

.info-link-icon{
	flex:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:26px;
	height:26px;
	border-radius:50%;
	color:var(--c-primary-dark);
	background:var(--c-primary-light);
	text-decoration:none;
	touch-action:manipulation;
}
.info-link-icon svg{ width:14px; height:14px; }
.info-link-icon:active{ opacity:0.75; }

.offline-badge{
	font-size:11px;
	font-weight:700;
	letter-spacing:0.05em;
	text-transform:uppercase;
	padding:3px 8px;
	border-radius:999px;
	background:var(--c-primary-light);
	color:var(--c-primary-dark);
}
/* ---------- Lokale Auswertung (Abschnitt 9 in script.js) --------------- */
.history-summary{
	display:flex;
	gap:10px;
	flex-wrap:wrap;
}
.history-stat{
	flex:1;
	min-width:90px;
	background:var(--c-primary-light);
	border-radius:var(--radius-md);
	padding:12px 10px;
	text-align:center;
}
.history-stat-value{
	display:block;
	font-size:20px;
	font-weight:700;
	color:var(--c-primary-dark);
}
.history-stat-label{
	display:block;
	font-size:11px;
	color:var(--c-text-muted);
	margin-top:2px;
}

.history-chart{ width:100%; height:auto; display:block; }
.history-chart-axis{ stroke:var(--c-border); stroke-width:1; }
.history-chart-axis-label{ font-size:10px; fill:var(--c-text-muted); }
.history-chart-line{ stroke:var(--c-primary); stroke-width:2.5; }
.history-chart-point{ fill:var(--c-card); stroke:var(--c-primary); stroke-width:2; }
.history-chart-empty-text{ font-size:13px; fill:var(--c-text-muted); }

.history-course-list{
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:6px;
}
.history-course-list li{
	display:flex;
	justify-content:space-between;
	background:var(--c-primary-light);
	border-radius:var(--radius-md);
	padding:10px 12px;
	font-size:14px;
}
.history-course-list li span:last-child{ color:var(--c-text-muted); }

/* Reduzierte Bewegung respektieren - Diagramme sind ohnehin statisch, aber
   falls spaeter Uebergaenge ergaenzt werden, hier zentral abschaltbar. */
@media (prefers-reduced-motion: reduce){
	.history-chart *{ transition:none !important; }
}
