/* Universal Theme Kit — tokens only. Load before components.css. */
:root {
  --ui-font: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --ui-scale: 1; --ui-content-scale: 1;
  --ui-space-1: 4px; --ui-space-2: 8px; --ui-space-3: 12px; --ui-space-4: 16px; --ui-space-5: 20px; --ui-space-6: 24px; --ui-space-8: 32px; --ui-space-10: 40px;
  --ui-radius: 10px; --ui-radius-sm: calc(var(--ui-radius) * .6); --ui-radius-lg: calc(var(--ui-radius) * 1.6); --ui-pill: 999px;
  --ui-control-sm: 32px; --ui-control: 40px; --ui-control-lg: 48px;
  --ui-topbar-height: 64px; --ui-sidebar-width: 240px; --ui-content-max: 1200px; --ui-border-width: 1px; --ui-topbar-blur: 16px;
  /* ThemeKit writes concrete duration values. Multiplying a CSS time by a
     number with calc() is not supported consistently across browsers. */
  --ui-motion-scale:1; --ui-fast:120ms; --ui-motion:200ms; --ui-slow:320ms; --ui-ripple:520ms; --ui-duration-50:50ms; --ui-duration-100:100ms; --ui-duration-150:150ms; --ui-duration-200:200ms; --ui-duration-250:250ms; --ui-duration-300:300ms; --ui-duration-350:350ms; --ui-duration-400:400ms; --ui-duration-500:500ms; --ui-duration-800:800ms; --ui-duration-900:900ms; --ui-duration-1000:1000ms; --ui-duration-3200:3200ms; --ui-duration-8000:8000ms; --ui-duration-20000:20000ms; --ui-duration-30000:30000ms; --ui-demo-float:4200ms; --ui-demo-pulse:2400ms; --ui-ease-out:cubic-bezier(.2,.75,.25,1); --ui-ease-pop:cubic-bezier(.2,.75,.25,1); --ui-press-scale:.975;
  --ui-shadow-alpha: 8%; --ui-shadow-lg-alpha: 16%; --ui-shadow-sm: 0 1px 3px color-mix(in srgb, var(--ui-ink) var(--ui-shadow-alpha), transparent); --ui-shadow-lg: 0 20px 50px color-mix(in srgb, var(--ui-ink) var(--ui-shadow-lg-alpha), transparent);
  --ui-brand: #17604b; --ui-brand-hover: #114a3a; --ui-brand-soft: #e4f2ec; --ui-accent: #cb8431;
}

