/* TensorBlock's live Signal palette and type, applied without layout changes. */
@font-face {
  font-family: "TensorBlock Instrument";
  src: url("fonts/tb-instrument-sans-regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  size-adjust: 101.2%;
  font-display: swap;
}
@font-face {
  font-family: "TensorBlock Instrument";
  src: url("fonts/tb-instrument-sans-medium.ttf") format("truetype");
  font-style: normal;
  font-weight: 500;
  size-adjust: 101.2%;
  font-display: swap;
}
@font-face {
  font-family: "TensorBlock Instrument";
  src: url("fonts/tb-instrument-sans-semibold.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  size-adjust: 101.2%;
  font-display: swap;
}
@font-face {
  font-family: "TensorBlock Plex";
  src: url("fonts/tb-ibm-plex-mono.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
/* Match the compact chat metrics without resizing their boxes. */
@font-face {
  font-family: "TensorBlock Instrument Chat";
  src: url("fonts/tb-instrument-sans-regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  size-adjust: 100%;
  font-display: swap;
}

:root, :root[data-theme="light"] {
  --page: #eaeae5;
  --band: #e7e5e4;
  --surface: #f5f5f4;
  --surface-2: #eaeae5;
  --surface-3: #e7e5e4;
  --border: #d6d3d1;
  --border-strong: #a8a29e;
  --fg: #1c1c1c;
  --fg-2: #6f6863;
  --fg-3: #6f6863;
  --accent: #292524;
  --accent-fg: #f5f5f4;
  --accent-soft: #e7e5e4;
  --accent-line: #a8a29e;
  --accent-fill: #a65f40;
  --accent-fill-hover: #974f32;
  --accent-fill-fg: #ffffff;
  --good: #23764b;
  --good-soft: #e9efe8;
  --warn: #826d46;
  --warn-soft: #efebe2;
  --k-model: #6f6863;
  --k-tool: #a89b85;
  --k-sub: #99918a;
  --k-harness: #7d8379;
  --k-verify: #6e8a75;
  --grid-line: #d6d3d1;
  --shadow: none;
  --shadow-lg: none;
  --radius: 10px;
  --radius-sm: 6px;
  --bui-control-radius: 6px;
  --bui-window-radius: 10px;
  --font-ui: "TensorBlock Instrument", Helvetica, sans-serif;
  --font-mono: "TensorBlock Plex", "Courier New", monospace;
}

body::before {
  background: radial-gradient(ellipse 52% 60% at 8% 20%, #dfded999, transparent 75%), radial-gradient(ellipse 48% 52% at 88% 72%, #e2e1da80, transparent 76%), radial-gradient(ellipse 36% 40% at 70% 12%, #e6e4e080, transparent 80%);
}
.ring-fallback i { border-color: #a8a29e2b; }
.ring-fallback i:nth-child(2) { border-color: #a8a29e4d; }
.ring-fallback::before, .ring-fallback::after { border-color: #78716c80; }
[data-bui-component] {
  --bui-shadow-btn: 0 0 0 1px var(--border);
  --bui-shadow-card: 0 0 0 1px var(--border);
}

.nav { border-radius: var(--radius); border-color: var(--border); background: #f5f5f4d6; box-shadow: none; }
.demo-chat .chat-body { font-family: "TensorBlock Instrument Chat", Helvetica, sans-serif; }
.nav-links a, .nav-actions .nav-signin { color: var(--fg-2); }
.nav-links a:hover, .nav-links a.active { background: var(--accent-soft); color: var(--fg); }
.menu-panel { background: var(--surface); }
.btn, [data-bui-component="Button"], .nav-links a, .menu summary, .menu-panel,
.replay, .copy, .pill, [data-bui-component="StatusPill"] { border-radius: var(--radius-sm); }
.pill, [data-bui-component="StatusPill"], .hero-tag { border-radius: 4px; }
.btn.primary,
[data-bui-component="Button"][data-bui-variant="primary"] { background: var(--accent-fill); border-color: var(--accent-fill); color: var(--accent-fill-fg); box-shadow: none; }
.btn.primary:hover,
[data-bui-component="Button"][data-bui-variant="primary"]:hover { background: var(--accent-fill-hover); border-color: var(--accent-fill-hover); color: var(--accent-fill-fg); filter: none; opacity: 1; }
.btn.primary:focus-visible { outline-color: #974f32; }
[data-bui-component="StatusPill"] { box-shadow: 0 0 0 1px currentColor; }

h1, h2, h3, .price-num b { font-weight: 400; }
.h1-soft, h2 .line, .hero .lead { color: var(--fg-2); }
.hero-grid { border-radius: var(--radius); border-color: var(--border); background: #f5f5f4b3; box-shadow: none; }
#secrets .wrap, #install .wrap { border-radius: var(--radius); border-color: var(--border); background: #f5f5f4d9; }
.term, .tabs-window, .chat, .toast, .card, .trace, .use, .price,
.mini-code, .mini-site, .sched, .mini-page .chat, .improve-diff { border-radius: var(--radius); }
.card > .card-head { border-radius: var(--radius) var(--radius) 0 0; }
.improve > .improve-actions { border-radius: 0 0 var(--radius) var(--radius); }
.toast, .use, .trace, .price { background: var(--surface); box-shadow: none; }
.chat, .card { background: var(--surface); }
.card-head, .loop-row, .loop, .improve-compare { background: var(--surface); }
.term-bar, .chat-head { background: var(--surface-2); }
.term-title b { color: var(--fg); }
.lights i { background: #a8a29e; }
.bubble, .msg { border-radius: var(--radius-sm); }
.bubble { border-color: var(--border-strong); background: #e7e5e4; color: var(--fg); }
.msg.me { background: #e7e5e4; color: #292524; }
.msg.bot { background: #efeeea; color: var(--fg-2); border-color: var(--border); }
.demo-composer { border-radius: var(--radius-sm); background: var(--surface-2); }
.toast-icon { border-radius: var(--radius-sm); background: var(--accent-soft); color: var(--accent); }
.toast-swap .btn { border-radius: var(--radius-sm); }
.carry-arrow { background: #e7e5e4; color: var(--fg-2); border-color: var(--border-strong); }
.mini-site, .sched { background: var(--surface); }
.mini-bar, .sched-head { background: #eaeae5; }
.mini-url { border-radius: var(--radius-sm); background: var(--surface); }
.mini-page { background: var(--surface-2); }
.sp-track i, .metric-bar i { border-radius: 2px; }

/* Neutral dark technical surfaces remain local to their code windows. */
.term, .mini-code, .tabs-window, .improve-diff {
  --code-bg: #1c1917;
  --code-bar: #292524;
  --code-border: #44403c;
  --code-fg: #eaeae5;
  --code-dim: #a8a29e;
  --code-accent: #d6d3d1;
  --code-green: #86c7a0;
  --code-string: #c4c9b6;
  --surface: var(--code-bg);
  --surface-2: var(--code-bar);
  --surface-3: #44403c;
  --fg: var(--code-fg);
  --fg-2: var(--code-dim);
  --fg-3: var(--code-dim);
  --border: var(--code-border);
  --border-strong: #78716c;
  --good: var(--code-green);
  --good-soft: #233329;
  --shadow: none;
  background: var(--code-bg);
  color: var(--code-fg);
  border-color: var(--code-border);
  box-shadow: none;
}
#deploy .mini-code {
  --code-accent: #8fa9ff;
  --code-string: #9bdfb3;
}
.term .term-bar { background: var(--code-bar); }
.term .term-title b { color: var(--code-fg); }
.term .lights i { background: #78716c; }
.demo-app .bubble { border-color: #57534e; background: #34302c; color: var(--code-fg); }
.demo-app .demo-composer { background: #292524; color: var(--code-dim); }
.demo-app .replay:hover { border-color: #78716c; }
.tabs-window, .tabs-window[data-bui-component="CodeBlock"] { border-radius: var(--radius); background: var(--code-bg); box-shadow: 0 0 0 1px var(--code-border); }
.tab-bar[data-bui-component="SegmentedControl"],
.tab-bar[data-bui-component="SegmentedControl"] > .bui-segment-thumb,
.tab-panel .copy { border-radius: var(--radius-sm); }
