/* ZHIHONG UI 2.0 — design tokens. No page-specific patches belong here. */
:root {
	--zh-ui2-green: #1f6f43;
	--zh-ui2-green-dark: #155334;
	--zh-ui2-green-deep: #0d3f2c;
	--zh-ui2-ink: #111a17;
	--zh-ui2-ink-soft: #25342e;
	--zh-ui2-muted: #5c6963;
	--zh-ui2-border: #d8dfda;
	--zh-ui2-border-strong: #b9c5bd;
	--zh-ui2-surface: #f3f6f3;
	--zh-ui2-surface-deep: #e6eee8;
	--zh-ui2-white: #fff;
	--zh-ui2-footer: #0c211a;
	--zh-ui2-warning: #b45309;
	--zh-ui2-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	--zh-ui2-mono: ui-monospace, SFMono-Regular, Consolas, monospace;
	--zh-ui2-container: 1200px;
	--zh-ui2-wide: 1360px;
	--zh-ui2-gutter: clamp(1.25rem, 3.3vw, 3rem);
	--zh-ui2-section: clamp(4.5rem, 8vw, 7.5rem);
	--zh-ui2-radius-sm: 4px;
	--zh-ui2-radius-md: 6px;
	--zh-ui2-radius-lg: 8px;
	--zh-ui2-shadow: 0 20px 55px rgba(13, 63, 44, 0.12);
	--zh-ui2-header-height: 84px;
	--zh-ui2-z-header: 1000;
	--zh-ui2-z-dock: 900;
}

html { scroll-padding-top: calc(var(--zh-ui2-header-height) + 1rem); }

body {
	background: var(--zh-ui2-white);
	color: var(--zh-ui2-ink);
	font-family: var(--zh-ui2-font);
	-webkit-font-smoothing: antialiased;
}

:where(.zh-ui2-header-shell, .zh-ui2-home, .zh-ui2-footer, .zhihong-service-dock) *,
:where(.zh-ui2-header-shell, .zh-ui2-home, .zh-ui2-footer, .zhihong-service-dock) *::before,
:where(.zh-ui2-header-shell, .zh-ui2-home, .zh-ui2-footer, .zhihong-service-dock) *::after { box-sizing: border-box; }

:where(.zh-ui2-header-shell, .zh-ui2-home, .zh-ui2-footer, .zhihong-service-dock) a { color: inherit; }

:where(.zh-ui2-header-shell, .zh-ui2-home, .zh-ui2-footer, .zhihong-service-dock) :where(a, button, summary):focus-visible {
	outline: 3px solid #62a97c;
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	:where(.zh-ui2-header-shell, .zh-ui2-home, .zh-ui2-footer, .zhihong-service-dock) * { scroll-behavior: auto; transition-duration: 0.01ms; }
}
