/* turlte — shared light styling. Design tokens follow ../hardwarekit (roadmap app). */

:root {
  --bg: oklch(99% .003 270);
  --bg-sub: oklch(97.5% .004 270);
  --surface: #ffffff;
  --surface-2: oklch(98% .003 270);
  --border: oklch(92% .006 270);
  --border-strong: oklch(86% .008 270);
  --fg: oklch(20% .012 270);
  --fg-muted: oklch(45% .012 270);
  --fg-faint: oklch(62% .01 270);
  --accent: oklch(55% .16 265);
  --accent-soft: color-mix(in oklch, var(--accent) 12%, var(--surface));
  --ok: oklch(58% .16 145);
  --warn: oklch(68% .14 75);
  --danger: oklch(55% .18 25);
  --shadow-sm: 0 1px 0 oklch(0% 0 0 / .04), 0 1px 2px oklch(0% 0 0 / .04);
  --shadow-md: 0 1px 0 oklch(0% 0 0 / .04), 0 4px 12px -2px oklch(0% 0 0 / .08), 0 2px 4px -1px oklch(0% 0 0 / .04);
  --radius-sm: 6px;
  --radius: 8px;
  --radius-lg: 12px;
  --mono: "Geist Mono", ui-monospace, "SFMono-Regular", "JetBrains Mono", monospace;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 14px;
  line-height: 1.55;
  color: var(--fg);
  background: var(--bg-sub);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--accent); }
[hidden] { display: none !important; }
.muted { color: var(--fg-muted); }

/* ── top bar ── */
.topbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 20px;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
}
.brand {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 13.5px;
  letter-spacing: -.01em;
  color: var(--fg);
  text-decoration: none;
}
.brand-mark {
  width: 20px;
  height: 20px;
  border-radius: 5px;
  background: var(--accent);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 800;
}
.topbar .spacer { flex: 1; }

/* ── controls ── */
.btn, button, select, input {
  font: inherit;
  font-size: 13px;
  color: var(--fg);
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  padding: 6px 12px;
}
.btn, button { cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.btn:hover, button:hover { background: var(--bg-sub); }
.btn.primary, button.primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn.primary:hover, button.primary:hover { background: color-mix(in oklch, var(--accent) 86%, black); }
button.danger { color: var(--danger); }
input:focus, select:focus { outline: 2px solid var(--accent-soft); border-color: var(--accent); }

/* Segmented toggle (language) */
.seg { display: inline-flex; border: 1px solid var(--border-strong); border-radius: var(--radius-sm); overflow: hidden; }
.seg button { border: none; border-radius: 0; padding: 4px 10px; font-size: 12px; color: var(--fg-muted); }
.seg button[aria-pressed="true"] { background: var(--accent); color: #fff; }

/* ── (i) buttons: the button's parent is followed by a .more block it shows and hides ── */
button.info {
  width: 18px;
  height: 18px;
  padding: 0;
  border-radius: 50%;
  border-color: var(--border-strong);
  color: var(--fg-faint);
  font: italic 700 11px/1 Georgia, serif;
  justify-content: center;
  vertical-align: middle;
  margin-left: 6px;
  flex-shrink: 0;
}
button.info:hover, button.info[aria-expanded="true"] { color: var(--accent); border-color: var(--accent); background: var(--accent-soft); }
.more {
  margin: 8px 0 12px;
  padding: 12px 14px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--fg-muted);
  font-size: 13px;
}
.more > * + * { margin-top: 8px; }

/* ── cards ── */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: 18px 20px;
}
.card h2 { font-size: 14px; font-weight: 600; display: flex; align-items: center; }

/* ── code ── */
code, pre, kbd { font-family: var(--mono); }
:not(pre) > code {
  font-size: .9em;
  background: var(--bg-sub);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 0 4px;
}
pre {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 14px;
  font-size: 12.5px;
  line-height: 1.55;
  overflow-x: auto;
}
.kw  { color: oklch(50% .16 265); }
.str { color: oklch(50% .14 145); }
.num { color: oklch(55% .14 55); }
.key { color: oklch(50% .14 330); }
.cmt { color: var(--fg-faint); }

/* ── tables ── */
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th, td { text-align: left; padding: 6px 10px; border-bottom: 1px solid var(--border); vertical-align: top; }
th { font-size: 11.5px; font-weight: 600; color: var(--fg-muted); background: var(--surface-2); }
tr:last-child td { border-bottom: none; }
.table-scroll { overflow-x: auto; }
