﻿* { box-sizing: border-box; }
html { min-height: 100%; background: var(--erp-black); color-scheme: dark; }
body { min-height: 100vh; margin: 0; background: var(--erp-black); color: var(--erp-text-secondary); font-family: var(--erp-font-body); font-size: 16px; line-height: 1.5; letter-spacing: 0; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; font-variant-numeric: tabular-nums; }
/* F2 (2026-05-20 CSS010) — 原此處 `body.erp-ui, body.theme-cyber-mandarin, body.theme-workbench-layout, body.auth-layout-body { background:var(--erp-black); color:var(--erp-text-secondary); }` 已刪。
   理由：Rule 7 違反（`body.theme-*` 只能在 00-tokens.css） + 上方 body 規則已對所有 body 設同值 + dead selector
   （erp-ui / theme-workbench-layout 全 repo 零 markup；theme-cyber-mandarin / auth-layout-body 雖有 markup 但 site.css 無 body 覆寫，base body 規則已足夠）。
   Zero 視覺變化。 */
a { color: var(--erp-gold-light); text-decoration: none; transition: color var(--erp-motion-fast) var(--erp-ease); }
a:hover { color: var(--erp-gold-primary); }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img, svg { max-width: 100%; }
:focus-visible { outline: none; box-shadow: var(--erp-focus-ring); }
::selection { background: rgba(var(--erp-rgb-gold-primary), 0.28); color: var(--erp-text-primary); }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--erp-black); }
::-webkit-scrollbar-thumb { background: var(--erp-border); border-radius: var(--erp-radius-pill); border: 2px solid var(--erp-black); }
::-webkit-scrollbar-thumb:hover { background: var(--erp-gold-dark); }
h1, h2, h3, h4, h5, h6 { margin: 0 0 var(--erp-space-2); color: var(--erp-text-primary); line-height: 1.22; font-weight: 800; letter-spacing: 0; }
p { margin: 0 0 var(--erp-space-3); }
small, .small { font-size: 0.82rem; color: var(--erp-text-muted); }
[hidden], .is-hidden { display: none !important; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.erp-skip-link { position: absolute; top: -100px; left: var(--erp-space-3); z-index: 9999; padding: var(--erp-space-2) var(--erp-space-3); background: var(--erp-gold-primary); color: var(--erp-black); font-weight: 900; border-radius: var(--erp-radius-sm); text-decoration: none; transition: top var(--erp-motion-fast); }
.erp-skip-link:focus, .erp-skip-link:focus-visible { top: var(--erp-space-3); color: var(--erp-black); outline: 3px solid var(--erp-gold-light); }
.erp-container { width: min(100% - 32px, var(--erp-content-max)); margin-inline: auto; }
.erp-page { display: grid; gap: var(--erp-space-6); color: var(--erp-text-secondary); }
.erp-page a:not(.erp-button):not(.erp-dropdown__item) { color: var(--erp-gold-light); }

/* P1 Accessibility: prefers-reduced-motion — 動暈用戶/省電模式 */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
