/* MMP SDK Hub: "component datasheet" identity.
   Structure borrowed from electronic component datasheets (TI, Microchip, Bosch Sensortec):
   a title block on every sheet with part number and sheet number, pinout diagrams with a notched
   chip body, "electrical characteristics" tables with dark header rows, and ordering-information
   codes. White sheets on a bench-grey page, graphite ink, one amber signal colour. */
:root {
  --bench: #ecebe7;      /* page */
  --sheet: #ffffff;
  --ink: #23262b;        /* graphite */
  --ink-2: #3d4148;
  --muted: #62666e;
  --rule: #d7d6d1;
  --rule-2: #a9aaa6;
  --amber: #f2a900;      /* signal: fills and rules only, never body text */
  --amber-ink: #8a5d00;  /* amber dark enough for text */
  --amber-tint: #fff4d6;
  --ok: #23262b;
  --sans: "Chivo", "Helvetica Neue", Arial, sans-serif;
  --mono: "Chivo Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bench); color: var(--ink); font: 400 16.5px/1.6 var(--sans); }
img, svg { max-width: 100%; }
a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--amber); text-decoration-thickness: 2px; text-underline-offset: 3px; }
a:hover { background: var(--amber-tint); }
code { font-family: var(--mono); font-size: .88em; background: #f1f1ee; border: 1px solid var(--rule); padding: 0 4px; overflow-wrap: anywhere; }
pre { font-family: var(--mono); font-size: 13.5px; background: #f6f6f3; border: 1px solid var(--rule); padding: 14px; overflow-x: auto; }
h1, h2, h3 { font-family: var(--sans); font-weight: 800; line-height: 1.1; margin: 0 0 .5em; letter-spacing: -.01em; }
h1 { font-size: clamp(34px, 5.4vw, 60px); font-weight: 900; }
h2 { font-size: clamp(23px, 2.9vw, 31px); }
h3 { font-size: 19px; margin-top: 1.4em; }
p { margin: 0 0 1em; }
ul, ol { padding-left: 1.25em; }
li { margin-bottom: .35em; }
.wrap { width: min(1180px, 100% - 32px); margin-inline: auto; }
[hidden] { display: none !important; }
.mono { font-family: var(--mono); }

/* header: a title-block strip */
.top { background: var(--ink); color: #fff; }
.top .wrap { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 0; flex-wrap: wrap; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; font: 900 21px/1 var(--sans); white-space: nowrap; }
.brand:hover { background: none; color: #fff; }
.brand svg { width: 34px; height: 34px; flex: none; }
.brand small { display: block; font: 400 10.5px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: #c9cacc; margin-top: 4px; }
.nav { display: flex; gap: 0; flex-wrap: wrap; }
.nav a { color: #fff; text-decoration: none; font: 500 13px/1 var(--mono); text-transform: uppercase; letter-spacing: .06em; padding: 9px 10px; border-bottom: 2px solid transparent; }
.nav a:hover { background: none; border-bottom-color: var(--amber); }
.nav a[aria-current="page"] { color: var(--amber); border-bottom-color: var(--amber); }

/* sheets */
main { padding: 22px 0 30px; }
.sheet { background: var(--sheet); border: 1px solid var(--rule-2); margin: 0 auto 18px; width: min(1180px, 100% - 32px); }
.tb { display: grid; grid-template-columns: auto 1fr auto; border-bottom: 1px solid var(--ink); font: 500 11px/1 var(--mono); text-transform: uppercase; letter-spacing: .08em; }
.tb > * { padding: 8px 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tb b { background: var(--ink); color: #fff; font-weight: 600; }
.tb span { color: var(--muted); }
.tb i { font-style: normal; border-left: 1px solid var(--rule-2); color: var(--ink-2); }
.body { padding: 26px 28px 28px; }
.hero .body { padding-top: 30px; }
.hero h1 { max-width: 20ch; }
.hero h1 em { font-style: normal; box-shadow: inset 0 -.28em 0 var(--amber); }
.lede { font-size: 19px; color: var(--ink-2); max-width: 64ch; }
.crumb { font: 500 12px/1.4 var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: 14px; }
.crumb a { color: var(--muted); }
.answer { border: 1px solid var(--ink); border-left: 6px solid var(--amber); padding: 14px 18px; margin-top: 18px; max-width: 82ch; }
.answer .lbl { display: block; font: 600 11px/1 var(--mono); text-transform: uppercase; letter-spacing: .1em; margin-bottom: 8px; }
.answer p { margin: 0; }
.sub { color: var(--ink-2); max-width: 72ch; }
.note { font-size: 14px; color: var(--muted); }
.checked { font: 500 12px/1.4 var(--mono); color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.prose { max-width: 74ch; overflow-wrap: break-word; }
.prose h2 { margin-top: 1.5em; }
.prose h2:first-child { margin-top: 0; }
.term { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 10px 0; margin: 0 0 1em; }

/* status markers: filled, half, outline, none */
.st { display: inline-flex; align-items: center; gap: 7px; font: 500 12.5px/1.2 var(--mono); white-space: nowrap; }
.st i { width: 12px; height: 12px; border: 2px solid var(--ink); flex: none; }
.st-official i { background: var(--amber); }
.st-documented i { background: linear-gradient(90deg, var(--amber) 50%, #fff 50%); }
.st-community i { background: #fff; }
.st-none { color: var(--muted); }
.st-none i { border-color: var(--rule-2); border-style: dashed; }
.legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 10px 0 14px; }

/* data tables: "electrical characteristics" */
.scroller { overflow-x: auto; border: 1px solid var(--ink); max-width: 100%; }
table { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 14px; }
th, td { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--rule); background: var(--sheet); }
thead th { background: var(--ink); color: #fff; font: 600 11px/1.3 var(--mono); text-transform: uppercase; letter-spacing: .07em; vertical-align: bottom; white-space: nowrap; }
tbody tr:last-child td, tbody tr:last-child th { border-bottom: 0; }
.data td { min-width: 120px; }
.data td.pkg { min-width: 190px; }
.data td.nt { min-width: 230px; font-size: 13px; color: var(--ink-2); }
.data tr > :first-child, .matrix tr > :first-child { position: sticky; left: 0; z-index: 2; width: 168px; min-width: 168px; max-width: 168px; font-weight: 700; box-shadow: 1px 0 0 var(--ink), 8px 0 10px -8px rgba(35, 38, 43, .28); }
.data thead tr > :first-child, .matrix thead tr > :first-child { z-index: 3; background: var(--ink); }
.vh { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; color: var(--ink); }
.vh img { flex: none; }
.matrix td { min-width: 112px; }
.matrix td a { text-decoration: none; }
.dim { color: var(--muted); }
.code { font-family: var(--mono); font-size: 12.5px; overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .data tr > :first-child, .matrix tr > :first-child { width: 118px; min-width: 118px; max-width: 118px; font-size: 13px; }
  .data td { min-width: 112px; }
  .matrix td { min-width: 100px; }
}

/* pinout diagram */
.pinout { display: grid; grid-template-columns: 1fr minmax(150px, 210px) 1fr; align-items: stretch; margin: 8px 0 6px; }
.pins { list-style: none; margin: 0; padding: 14px 0; display: flex; flex-direction: column; justify-content: space-around; gap: 6px; }
.pins li { display: flex; align-items: center; gap: 8px; margin: 0; font: 500 13px/1.2 var(--mono); }
.pins.l li { flex-direction: row-reverse; text-align: right; }
.pins li::after { content: ""; height: 2px; background: var(--ink); flex: 1; min-width: 14px; }
.pins .n { color: var(--muted); font-size: 11px; width: 18px; text-align: center; }
.pins a { text-decoration: none; }
.pins a:hover { text-decoration: underline; text-decoration-color: var(--amber); }
.pins .st { gap: 0; }
.chip { position: relative; background: var(--ink); color: #fff; padding: 26px 14px 16px; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; border-radius: 3px; }
.chip::before { content: ""; position: absolute; top: -1px; left: 50%; width: 26px; height: 13px; margin-left: -13px; background: var(--sheet); border-radius: 0 0 13px 13px; }
.chip b { font: 700 13px/1.2 var(--mono); color: var(--amber); letter-spacing: .08em; }
.chip strong { font: 800 19px/1.15 var(--sans); margin: 8px 0; }
.chip span { font: 400 11px/1.3 var(--mono); color: #c9cacc; text-transform: uppercase; letter-spacing: .06em; }
@media (max-width: 720px) {
  .pinout { grid-template-columns: 1fr; }
  .chip { order: -1; }
  .pins { padding: 10px 0 0; }
  .pins.l li { flex-direction: row; text-align: left; }
  .pins li::after { display: none; }
}

/* picker */
.picker .seg { display: flex; flex-wrap: wrap; gap: 0; border: 1px solid var(--ink); margin: 6px 0 14px; }
.picker .seg button { font: 600 13px/1 var(--mono); background: var(--sheet); color: var(--ink); border: 0; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); margin-bottom: -1px; padding: 12px 14px; cursor: pointer; flex: 1 1 auto; text-align: center; }
.picker .seg button:hover { background: var(--amber-tint); }
.picker .seg button[aria-pressed="true"] { background: var(--amber); color: var(--ink); }
.picker .bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; align-items: center; margin-bottom: 10px; }
.picker label.check { display: inline-flex; gap: 8px; align-items: center; font: 500 13px/1.2 var(--mono); }
.picker label.check input { width: 16px; height: 16px; accent-color: var(--ink); }
.picker .result { font-weight: 700; margin: 14px 0 0; }
.step { font: 600 11px/1 var(--mono); text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }

/* lists */
.index { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--ink); }
.index li { margin: 0; border-bottom: 1px solid var(--rule); }
.index a { display: grid; grid-template-columns: 92px 1fr auto; gap: 14px; align-items: baseline; padding: 12px 4px; text-decoration: none; }
.index a:hover { background: var(--amber-tint); }
.index code, .index .pn { font: 600 12px/1.2 var(--mono); color: var(--amber-ink); background: none; border: 0; padding: 0; }
.index b { display: block; }
.index span { color: var(--muted); font-size: 14.5px; }
.index em { font: 500 12px/1.2 var(--mono); font-style: normal; color: var(--ink-2); white-space: nowrap; }
@media (max-width: 640px) { .index a { grid-template-columns: 1fr; gap: 4px; } }

.checklist { list-style: none; padding: 0; margin: 0; counter-reset: c; border-top: 1px solid var(--ink); }
.checklist li { display: grid; grid-template-columns: 26px 170px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--rule); margin: 0; }
.checklist li::before { content: ""; width: 16px; height: 16px; border: 2px solid var(--ink); margin-top: 3px; }
.checklist b { font: 700 14px/1.4 var(--sans); }
.checklist li > * { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 640px) { .checklist li { grid-template-columns: 26px minmax(0, 1fr); } .checklist li > div { grid-column: 2; } }

.kv { display: grid; grid-template-columns: 200px 1fr; border-top: 1px solid var(--ink); }
.kv > div { min-width: 0; overflow-wrap: anywhere; padding: 10px 6px; border-bottom: 1px solid var(--rule); }
.kv > div:nth-child(odd) { font: 600 12px/1.4 var(--mono); text-transform: uppercase; letter-spacing: .05em; color: var(--ink-2); }
@media (max-width: 640px) { .kv { grid-template-columns: 1fr; } .kv > div:nth-child(odd) { border-bottom: 0; padding-bottom: 0; } }

.sources { font: 400 12.5px/1.5 var(--mono); padding-left: 1.2em; }
.sources li, .sources a { overflow-wrap: anywhere; }

/* FAQ */
.faq details { border-bottom: 1px solid var(--rule); padding: 12px 0; }
.faq details:first-child { border-top: 1px solid var(--ink); }
.faq summary { cursor: pointer; font-weight: 700; list-style: none; display: flex; gap: 10px; }
.faq summary::before { content: "+"; font: 700 15px/1.4 var(--mono); color: var(--amber-ink); width: 12px; flex: none; }
.faq details[open] summary::before { content: "\2212"; }
.faq summary::-webkit-details-marker { display: none; }
.faq p { margin: 8px 0 0 22px; color: var(--ink-2); }

.btn { display: inline-block; font: 600 13px/1 var(--mono); text-transform: uppercase; letter-spacing: .05em; padding: 13px 16px; background: var(--ink); color: #fff; text-decoration: none; border: 1px solid var(--ink); }
.btn:hover { background: var(--amber); color: var(--ink); }
.btn.ghost { background: var(--sheet); color: var(--ink); }
.cta-row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }

/* footer */
.foot { background: var(--sheet); border-top: 1px solid var(--ink); padding: 30px 0 22px; font-size: 14px; }
.foot .cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 26px; }
.foot h4 { font: 600 11px/1 var(--mono); text-transform: uppercase; letter-spacing: .1em; margin: 0 0 12px; color: var(--muted); }
.foot ul { list-style: none; padding: 0; margin: 0; }
.foot li { margin-bottom: 6px; }
.foot a { text-decoration: none; }
.foot a:hover { text-decoration: underline; text-decoration-color: var(--amber); }
.foot .brand { color: var(--ink); }
.foot .brand small { color: var(--muted); }
.colophon { border-top: 1px solid var(--rule); margin-top: 22px; padding-top: 14px; font: 400 12px/1.5 var(--mono); color: var(--muted); }

@media (max-width: 860px) {
  .two { grid-template-columns: 1fr; }
  .foot .cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  .body { padding: 20px 16px 22px; }
  .sheet { width: calc(100% - 16px); }
  .tb { grid-template-columns: auto 1fr; }
  .tb i { display: none; }
  .lede { font-size: 17px; }
  .foot .cols { grid-template-columns: 1fr; }
  .nav a { padding: 8px 7px; font-size: 12px; }
}
