
:root { color-scheme:light; --paper:#fcfcfc; --ink:#25272b; --muted:#646871; --slate:#606673; --line:#cdd0d5; --link:#414f68; --panel:#f0f1f3; --surface:#fff; --visited:#625b70; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:14px/1.65 Verdana,Arial,sans-serif; }
a { color:var(--link); text-decoration:underline; text-underline-offset:2px; }
a:visited { color:var(--visited); }
a:hover { color:var(--ink); }
a:focus-visible { outline:2px solid var(--slate); outline-offset:4px; }
.page { max-width:1000px; margin:42px auto; padding:0 32px; }
header { border-bottom:2px solid var(--slate); padding-bottom:15px; }
header a { color:var(--ink); text-decoration:none; font:bold 27px/1.25 Verdana,Arial,sans-serif; letter-spacing:-1px; }
.layout { display:grid; grid-template-columns:150px minmax(0,1fr); gap:42px; padding-top:28px; }
aside { color:var(--muted); }
.logo { color:var(--slate); width:112px; margin:0 0 26px; }
.logo svg { width:100%; height:auto; display:block; }
nav a { display:block; padding:5px 0; }
nav { font-size:13px; }
.aside-label { margin:26px 0 6px; color:var(--muted); font-size:11px; }
aside .early { margin-top:30px; padding-top:12px; border-top:1px solid var(--line); font-size:12px; line-height:1.6; }
h1 { font:bold 24px/1.3 Verdana,Arial,sans-serif; margin:0 0 15px; letter-spacing:-.6px; }
h2 { font:bold 16px/1.4 Verdana,Arial,sans-serif; margin:29px 0 10px; padding-bottom:5px; border-bottom:1px solid var(--line); }
p { margin:0 0 14px; }
.opening { font-size:16px; line-height:1.65; }
ul { margin:10px 0 17px; padding-left:21px; }
li { padding:2px 0; }
.components { margin:13px 0 18px; border-collapse:collapse; width:100%; font-size:13px; }
.components th,.components td { padding:9px 11px; text-align:left; vertical-align:top; border:1px solid var(--line); }
.components th { font-weight:normal; width:133px; background:var(--panel); white-space:nowrap; }
.components td { background:var(--surface); }
.status { color:var(--muted); font-size:12px; margin:20px 0 0; }
footer { margin-top:30px; padding-top:12px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; }
.skip { position:absolute; left:-9999px; }.skip:focus { left:12px; top:8px; background:var(--surface); padding:8px; }
@media(max-width:650px) { .page { margin:24px auto; padding:0 20px; } header a { font-size:24px; } .layout { grid-template-columns:1fr; gap:24px; padding-top:20px; } aside { display:flex; flex-wrap:wrap; align-items:center; gap:14px 20px; border-bottom:1px solid var(--line); padding-bottom:16px; } .logo { width:53px; margin:0; } nav { display:flex; flex-wrap:wrap; gap:6px 18px; flex:1; } nav a { padding:0; } aside .aside-label,aside .early { display:none; } .source-link { font-size:12px; } h1 { font-size:23px; } .opening { font-size:15px; } .components th { width:112px; } .components th,.components td { padding:8px; font-size:12px; } }
@media (prefers-color-scheme:dark) {
:root { color-scheme:dark; --paper:#202329; --ink:#e0e2e6; --muted:#a6acb6; --slate:#aeb5c1; --line:#454b55; --link:#b7c8e1; --panel:#2c3139; --surface:#24282f; --visited:#c7bddb; }
}

nav a[aria-current="page"] { color:var(--ink); font-weight:bold; text-decoration:none; }
code,pre { font-family:Consolas,'Courier New',monospace; font-size:13px; }
pre { background:var(--panel); border:1px solid var(--line); padding:12px 14px; overflow:auto; line-height:1.7; }
.hardware-table { width:100%; border-collapse:collapse; font-size:12px; line-height:1.6; }
.hardware-table th,.hardware-table td { border:1px solid var(--line); padding:9px; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.hardware-table th { background:var(--panel); font-weight:bold; }
.hardware-table td { background:var(--surface); }
.hardware-page .page { max-width:1200px; }
.hardware-table td:first-child { width:110px; }
.hardware-table td:nth-child(2) { width:210px; }
.hardware-table td:nth-child(3) { width:90px; }
.hardware-table td:nth-child(4) { width:170px; }
.hardware-table code { font-size:11px; }
.hardware-table ul { list-style:none; padding:0; margin:0; }
.hardware-table caption { text-align:left; margin:12px 0; color:var(--muted); }
.layout > * { min-width:0; }
.table-scroll { overflow:auto; max-width:100%; }
.module-index { font-size:12px; line-height:2; }
.module-index a { display:inline-block; margin-right:12px; }
summary { cursor:pointer; color:var(--link); }
small,.small { font-size:12px; color:var(--muted); }
section { scroll-margin-top:20px; }
@media(max-width:650px) { .hardware-table { min-width:780px; } .layout { gap:20px; } nav { flex-basis:calc(100% - 80px); } }

.hardware-page .page { max-width:1200px; }
.hardware-table { table-layout:fixed; }
.hardware-table th,.hardware-table td { width:auto !important; }
.hardware-table th:first-child { width:29%; }
.hardware-table th:nth-child(2) { width:23%; }
.hardware-table th:nth-child(3) { width:13%; }
h3 { font-size:14px; margin:21px 0 9px; }
.hardware-section { margin-top:30px; }
.hardware-section h2 { display:flex; justify-content:space-between; gap:15px; }
.hardware-filters { margin:21px 0 15px; padding:15px; border:1px solid var(--line); background:var(--panel); }
.hardware-filters label { display:block; font-size:12px; }
.hardware-filters input,.hardware-filters select,.hardware-filters button { font:inherit; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:2px; padding:6px; }
.hardware-filters select { display:block; width:100%; margin-top:4px; min-width:0; }
.hardware-search > div { display:flex; align-items:center; gap:10px; margin-top:4px; }
.hardware-search input { min-width:0; flex:1; }
.hardware-search button { padding:6px 13px; cursor:pointer; }
.hardware-search a { font-size:12px; }
.filter-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:13px; }
.view-options { margin-top:13px; font-size:12px; }
.hardware-count { font-size:12px; color:var(--muted); }
.hardware-contents { display:flex; flex-wrap:wrap; column-gap:18px; row-gap:4px; border-bottom:1px solid var(--line); padding-bottom:17px; }
.hardware-contents a { display:inline; font-size:12px; }
.hardware-contents span { color:var(--muted); }
@media(max-width:650px) { .filter-row { grid-template-columns:1fr; gap:9px; } .hardware-table { min-width:650px; } .hardware-filters { padding:12px; } }