:root,[data-ui-mode="light"] { --ui-page:#f7f8f6; --ui-surface:#fff; --ui-surface-subtle:#f0f3f1; --ui-surface-elevated:#fff; --ui-ink:#121815; --ui-text:#1e2823; --ui-text-secondary:#4b5751; --ui-muted:#7e8b84; --ui-link:#1d65c1; --ui-link-hover:#0e4b99; --ui-border:#dde3df; --ui-border-strong:#a8b1ac; --ui-on-brand:#fff; --ui-danger:#c73c41; --ui-success:#287862; --ui-warning:#b66f14; --ui-focus:0 0 0 3px color-mix(in srgb, var(--ui-brand) 25%, transparent); }
[data-ui-mode="dark"] { --ui-page:#0a0e0c; --ui-surface:#121815; --ui-surface-subtle:#1e2823; --ui-surface-elevated:#252f2a; --ui-ink:#f9faf9; --ui-text:#f0f3f1; --ui-text-secondary:#cbd3ce; --ui-muted:#8e9a93; --ui-link:#75b8ff; --ui-link-hover:#a1d1ff; --ui-border:#34413a; --ui-border-strong:#66736c; --ui-on-brand:#fff; --ui-danger:#ff7f87; --ui-success:#62c99f; --ui-warning:#f1bb64; --ui-brand-soft:color-mix(in srgb, var(--ui-brand) 24%, var(--ui-surface)); --ui-focus:0 0 0 3px color-mix(in srgb, var(--ui-brand) 35%, transparent); }

[data-ui-preset="ocean"] { --ui-brand:#256f9e; --ui-brand-hover:#185779; --ui-brand-soft:#dceef7; --ui-accent:#d38347; }
[data-ui-preset="plum"] { --ui-brand:#76518b; --ui-brand-hover:#5d3b70; --ui-brand-soft:#eee5f2; --ui-accent:#c87568; }
[data-ui-preset="clay"] { --ui-brand:#a34f43; --ui-brand-hover:#803c34; --ui-brand-soft:#f5e5df; --ui-accent:#bf7d37; }
[data-ui-preset="rose"] { --ui-brand:#a73d63; --ui-brand-hover:#842e4c; --ui-brand-soft:#f7e2ea; --ui-accent:#d58b70; }
[data-ui-preset="indigo"] { --ui-brand:#4d56a8; --ui-brand-hover:#384184; --ui-brand-soft:#e7e9f8; --ui-accent:#c077a9; }
[data-ui-preset="mint"] { --ui-brand:#147d70; --ui-brand-hover:#0c6258; --ui-brand-soft:#dff3ee; --ui-accent:#c58b45; }
[data-ui-preset="sun"] { --ui-brand:#956019; --ui-brand-hover:#71470f; --ui-brand-soft:#f8ecd5; --ui-accent:#c64f3f; }
[data-ui-preset="mono"] { --ui-brand:#373b39; --ui-brand-hover:#1e2220; --ui-brand-soft:#e9ecea; --ui-accent:#747c78; }
[data-ui-preset="cyber"] { --ui-brand:#6557d2; --ui-brand-hover:#4e43ad; --ui-brand-soft:#ece9ff; --ui-accent:#078b83; }

/* Preset soft colors above are designed for light surfaces. Rebuild them on
   dark surfaces and raise the action color so selected items remain legible. */
[data-ui-mode="dark"][data-ui-preset="forest"] { --ui-brand:#62c8a3; --ui-brand-hover:#84d7b8; --ui-accent:#f0b765; }
[data-ui-mode="dark"][data-ui-preset="ocean"] { --ui-brand:#63b9e9; --ui-brand-hover:#87cdf5; --ui-accent:#f0ac70; }
[data-ui-mode="dark"][data-ui-preset="plum"] { --ui-brand:#c09bd3; --ui-brand-hover:#d4b7e4; --ui-accent:#e2a89c; }
[data-ui-mode="dark"][data-ui-preset="clay"] { --ui-brand:#ee9384; --ui-brand-hover:#f4b0a4; --ui-accent:#e8ad62; }
[data-ui-mode="dark"][data-ui-preset="rose"] { --ui-brand:#ef9ab6; --ui-brand-hover:#f5b5c9; --ui-accent:#ecaf93; }
[data-ui-mode="dark"][data-ui-preset="indigo"] { --ui-brand:#9ea7fa; --ui-brand-hover:#bbc2ff; --ui-accent:#d59fbd; }
[data-ui-mode="dark"][data-ui-preset="mint"] { --ui-brand:#52cbb9; --ui-brand-hover:#77dccd; --ui-accent:#e0b36e; }
[data-ui-mode="dark"][data-ui-preset="sun"] { --ui-brand:#e7b760; --ui-brand-hover:#f0ca81; --ui-accent:#ee887b; }
[data-ui-mode="dark"][data-ui-preset="mono"] { --ui-brand:#ced4d0; --ui-brand-hover:#e0e5e2; --ui-accent:#9da7a1; }
[data-ui-mode="dark"][data-ui-preset="cyber"] { --ui-brand:#aaa0ff; --ui-brand-hover:#c1baff; --ui-accent:#4ed0c3; }
[data-ui-mode="dark"][data-ui-preset] { --ui-brand-soft:color-mix(in srgb, var(--ui-brand) 22%, var(--ui-surface)); --ui-on-brand:#0a0e0c; }

@media (prefers-reduced-motion:reduce) { :root { --ui-motion-scale:.01; } }
