/* Codeness design tokens — shared by LP and dashboard */
:root {
  --paper: #f5f7fc;
  --paper-2: #eaeef7;
  --card: #ffffff;
  --ink: #141a3a;
  --ink-2: #434a6b;
  --muted: #6f7698;
  --line: #dde2ef;
  --accent: #2f5bff;
  --accent-ink: #ffffff;
  --accent-soft: #e1e7ff;
  --ok: #1f9d55;
  --ok-soft: #dcf3e5;
  --warn: #b7791f;
  --warn-soft: #faefd8;
  --bad: #d9342b;
  --bad-soft: #fbe0de;
  --run: #7a4dff;
  --run-soft: #ece4ff;
  --code-bg: #14161a;
  --code-ink: #e6e3dc;
  --radius: 10px;
  --shadow: 0 1px 0 rgba(21, 23, 27, 0.04), 0 8px 24px -12px rgba(21, 23, 27, 0.18);
  --font: "Archivo", "Zen Kaku Gothic New", system-ui, -apple-system, "Hiragino Sans", sans-serif;
  --mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper: #11162a;
    --paper-2: #1a2036;
    --card: #171d31;
    --ink: #eef1fb;
    --ink-2: #b9c1dd;
    --muted: #8189a8;
    --line: #262e48;
    --accent: #3d6bff;
    --accent-soft: #1b2756;
    --ok: #3ccf7a; --ok-soft: #12321f;
    --warn: #f0b44c; --warn-soft: #33280f;
    --bad: #ff6b63; --bad-soft: #3a1a1c;
    --run: #9b7bff; --run-soft: #261d4a;
    --code-bg: #0b0f1e;
    --shadow: 0 1px 0 rgba(0,0,0,.25), 0 12px 32px -16px rgba(0,0,0,.6);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
    --paper: #11162a;
    --paper-2: #1a2036;
    --card: #171d31;
    --ink: #eef1fb;
    --ink-2: #b9c1dd;
    --muted: #8189a8;
    --line: #262e48;
    --accent: #3d6bff;
    --accent-soft: #1b2756;
    --ok: #3ccf7a; --ok-soft: #12321f;
    --warn: #f0b44c; --warn-soft: #33280f;
    --bad: #ff6b63; --bad-soft: #3a1a1c;
    --run: #9b7bff; --run-soft: #261d4a;
    --code-bg: #0b0f1e;
    --shadow: 0 1px 0 rgba(0,0,0,.25), 0 12px 32px -16px rgba(0,0,0,.6);
    color-scheme: dark;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--paper); color: var(--ink); font-family: var(--font); font-size: 15px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
code, pre, kbd { font-family: var(--mono); font-size: 0.92em; }
.btn {
  display: inline-flex; align-items: center; gap: 8px; justify-content: center;
  padding: 9px 16px; border-radius: 8px; border: 1px solid var(--line); background: var(--card); color: var(--ink);
  font: 600 14px/1.2 var(--font); cursor: pointer; text-decoration: none; white-space: nowrap; transition: transform .08s, background .15s, border-color .15s;
}
.btn:hover { border-color: var(--ink-2); }
.btn:active { transform: translateY(1px); }
.btn.primary { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.btn.primary:hover { filter: brightness(1.05); }
.btn.dark { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.btn.ghost { background: transparent; border-color: transparent; }
.btn.ghost:hover { background: var(--paper-2); }
.btn.danger { color: var(--bad); }
.btn.sm { padding: 6px 10px; font-size: 13px; }
.btn[disabled] { opacity: .5; pointer-events: none; }
.logo { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; letter-spacing: -0.02em; text-decoration: none; font-size: 18px; }
.logo-mark { width: 28px; height: 28px; border-radius: 7px; flex: none; background: #050819 url(/assets/logo-64.png) center/cover; box-shadow: 0 0 0 1px rgba(255,255,255,.06); }
