:root {
  --bg: #fbfaf7; --panel: #ffffff; --ink: #1d232a; --muted: #5f6b77; --line: #e3e0d8;
  --accent: #1f5f8b; --accent-ink: #ffffff; --mark: #fff0a8; --code: #f2efe8;
  --sensor: #b45309; --units: #a21caf; --barg: #15803d; --sn: #b91c1c; --target: #fff6c2;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #14181d; --panel: #1b2027; --ink: #e6e8ea; --muted: #9aa5b1; --line: #2c333c;
    --accent: #6fb0e0; --accent-ink: #0b1620; --mark: #5a4b12; --code: #232a32;
    --sensor: #f0a54a; --units: #e08ce8; --barg: #6bd28f; --sn: #f08080; --target: #3d3612;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #14181d; --panel: #1b2027; --ink: #e6e8ea; --muted: #9aa5b1; --line: #2c333c;
  --accent: #6fb0e0; --accent-ink: #0b1620; --mark: #5a4b12; --code: #232a32;
  --sensor: #f0a54a; --units: #e08ce8; --barg: #6bd28f; --sn: #f08080; --target: #3d3612;
  color-scheme: dark;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font: 16px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
a { color: var(--accent); }
header.top {
  display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap;
  padding: 0.8rem 16px; border-bottom: 1px solid var(--line); background: var(--panel);
}
header.top h1 { font-size: 1.15rem; margin: 0; }
header.top h1 a { color: inherit; text-decoration: none; }
header.top nav { display: flex; gap: 0.4rem 1rem; flex-wrap: wrap; margin-left: auto; align-items: baseline; font-size: 0.95rem; }
header.top nav a, header.top nav button { white-space: nowrap; }
header.top form { display: inline; margin: 0; }
.linklike { background: none; border: 0; color: var(--accent); font: inherit; cursor: pointer; padding: 0; text-decoration: underline; }
main { overflow-wrap: anywhere; max-width: 980px; margin: 0 auto; padding: 1.2rem 16px 4rem; }
.searchbar { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.searchbar input[type=search] {
  flex: 1 1 320px; min-width: 0; padding: 0.7rem 0.9rem; font-size: 1.05rem;
  border: 1px solid var(--line); border-radius: 8px; background: var(--panel); color: var(--ink);
}
button.primary, button.secondary {
  padding: 0.65rem 1.1rem; font-size: 1rem; border-radius: 8px; cursor: pointer; border: 1px solid var(--accent);
}
button.primary { background: var(--accent); color: var(--accent-ink); }
button.secondary { background: transparent; color: var(--accent); }
button:disabled { opacity: 0.5; cursor: default; }
.scopes { display: flex; gap: 1.2rem; margin: 0.7rem 0 0; color: var(--muted); font-size: 0.95rem; flex-wrap: wrap; }
.vnote { margin: 0.7rem 0 0; padding: 0.4rem 0.7rem; background: var(--code); border-radius: 6px; font-size: 0.95rem; }
.hint { color: var(--muted); font-size: 0.9rem; margin: 0.6rem 0 0; }
.hint code { background: var(--code); padding: 0 0.25em; border-radius: 3px; }
section.block { margin-top: 1.8rem; }
section.block > h2 { font-size: 1rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); margin: 0 0 0.6rem; }
.answer {
  background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 1rem 1.2rem;
}
.answer .body > :first-child { margin-top: 0; }
.answer .body code, .md-table code { background: var(--code); padding: 0 0.25em; border-radius: 3px; font-size: 0.92em; }
.answer .body table { border-collapse: collapse; }
.answer .body th, .answer .body td { border: 1px solid var(--line); padding: 0.25rem 0.5rem; }
.answer .cite { font-size: 0.8em; vertical-align: super; text-decoration: none; padding: 0 0.1em; }
.answer .status { color: var(--muted); font-style: italic; }
.answer .error { color: var(--sn); }
.answer .model { color: var(--muted); font-size: 0.8rem; margin: 0.8rem 0 0; }
.sources { margin-top: 1rem; border-top: 1px solid var(--line); padding-top: 0.6rem; font-size: 0.9rem; }
.sources summary { cursor: pointer; color: var(--muted); }
.sources ol { padding-left: 1.6rem; margin: 0.5rem 0 0; }
.sources li { margin: 0.35rem 0; }
.sources li:target { background: var(--target); }
.sources .snip { color: var(--muted); display: block; max-height: 4.6em; overflow: hidden; }
.paper { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 0.8rem 1rem; margin-bottom: 0.7rem; }
.paper .head { display: flex; gap: 0.6rem; align-items: baseline; flex-wrap: wrap; }
.paper .head a.t { font-weight: 600; text-decoration: none; }
.paper .meta { color: var(--muted); font-size: 0.88rem; }
.paper .hit { margin: 0.5rem 0 0; font-size: 0.93rem; }
.paper .hit a.pg { font-size: 0.82rem; white-space: nowrap; margin-right: 0.4rem; }
.paper .note { font-size: 0.88rem; color: var(--muted); margin-top: 0.4rem; }
mark { background: var(--mark); color: inherit; padding: 0 0.1em; border-radius: 2px; }
.tablewrap { overflow-x: auto; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; }
.md-table { border-collapse: collapse; width: 100%; font-size: 0.9rem; }
.md-table th, .md-table td { text-align: left; padding: 0.4rem 0.6rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.md-table th { white-space: nowrap; color: var(--muted); font-weight: 600; position: sticky; top: 0; background: var(--panel); }
.md-table td.name a { overflow-wrap: normal; font-family: ui-monospace, Menlo, Consolas, monospace; white-space: nowrap; }
.md-table td.units { color: var(--units); white-space: nowrap; }
.md-table td { overflow-wrap: normal; }
.md-table td.default { white-space: nowrap; }
.md-table td.desc { overflow-wrap: anywhere; min-width: 14rem; }
.md-table tr.gone td { opacity: 0.6; }
.md-table td.ver { white-space: nowrap; color: var(--muted); }
.more { margin-top: 0.5rem; }
.empty { color: var(--muted); }
ul.browse { padding-left: 1.2rem; } ul.browse li { margin: 0.25rem 0; }
a.raw { font-size: 0.8rem; margin-left: 0.6rem; }
pre.md { font-family: ui-monospace, Menlo, Consolas, "DejaVu Sans Mono", "Liberation Mono", monospace; font-size: 0.82rem; line-height: 1.4; overflow-x: auto; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 0.8rem; color: var(--muted); }
pre.md .l { display: block; min-height: 1.4em; }   /* keeps empty lines */
pre.md .l:target { background: var(--target); }
pre.md .base { color: var(--ink); } pre.md .sensor { color: var(--sensor); } pre.md .units { color: var(--units); }
pre.md .barg { color: var(--barg); } pre.md .behavior, pre.md .sn { color: var(--sn); } pre.md .email { color: var(--accent); }
.login { max-width: 360px; margin: 12vh auto; background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 1.5rem; }
.login h1 { font-size: 1.3rem; margin-top: 0; }
.login label { display: block; margin: 0.8rem 0 0.2rem; font-size: 0.9rem; color: var(--muted); }
.login input { width: 100%; padding: 0.6rem; font-size: 1rem; border: 1px solid var(--line); border-radius: 6px; background: var(--bg); color: var(--ink); }
.login button { margin-top: 1.2rem; width: 100%; }
.login .error { color: var(--sn); }
.spin { display: inline-block; width: 0.9em; height: 0.9em; border: 2px solid var(--line); border-top-color: var(--accent); border-radius: 50%; animation: s 0.8s linear infinite; vertical-align: -0.1em; margin-right: 0.4em; }
@keyframes s { to { transform: rotate(360deg); } }

@media (max-width: 640px) {
  .md-table thead { display: none; }
  .md-table, .md-table tbody, .md-table tr, .md-table td { display: block; width: 100%; }
  .md-table tr { padding: 0.55rem 0.75rem; border-bottom: 1px solid var(--line); }
  .md-table td { border: 0; padding: 0.1rem 0; }
  .md-table td.name { font-size: 0.95rem; }
  .md-table td.units, .md-table td.default, .md-table td.ver { display: inline; width: auto; margin-right: 0.8rem; font-size: 0.85rem; }
  .md-table td.default:not(:empty)::before { content: "default "; color: var(--muted); }
  .md-table td.desc { margin-top: 0.15rem; }
  header.top nav { margin-left: 0; }
}

.mdhead { display: flex; align-items: baseline; gap: 0.4rem 1rem; flex-wrap: wrap; }
.mdhead h2 { margin: 0.4rem 0; }
.mdhead a.raw { font-size: 0.9rem; margin: 0; }
.mdnav { margin-left: auto; display: flex; gap: 1rem; font-size: 0.95rem; }
.mdsearch { margin: 0.6rem 0 1rem; }
