/* Shared product tokens. Report wallpaper/radius choices remain user-owned. */
:root {
  color-scheme: light;
  --ui-page: #eaf2fb;
  --ui-surface: #fbfdff;
  --ui-soft: #e1ecf8;
  --ui-text: #20364c;
  --ui-muted: #526880;
  --ui-border: #c5d6e8;
  --ui-accent: #284f79;
  --ui-accent-ink: #f7fbff;
  --ui-accent-soft: #d6e6f7;
  --ui-action: #5cabff;
  --ui-action-ink: #102c46;
  --ui-shadow: 0 8px 32px rgba(40,79,121,.05);
  --ink: var(--ui-text);
  --muted: var(--ui-muted);
  --line: var(--ui-border);
  --card: var(--ui-surface);
  --soft: var(--ui-soft);
  --accent: var(--ui-accent);
  --accent-soft: var(--ui-accent-soft);
  --mist: var(--ui-accent-soft);
  --rose: var(--ui-soft);
  --dusk: #769fc9;
  --dusk-deep: #416991;
  --clay: var(--ui-accent);
  --shadow: var(--ui-shadow);
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
}
body { background: var(--ui-page); color: var(--ui-text); }
:root[data-theme="dark"] {
  color-scheme: dark;
  --ui-page: #101e2d; --ui-surface: #182b3e; --ui-soft: #20354b;
  --ui-text: #e6f0fa; --ui-muted: #a7bdd4; --ui-border: #364d65;
  --ui-accent: #b6d2ef; --ui-accent-ink: #172f49; --ui-accent-soft: #293f58;
  --ui-shadow: 0 8px 32px rgba(4,13,23,.12);
}
button, input, textarea, select { font-family: inherit; }
button { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 4px; }
.plain-button { min-height: 40px; border: 1px solid var(--ui-border); border-radius: 12px; color: var(--ui-text); background: var(--ui-surface); box-shadow: none; font-weight: 600; transition: background .16s ease, transform .16s ease, border-color .16s ease; }
.plain-button:hover:not(:disabled) { color: var(--ui-text); border-color: var(--ui-accent); background: var(--ui-soft); box-shadow: none; transform: translateY(-1px); }
.plain-button:active:not(:disabled) { transform: translateY(1px); box-shadow: none; }
.plain-button.primary { color: var(--ui-action-ink); border-color: var(--ui-action); background: var(--ui-action); }
.plain-button.primary:hover:not(:disabled) { color: var(--ui-action-ink); background: var(--ui-action); filter: brightness(.95); }
.brand-mark { letter-spacing: -.035em; font-weight: 700; }
.brand-mark span { border-radius: 8px; background: var(--ui-text); box-shadow: inset 0 -6px 0 #a9c7e8; transform: none; }
/* Shared theme control. View-transition snapshots are the only full-page overlay. */
button.theme-toggle { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; gap: 7px; min-width: 76px; min-height: 38px; padding: 8px 12px; border: 1px solid var(--ui-border); border-radius: 12px; color: var(--ui-text); background: var(--ui-surface); font-size: 13px; font-weight: 500; line-height: 1; white-space: nowrap; cursor: pointer; box-shadow: none; }
button.theme-toggle:hover { border-color: var(--ui-accent); background: var(--ui-soft); }
.theme-toggle-glyph { display: block; width: 14px; height: 14px; border: 1.5px solid currentColor; border-radius: 50%; background: linear-gradient(90deg, currentColor 50%, transparent 50%); }
.theme-toggle-floating { position: absolute; top: 24px; right: 24px; }
::view-transition-old(root), ::view-transition-new(root) { animation: none; mix-blend-mode: normal; }
::view-transition-old(root) { z-index: 1; }
::view-transition-new(root) { z-index: 2; }
::view-transition-group(root) { animation-duration: 0s; }
.site-footer { border-top: 1px solid var(--ui-border); color: var(--ui-muted); background: var(--ui-page); }
.site-footer :is(strong, b, a) { color: var(--ui-text); }
.site-footer a:hover { color: var(--ui-accent); }
.compliance-dialog { border: 1px solid var(--ui-border); color: var(--ui-text); background: var(--ui-surface); box-shadow: var(--ui-shadow); }
.compliance-dialog-close { border-color: var(--ui-border); color: var(--ui-text); background: var(--ui-soft); }
.consent-check { border: 1px solid var(--ui-border); color: var(--ui-text); background: var(--ui-soft); }
.consent-check:hover { border-color: var(--ui-accent); background: var(--ui-accent-soft); }
.service-availability-notice { border: 1px solid var(--ui-border); border-radius: 16px; color: var(--ui-text); background: var(--ui-soft); box-shadow: var(--ui-shadow); font-weight: 500; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --ui-page: #101e2d; --ui-surface: #182b3e; --ui-soft: #20354b;
    --ui-text: #e6f0fa; --ui-muted: #a7bdd4; --ui-border: #364d65;
    --ui-accent: #b6d2ef; --ui-accent-ink: #172f49; --ui-accent-soft: #293f58;
    --ui-shadow: 0 8px 32px rgba(4,13,23,.12);
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .plain-button { transition: none; }
  .plain-button:is(:hover,:active) { transform: none; }
}
