/* Tokens compartilhados. A preferência é aplicada por theme.js antes da pintura. */
:root, :root[data-theme="light"] {
  color-scheme: light;
  --page-bg: #f7f9f9; --surface: #fff; --surface-alt: #edf2f3;
  --text: #061018; --text-muted: #54636b; --border: #d9e1e4;
  --accent: #22d3ee; --accent-text: #08788a; --on-accent: #061018; --accent-soft: #e0f8fb;
  --header-bg: rgba(247,249,249,.95); --inverse-bg: #061018; --inverse-text: #f3f8fa; --inverse-muted: #b5c6ce;
  --shadow: 0 28px 64px -34px #24485545;
  --ink: var(--text); --paper: var(--page-bg); --muted: var(--text-muted); --line: var(--border); --primary: var(--accent); --primary-foreground: var(--on-accent);
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --page-bg: #081219; --surface: #0e1c25; --surface-alt: #132731;
  --text: #edf5f8; --text-muted: #a6bac5; --border: #293c46;
  --accent-text: #22d3ee; --accent-soft: #10343d; --header-bg: rgba(8,18,25,.96);
  --shadow: 0 28px 64px -28px #000a;
}
::selection { background: var(--accent); color: var(--on-accent); }
.theme-toggle { display: inline-grid; place-items: center; width: 42px; height: 42px; padding: 0; flex: 0 0 42px; border: 1px solid var(--border); border-radius: 50%; background: transparent; color: var(--text); cursor: pointer; transition: background .2s, border-color .2s; }
.theme-toggle:hover { background: var(--accent-soft); border-color: var(--accent-text); }
.theme-toggle-icon { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.theme-toggle:empty::before { content: "◐"; }
[data-theme="dark"] .button-dark { background: var(--accent); color: var(--on-accent); }
[data-theme="dark"] .button-dark:hover { background: #85ebf8; }
[data-theme="dark"] .site-blueprint { background: #10242e; }
[data-theme="dark"] .blueprint-browser { border-color: #35515e; }
[data-theme="dark"] .hero-studio { background: #112832; }
[data-theme="dark"] .studio-mark { color: #193b49; }
[data-theme="dark"] .hero-copy h1 > span { color: var(--accent); }
[data-theme="dark"] .hero-copy h1 > span::after { opacity: .18; }
[data-theme="dark"] .group-bridge { background: #10252e; }
[data-theme="dark"] .price-card { border-color: #48616e; }
@media (max-width:540px) { .theme-toggle { width:37px; height:37px; flex-basis:37px; } }
@media (prefers-reduced-motion: reduce) { .theme-toggle { transition: none; } }
