/* /firmware — catalogue rows + the flasher's console. */
.varhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.varhead h3{margin:0}
.variant-title{color:inherit;text-decoration:none}
.variant-title:hover{text-decoration:underline;text-underline-offset:3px}
.variant-summary{font-size:13px;color:var(--muted);line-height:1.55;margin:8px 0;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.detail-link{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:13px;margin:0 0 10px}
.buildrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;
  border-top:1px solid var(--line)}
.buildrow:first-of-type{border-top:0}
.buildrow .v{font-weight:800;color:var(--brand);min-width:62px}
.buildrow .n{flex:1;min-width:180px;font-size:13px;color:var(--muted)}
.log{background:#10251a;color:#d7f0c8;border-radius:10px;padding:12px 14px;font-family:var(--mono);
  font-size:12px;line-height:1.55;height:210px;overflow-y:auto;white-space:pre-wrap;
  border:1px solid #1d4030}
.log .e{color:#ff9c86}
.log .k{color:#b7e34b}
.flashgrid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}

/* ---- device guide icons -------------------------------------------------- */
.devcard{padding-top:16px}
.devicon{display:flex;justify-content:center;margin-bottom:10px}
.devicon svg{width:100%;max-width:170px;height:auto}
.devphoto{margin:-16px -18px 10px;border-radius:var(--radius) var(--radius) 0 0;overflow:hidden;
  aspect-ratio:4/3;background:var(--surface2)}
.devphoto img{width:100%;height:100%;object-fit:cover;display:block}
.phcredit{font-size:11px;color:var(--muted);margin-top:8px}
.d-board{fill:var(--surface);stroke:var(--brand2);stroke-width:2}
.d-board.s3{stroke:var(--info)}
.d-chip{fill:var(--brand)}
.d-chip.s3{fill:var(--info)}
.d-chipline{stroke:rgba(255,255,255,.35);stroke-width:1.4}
.d-label{fill:#fff;font:700 11px var(--mono)}
.d-usb{fill:var(--muted)}
.d-usb.s3{fill:var(--info);opacity:.75}
.d-pins rect{fill:var(--line2)}
.d-bezel{fill:var(--brand);stroke:var(--brand)}
.d-bezel.s3{fill:var(--info)}
.d-screen{fill:var(--mint);stroke:var(--accent);stroke-width:1.5}
.d-screen.s3{fill:#e6f1f6;stroke:var(--info)}
.d-screenline{stroke:var(--brand2);stroke-width:1.6;opacity:.55}
.d-home{fill:var(--accent)}
/* small icon variant used inside the download catalogue cards */
.varicon{width:38px;height:28px;flex:0 0 auto}
.varicon svg{width:100%;height:100%}

/* ---- individual firmware pages ----------------------------------------- */
.firmware-detail{max-width:1120px}
.breadcrumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:4px 0 24px}
.breadcrumbs a{color:var(--brand);font-weight:700}
.firmware-hero{padding:8px 0 28px;border-bottom:1px solid var(--line);margin-bottom:24px}
.firmware-hero h1{max-width:920px;margin:8px 0 10px}
.firmware-hero .lede{max-width:850px;font-size:17px}
.download-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}
.firmware-info-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:16px;margin:22px 0}
.firmware-purpose h2,.firmware-specs h2{margin-top:0}
.fit-note{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:13px 14px;border-radius:10px;margin-top:12px;font-size:14px;line-height:1.55}
.fit-note.good{background:var(--mint);border:1px solid var(--line)}
.fit-note.caution{background:#fff8e7;border:1px solid #ecdcae}
[data-theme="dark"] .fit-note.caution{background:#2d281a;border-color:#544b30}
.firmware-specs dl{margin:0}
.firmware-specs dl>div{display:grid;grid-template-columns:100px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.firmware-specs dl>div:first-child{border-top:0}
.firmware-specs dt{color:var(--muted);font-size:13px}
.firmware-specs dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.firmware-releases{margin:38px 0}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:14px}
.section-heading h2{margin:4px 0 0}
.section-heading p{color:var(--muted);font-size:13px;margin:0}
.release-list{display:grid;gap:14px}
.release-card{padding:20px}
.release-head{display:flex;justify-content:space-between;gap:16px;align-items:center}
.release-head h3{font-size:24px;margin:2px 0 0}
.release-date{font-size:13px;color:var(--muted);text-align:right}
.checksum{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;background:var(--surface2);border:1px solid var(--line);padding:10px;border-radius:9px;margin-top:14px}
.checksum span{font-size:12px;font-weight:800;color:var(--muted)}
.checksum code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-hints{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 0}
.file-hints>div{padding:10px;border-top:1px solid var(--line)}
.file-hints dt{font-weight:800;font-size:13px}
.file-hints dd{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.instructions-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}
.instructions-grid h2{margin-top:0}
.compact-steps{padding-left:22px;line-height:1.7}
.detail-faq{margin:38px 0}

@media(max-width:760px){
  .firmware-info-grid,.instructions-grid{grid-template-columns:1fr}
  .fit-note{grid-template-columns:1fr;gap:4px}
  .section-heading{align-items:start;flex-direction:column;gap:6px}
  .release-head{align-items:flex-start;flex-direction:column}
  .release-date{text-align:left}
  .checksum{grid-template-columns:1fr auto}
  .checksum span{grid-column:1/-1}
  .file-hints{grid-template-columns:1fr}
}
