/* 多套界面风格：通过 html[data-theme] 切换 */

:root,
html[data-theme="aurora"] {
  --bg: #0f1419;
  --bg-elevated: #171e26;
  --bg-panel: #1c2530;
  --border: #2a3644;
  --text: #e8eef4;
  --muted: #8b9aab;
  --accent: #2dd4bf;
  --accent-dim: #0f766e;
  --accent-contrast: #06241f;
  --danger: #f07178;
  --warn: #e6b450;
  --ok: #7fd962;
  --shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
  --radius: 10px;
  --font: "IBM Plex Sans", "Segoe UI", sans-serif;
  --mono: "JetBrains Mono", ui-monospace, monospace;
  --input-bg: #10161d;
  --input-border-hover: #3b4d63;
  --glow-a: rgba(45, 212, 191, 0.08);
  --glow-b: rgba(56, 110, 160, 0.12);
  --sidebar-from: #141b23;
  --sidebar-to: #10161d;
  --nav-active-bg: rgba(45, 212, 191, 0.12);
  --nav-active-border: rgba(45, 212, 191, 0.25);
  --nav-group: #5eead4;
  --nav-group-bg: rgba(45, 212, 191, 0.1);
  --nav-item: #a8b6c5;
  --btn-face: #243040;
  --topbar-bg: rgba(15, 20, 25, 0.72);
  --scheme: dark;
}

html[data-theme="ocean"] {
  --bg: #0b1220;
  --bg-elevated: #121c2e;
  --bg-panel: #162338;
  --border: #2a3d5a;
  --text: #e7eef8;
  --muted: #8fa3bf;
  --accent: #5b9fd4;
  --accent-dim: #2f6f9e;
  --accent-contrast: #061018;
  --input-bg: #0e1828;
  --input-border-hover: #3d5678;
  --glow-a: rgba(91, 159, 212, 0.12);
  --glow-b: rgba(40, 80, 140, 0.16);
  --sidebar-from: #101a2c;
  --sidebar-to: #0b1220;
  --nav-active-bg: rgba(91, 159, 212, 0.14);
  --nav-active-border: rgba(91, 159, 212, 0.3);
  --nav-group: #7eb8e8;
  --nav-group-bg: rgba(91, 159, 212, 0.12);
  --nav-item: #9eb0c6;
  --btn-face: #1c2d45;
  --topbar-bg: rgba(11, 18, 32, 0.78);
  --scheme: dark;
}

html[data-theme="ember"] {
  --bg: #16110d;
  --bg-elevated: #1f1812;
  --bg-panel: #261e16;
  --border: #3d3124;
  --text: #f3e8da;
  --muted: #b5a28c;
  --accent: #e8a45a;
  --accent-dim: #b8732e;
  --accent-contrast: #1a0f06;
  --input-bg: #1a1410;
  --input-border-hover: #5a4634;
  --glow-a: rgba(232, 164, 90, 0.1);
  --glow-b: rgba(140, 70, 30, 0.14);
  --sidebar-from: #1c1510;
  --sidebar-to: #14100c;
  --nav-active-bg: rgba(232, 164, 90, 0.14);
  --nav-active-border: rgba(232, 164, 90, 0.3);
  --nav-group: #f0b97a;
  --nav-group-bg: rgba(232, 164, 90, 0.12);
  --nav-item: #b9a894;
  --btn-face: #32261c;
  --topbar-bg: rgba(22, 17, 13, 0.8);
  --scheme: dark;
}

html[data-theme="graphite"] {
  --bg: #121417;
  --bg-elevated: #181b20;
  --bg-panel: #1c1f24;
  --border: #31363e;
  --text: #eceff3;
  --muted: #9aa3ad;
  --accent: #a8b3bf;
  --accent-dim: #6d7886;
  --accent-contrast: #121417;
  --input-bg: #15181c;
  --input-border-hover: #4a515c;
  --glow-a: rgba(168, 179, 191, 0.08);
  --glow-b: rgba(80, 90, 100, 0.12);
  --sidebar-from: #16191e;
  --sidebar-to: #101217;
  --nav-active-bg: rgba(168, 179, 191, 0.14);
  --nav-active-border: rgba(168, 179, 191, 0.28);
  --nav-group: #c5ced8;
  --nav-group-bg: rgba(168, 179, 191, 0.12);
  --nav-item: #9aa3ad;
  --btn-face: #2a2f36;
  --topbar-bg: rgba(18, 20, 23, 0.8);
  --scheme: dark;
}

html[data-theme="daylight"] {
  --bg: #eef1f5;
  --bg-elevated: #f7f8fa;
  --bg-panel: #ffffff;
  --border: #d5dbe3;
  --text: #1c2430;
  --muted: #66758a;
  --accent: #0f766e;
  --accent-dim: #115e59;
  --accent-contrast: #ffffff;
  --danger: #c2414b;
  --warn: #b45309;
  --ok: #15803d;
  --shadow: 0 10px 28px rgba(28, 36, 48, 0.08);
  --input-bg: #ffffff;
  --input-border-hover: #9aabbd;
  --glow-a: rgba(15, 118, 110, 0.08);
  --glow-b: rgba(56, 110, 160, 0.06);
  --sidebar-from: #f4f6f9;
  --sidebar-to: #e9edf2;
  --nav-active-bg: rgba(15, 118, 110, 0.1);
  --nav-active-border: rgba(15, 118, 110, 0.28);
  --nav-group: #0f766e;
  --nav-group-bg: rgba(15, 118, 110, 0.1);
  --nav-item: #5a6a7e;
  --btn-face: #e8eef4;
  --topbar-bg: rgba(247, 248, 250, 0.9);
  --scheme: light;
}

