/* Local typography and theme tokens. PDF content keeps its own colours. */
@font-face { font-family: "Manrope"; src: url("fonts/manrope.ttf") format("truetype"); font-style: normal; font-weight: 200 800; font-display: swap; }
:root {
  color-scheme: light;
  --ink:#18202f; --muted:#657084; --subtle:#707d91;
  --line:#e2e7ef; --surface:#ffffff; --canvas:#f5f7fb; --hover:#edf2fb;
  --brand:#285ce6; --brand-dark:#2451c9; --brand-soft:#eaf0ff;
  --action:#285ce6; --on-action:#fff; --focus:#416fe8;
  --success:#19734d; --success-bg:#eaf8f0; --danger:#c63439; --danger-bg:#fff0f0;
  --soft:var(--brand-soft); --shadow-sm:0 2px 4px #14264603; --shadow-md:0 10px 30px #1426460c;
  --paper:#fff; --paper-line:#e6eaf1; --scene:#edf2fc;
  font-family:"Manrope","Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --ink:#eef1f8; --muted:#a2aec2; --subtle:#929eb4;
  --line:#303849; --surface:#1c2230; --canvas:#121722; --hover:#242e40;
  --brand:#8aafff; --brand-dark:#a8c2ff; --brand-soft:#253557;
  --action:#426fe9; --on-action:#fff; --focus:#9abaff;
  --success:#7ce0ac; --success-bg:#1c382d; --danger:#ff9b9e; --danger-bg:#44252e;
  --paper:#272f3e; --paper-line:#424d61; --scene:#19243c;
  --shadow-md:0 10px 30px #0003;
}
.theme-toggle { width:36px; height:36px; flex:0 0 36px; display:grid; place-items:center; padding:0; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--ink); cursor:pointer; }
.theme-toggle:hover { background:var(--hover); }
.theme-toggle svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.theme-toggle .theme-sun, [data-theme="dark"] .theme-toggle .theme-moon { display:none; }
[data-theme="dark"] .theme-toggle .theme-sun { display:block; }
:focus-visible { outline:2px solid var(--focus); outline-offset:3px; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
