:root {
	color-scheme: light;
	--canvas: oklch(96.7% 0.011 151);
	--surface: oklch(99.5% 0.003 151);
	--surface-soft: oklch(93.8% 0.018 151);
	--surface-strong: oklch(89.7% 0.029 151);
	--ink: oklch(26% 0.031 153);
	--ink-soft: oklch(40% 0.025 151);
	--muted-ink: oklch(45% 0.018 151);
	--line: oklch(83% 0.018 151);
	--control-line: oklch(62% 0.028 151);
	--brand: oklch(43% 0.082 151);
	--brand-hover: oklch(36% 0.075 151);
	--brand-soft: oklch(91% 0.038 151);
	--brand-ink: oklch(33% 0.066 151);
	--error: oklch(44% 0.14 25);
	--error-soft: oklch(96% 0.02 25);
	--warning: oklch(42% 0.095 70);
	--warning-soft: oklch(94% 0.035 70);
	color: var(--ink);
	background: var(--canvas);
}
body {
	color: var(--ink);
	background:
		radial-gradient(
			circle at 88% 0,
			oklch(91% 0.04 151 / 0.65),
			transparent 34%
		),
		var(--canvas);
}
h1,
h2,
h3 {
	color: var(--ink);
}
p,
.muted,
.small {
	color: var(--muted-ink);
}
.top {
	border-color: var(--line);
}
.header-logo,
.auth-logo,
.admin-auth-logo {
	border: 1px solid oklch(36% 0.035 151);
	box-shadow: 0 10px 26px oklch(26% 0.031 153 / 0.13);
}
.top-right,
.footer {
	color: var(--muted-ink);
}
.brand,
.eyebrow,
.calendar-grid > strong,
.coach-notice,
.update-item.unread,
.admin-login-link,
.image-credits a,
.image-credits summary {
	color: var(--brand-ink);
}
.nav button {
	color: var(--ink-soft);
}
.nav button.active {
	background: var(--brand-soft);
	border-color: var(--line);
	color: var(--brand-ink);
}
.ghost,
.routine-picker button,
.timer-select select {
	background: var(--surface);
	border-color: var(--control-line);
	color: var(--ink);
}
.ghost:hover:not(:disabled),
.nav button:hover:not(.active):not(:disabled),
.routine-picker button:hover:not(.active):not(:disabled) {
	background: var(--brand-soft);
	border-color: var(--brand);
	color: var(--brand-ink);
}
.primary,
.routine-picker button.active {
	background: var(--brand);
	border-color: var(--brand);
	color: white;
}
.primary:hover:not(:disabled) {
	background: var(--brand-hover);
}
.danger {
	background: var(--error-soft);
	color: var(--error);
	border: 1px solid oklch(82% 0.06 25);
}
:where(button, a, input, select, textarea):focus-visible {
	outline-color: var(--brand);
}
.card,
.auth-card {
	background: var(--surface);
	border-color: var(--line);
	box-shadow: 0 8px 30px oklch(26% 0.031 153 / 0.045);
}
.hero {
	background: linear-gradient(
		115deg,
		oklch(37% 0.075 151),
		oklch(48% 0.075 151)
	);
	border-color: oklch(40% 0.07 151);
	box-shadow: 0 14px 34px oklch(28% 0.06 151 / 0.18);
}
.hero h1,
.hero p,
.hero .eyebrow,
.hero .elapsed-label {
	color: white;
}
.hero .primary {
	background: oklch(90% 0.075 151);
	color: var(--brand-ink);
}
.hero .primary:hover:not(:disabled) {
	background: white;
}
.hero .ghost {
	background: transparent;
	border-color: oklch(90% 0.025 151);
	color: white;
}
.hero .ghost:hover:not(:disabled) {
	background: oklch(100% 0 0 / 0.15);
}
.weekly-goal {
	background: linear-gradient(150deg, var(--surface), var(--brand-soft));
}
.weekly-goal .stat,
.weekly-goal .stat span {
	color: var(--brand-ink);
}
.weekly-goal .stat span {
	opacity: 0.67;
}
.exercise-toggle,
.trainee-choice {
	color: var(--ink);
}
.exercise-toggle:hover,
.trainee-choice:hover:not(:disabled) {
	background: var(--surface-soft);
}
.exercise-copy small,
.exercise-toggle small,
.set-group-fields label,
.editor-head,
.drag-handle,
.coach-stats span,
.weekly-bar,
.empty {
	color: var(--muted-ink);
}
.exercise-thumb {
	border-color: var(--line);
}
.exercise-placeholder {
	background: var(--brand-soft);
	color: var(--brand-ink);
}
.exercise-details,
.exercise,
.set-row,
.coach-exercise,
.history-item,
.image-credits {
	border-color: var(--line);
}
.swap-panel {
	background: var(--surface-soft);
	border-color: var(--line);
}
.pill,
.admin-tag {
	background: var(--brand-soft);
	border-color: var(--line);
	color: var(--brand-ink);
}
.last-performance,
.set-index,
.recap-records,
.suggested-weight,
.inline-saved {
	color: var(--brand-ink);
}
.set-more summary,
.exercise-menu summary {
	color: var(--ink-soft);
}
.field-error,
.account-danger-zone h2 {
	color: var(--error);
}
.account-danger-zone {
	border-color: oklch(82% 0.06 25);
}
.field {
	color: var(--ink-soft);
}
.quick-field-heading {
	color: var(--ink-soft);
}
.quick-field-heading span {
	color: var(--muted-ink);
}
.set-row input,
.set-row select,
.editor-row input,
.field input,
.field select,
.field textarea,
.history-set-form input,
.history-set-form select {
	background: white;
	border-color: var(--control-line);
	color: var(--ink);
}
input::placeholder,
textarea::placeholder {
	color: var(--muted-ink);
}
input:hover,
select:hover,
textarea:hover {
	border-color: var(--brand);
}
.message {
	background: var(--error-soft);
	border-color: oklch(82% 0.06 25);
	color: var(--error);
}
.message.success,
.admin-success {
	background: var(--brand-soft);
	border-color: var(--line);
	color: var(--brand-ink);
}
.undo-toast {
	background: var(--brand);
	border-color: var(--brand-hover);
	color: white;
	box-shadow: 0 12px 28px oklch(25% 0.03 151 / 0.2);
}
.undo-toast .ghost {
	background: white;
}
.calendar-day,
.week-day,
.trainee-choice,
.coach-stats div {
	background: var(--surface-soft);
	border-color: var(--line);
	color: var(--ink);
}
.calendar-day.trained,
.week-day.current,
.trainee-choice.selected {
	border-color: var(--brand);
}
.calendar-day.active {
	background: var(--brand);
	color: white;
}
.trend-track,
.adherence-meter {
	background: var(--surface-strong);
}
.trend-track span,
.adherence-meter span,
.weekly-bar > div {
	background: var(--brand);
}
.weekly-goal .adherence-meter span {
	width: var(--fill, 0%);
	min-width: 0;
}
.timer-display {
	color: var(--brand-ink);
}
.timer-card {
	background: var(--brand-soft);
	border-color: var(--line);
}
.chart-grid {
	stroke: var(--line);
}
.chart-label {
	fill: var(--muted-ink);
}
.chart-line {
	stroke: var(--brand);
}
.chart-dot {
	fill: white;
	stroke: var(--brand);
}
.admin-auth,
.admin-portal {
	background: var(--canvas);
	color: var(--ink);
}
.admin-auth-intro {
	background: linear-gradient(
		145deg,
		var(--brand-soft),
		var(--surface-strong)
	);
	border-color: var(--line);
}
.admin-auth-intro h1,
.admin-auth-intro p,
.admin-member-link {
	color: var(--ink);
}
.admin-auth-card,
.admin-metric,
.admin-panel {
	background: var(--surface);
	border-color: var(--line);
	color: var(--ink);
	box-shadow: 0 8px 30px oklch(26% 0.031 153 / 0.045);
}
.admin-auth-kicker,
.admin-kicker,
.admin-brand,
.admin-panel-heading a,
.admin-panel-heading button {
	color: var(--brand-ink);
}
.admin-sidebar {
	background: var(--surface-soft);
	border-color: var(--line);
}
.admin-sidebar nav button,
.admin-sidebar-footer button,
.admin-sidebar-footer a {
	color: var(--ink-soft);
}
.admin-sidebar nav button:hover,
.admin-sidebar-footer button:hover {
	background: var(--brand-soft);
	color: var(--brand-ink);
}
.admin-sidebar nav button.active {
	background: var(--brand);
	border-color: var(--brand);
	color: white;
}
.admin-sidebar-footer,
.admin-topbar,
.admin-mobile-nav {
	border-color: var(--line);
}
.admin-topbar {
	background: var(--surface);
}
.admin-topbar > div:first-child span,
.admin-identity {
	color: var(--muted-ink);
}
.admin-topbar > div:first-child span {
	border-color: var(--line);
}
.admin-metric > span,
.admin-metric small,
.admin-panel-heading p,
.admin-chart-empty span,
.admin-chart-label,
.admin-quick-links button span,
.admin-audit-row time,
.admin-table td small,
.admin-table .admin-table-empty,
.admin-muted,
.admin-pagination,
.admin-assignment > div span {
	color: var(--muted-ink);
}
.admin-chart,
.admin-chart-empty,
.admin-audit-row,
.admin-table th,
.admin-table td,
.admin-assignment {
	border-color: var(--line);
}
.admin-chart-empty,
.admin-empty,
.admin-inline-stats strong {
	color: var(--ink);
}
.admin-chart-bar {
	background: linear-gradient(var(--brand), var(--brand-hover));
}
.admin-attention-list button,
.admin-quick-links button,
.admin-inline-stats span {
	background: var(--surface-soft);
	border-color: var(--line);
	color: var(--ink);
}
.admin-attention-list button:hover,
.admin-quick-links button:hover {
	background: var(--brand-soft);
	border-color: var(--brand);
}
.admin-attention-list button strong,
.admin-table th,
.admin-audit-dot {
	color: var(--brand-ink);
}
.admin-audit-dot {
	background: var(--brand);
}
.admin-table th {
	background: var(--surface-soft);
}
.admin-status {
	background: var(--surface-soft);
	color: var(--ink-soft);
}
.admin-status.active {
	background: var(--brand-soft);
	color: var(--brand-ink);
}
.admin-status.pending {
	background: var(--warning-soft);
	color: var(--warning);
}
.admin-status.suspended {
	background: var(--error-soft);
	color: var(--error);
}
.admin-mobile-nav button {
	color: var(--ink-soft);
}
.admin-mobile-nav button.active {
	background: var(--brand);
	border-color: var(--brand);
	color: white;
}
@media (max-width: 720px) {
	.nav,
	.nav.coach-nav {
		background: var(--surface);
		border-color: var(--line);
		box-shadow: 0 -8px 24px oklch(26% 0.031 153 / 0.09);
	}
	.timer-card {
		box-shadow: 0 10px 24px oklch(26% 0.031 153 / 0.12);
	}
}