/* 白天户外 / 车载抗反光：更高亮度、更强对比 */
html[data-theme="outdoor"] {
  --bg: #f1f5f9;
  --bg-elevated: #ffffff;
  --bg-panel: #ffffff;
  --border: #94a3b8;
  --text: #0f172a;
  --muted: #475569;
  --accent: #0369a1;
  --accent-dim: #075985;
  --accent-contrast: #ffffff;
  --danger: #b91c1c;
  --warn: #c2410c;
  --ok: #15803d;
  --shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  --input-bg: #ffffff;
  --input-border-hover: #64748b;
  --glow-a: rgba(3, 105, 161, 0.1);
  --glow-b: rgba(15, 23, 42, 0.06);
  --sidebar-from: #e2e8f0;
  --sidebar-to: #f8fafc;
  --nav-active-bg: rgba(3, 105, 161, 0.14);
  --nav-active-border: rgba(3, 105, 161, 0.4);
  --nav-group: #0369a1;
  --nav-group-bg: rgba(3, 105, 161, 0.12);
  --nav-item: #334155;
  --btn-face: #e2e8f0;
  --topbar-bg: rgba(255, 255, 255, 0.95);
  --scheme: light;
}

html[data-theme="sggreen"] {
  --bg: #f3f6f6;
  --bg-elevated: #ffffff;
  --bg-panel: #ffffff;
  --border: #d5e2e2;
  --text: #1a2a2b;
  --muted: #5c7273;
  --accent: #006569;
  --accent-dim: #004e51;
  --accent-contrast: #ffffff;
  --danger: #b80027;
  --warn: #ff9900;
  --ok: #006569;
  --shadow: 0 10px 28px rgba(0, 78, 81, 0.08);
  --input-bg: #ffffff;
  --input-border-hover: #8aabab;
  --glow-a: rgba(0, 101, 105, 0.08);
  --glow-b: rgba(0, 78, 81, 0.05);
  --sidebar-from: #f7fafa;
  --sidebar-to: #e8f0f0;
  --nav-active-bg: rgba(0, 101, 105, 0.1);
  --nav-active-border: rgba(0, 101, 105, 0.32);
  --nav-group: #006569;
  --nav-group-bg: rgba(0, 101, 105, 0.1);
  --nav-item: #3d5556;
  --btn-face: #e6f2f2;
  --topbar-bg: rgba(255, 255, 255, 0.94);
  --scheme: light;
}

html[data-theme="forest"] {
  --bg: #0c1410;
  --bg-elevated: #121c16;
  --bg-panel: #15241b;
  --border: #2a3d31;
  --text: #e6f2ea;
  --muted: #8fad9b;
  --accent: #6bcf8e;
  --accent-dim: #2f8a54;
  --accent-contrast: #062012;
  --input-bg: #0f1913;
  --input-border-hover: #3d5a48;
  --glow-a: rgba(107, 207, 142, 0.1);
  --glow-b: rgba(40, 100, 70, 0.14);
  --sidebar-from: #101a14;
  --sidebar-to: #0c1410;
  --nav-active-bg: rgba(107, 207, 142, 0.14);
  --nav-active-border: rgba(107, 207, 142, 0.3);
  --nav-group: #8dddab;
  --nav-group-bg: rgba(107, 207, 142, 0.12);
  --nav-item: #8fad9b;
  --btn-face: #1e3227;
  --topbar-bg: rgba(12, 20, 16, 0.8);
  --scheme: dark;
}

/* 无障碍：字号 / 高对比 */
:root {
  --font-scale: 1;
}

html[data-font="large"] {
  --font-scale: 1.18;
}

html[data-font="large"] body {
  font-size: calc(15px * var(--font-scale));
}

html[data-font="large"] .page-title {
  font-size: 1.55rem;
}

html[data-font="large"] .btn,
html[data-font="large"] .nav-link,
html[data-font="large"] .field label {
  font-size: 1.05em;
}

html[data-contrast="high"] {
  --border: color-mix(in srgb, var(--text) 45%, var(--border));
  --muted: color-mix(in srgb, var(--text) 72%, var(--muted));
  --text: color-mix(in srgb, var(--text) 100%, #000 0%);
}

html[data-contrast="high"][data-theme="aurora"],
html[data-contrast="high"][data-theme="ocean"],
html[data-contrast="high"][data-theme="ember"],
html[data-contrast="high"][data-theme="graphite"],
html[data-contrast="high"][data-theme="forest"] {
  --bg: #000000;
  --bg-elevated: #0a0a0a;
  --bg-panel: #111111;
  --text: #ffffff;
  --muted: #d4d4d4;
  --border: #e5e5e5;
  --accent: #ffff00;
  --accent-dim: #facc15;
  --accent-contrast: #000000;
  --nav-group: #ffff00;
  --nav-item: #f5f5f5;
}

html[data-contrast="high"][data-theme="daylight"],
html[data-contrast="high"][data-theme="outdoor"],
html[data-contrast="high"][data-theme="sggreen"] {
  --bg: #ffffff;
  --bg-elevated: #ffffff;
  --bg-panel: #ffffff;
  --text: #000000;
  --muted: #1a1a1a;
  --border: #000000;
  --accent: #0000ee;
  --accent-dim: #0000aa;
  --accent-contrast: #ffffff;
  --nav-group: #0000ee;
  --nav-item: #000000;
}

html[data-contrast="high"] .btn,
html[data-contrast="high"] .card,
html[data-contrast="high"] .nav-link {
  outline: 1px solid color-mix(in srgb, var(--text) 40%, transparent);
}

html[data-theme] { --panel: var(--bg-panel); }

