.firmware-page{max-width:var(--page-max);margin:auto}
.firmware-title{font-size:var(--page-title-size);line-height:1;letter-spacing:var(--hero-tracking);font-weight:var(--weight-normal);margin:var(--space-9) 0}
.firmware-intro{max-width:var(--firmware-intro-width);font-size:var(--text-lg);line-height:var(--line-lg);color:var(--text-muted);margin-bottom:var(--space-12)}
.firmware-sync{border-top:var(--border-width) solid var(--border);border-bottom:var(--border-width) solid var(--border);padding:var(--space-8) 0;display:flex;align-items:center;gap:var(--space-9);justify-content:space-between;margin-bottom:var(--space-10)}
.firmware-sync p{margin:var(--space-5) 0;color:var(--text-muted);font-size:var(--text-sm);line-height:var(--line-sm)}
.firmware-sync small{display:block;font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--line-sm);color:var(--text-dim)}
.firmware-sync .button{flex-shrink:0}
.firmware-sync p.firmware-sync-warning{color:var(--warning)}
.firmware-controls{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-8)}
.firmware-controls label{display:block;font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--line-sm);letter-spacing:.08em;margin-bottom:var(--space-4);color:var(--text-dim)}
.firmware-controls input,.firmware-controls select{width:100%;min-width:0;height:var(--button-lg);padding:0 var(--space-6);border:var(--border-width) solid var(--border-input);border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit}
.firmware-controls option{background:var(--bg);color:var(--text)}
.firmware-controls input::placeholder{color:var(--text-dim)}
.firmware-results-heading{display:flex;gap:var(--space-8);justify-content:space-between;align-items:center;margin:var(--space-8) 0;font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--line-sm);color:var(--text-dim)}
.firmware-results-heading p{margin:0}
.firmware-results-heading button.text-link{background:transparent;border:0;padding:var(--space-2) 0;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs);cursor:pointer}
.firmware-results-heading button.text-link:hover{color:var(--text);text-decoration:underline}
.firmware-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:var(--border-width) solid var(--border);border-left:var(--border-width) solid var(--border)}
.firmware-card{display:flex;flex-direction:column;min-width:0;padding:var(--space-9);border-right:var(--border-width) solid var(--border);border-bottom:var(--border-width) solid var(--border);transition:background var(--motion-fast)}
.firmware-card:hover{background:var(--surface)}
.firmware-card{cursor:pointer;text-decoration:none;color:var(--text)}
.firmware-card:focus-visible{position:relative;outline:var(--focus-width) solid var(--text);outline-offset:calc(var(--focus-width)*-1);z-index:1}
.firmware-card-top{display:flex;justify-content:space-between;gap:var(--space-5);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--line-sm);color:var(--text-dim);text-transform:uppercase}
.firmware-card h2{font-size:var(--firmware-card-title);font-weight:var(--weight-normal);line-height:1.1;letter-spacing:-.04em;margin:var(--space-8) 0 var(--space-6);overflow-wrap:anywhere}
.firmware-card h2 a{display:block}
.firmware-card p{font-size:var(--text-base);line-height:var(--line-base);color:var(--text-muted);margin:0 0 var(--space-8)}
.firmware-experimental{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--warning);margin-bottom:var(--space-6)}
.firmware-card-meta{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-6);margin-top:auto;padding-top:var(--space-6);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--line-sm);color:var(--text-dim);overflow-wrap:anywhere}
.firmware-status.ready{color:var(--success)}
.firmware-card-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-5);border-top:var(--border-width) solid var(--border);padding-top:var(--space-6);margin-top:var(--space-6)}
.firmware-card-actions .text-link{font-size:var(--text-xs)}
.firmware-grid>.empty-state{grid-column:1/-1;padding:var(--space-12);border-right:var(--border-width) solid var(--border);border-bottom:var(--border-width) solid var(--border)}
.firmware-coverage{padding:var(--space-8) 0;margin-top:var(--space-9);max-width:var(--firmware-intro-width);font-size:var(--text-sm);line-height:var(--line-sm);color:var(--text-muted)}
.firmware-coverage summary{cursor:pointer;color:var(--text);padding:var(--space-5) 0;list-style-position:inside}
.firmware-coverage p{margin:var(--space-6) 0}
.firmware-loading{height:var(--firmware-loading-height);padding-top:var(--space-8);border-top:var(--border-width) solid var(--border);font-family:var(--font-mono);color:var(--text-dim)}
.firmware-passport{max-width:var(--reading-max);padding-top:var(--space-10)}
.firmware-passport-header{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-10);align-items:center}
.firmware-passport-header .firmware-passport-actions{margin-top:var(--space-9);gap:var(--space-6)}
.firmware-preview-credit{font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--line-sm);color:var(--text-dim);margin:var(--space-6) 0 var(--space-10);overflow-wrap:anywhere}
.firmware-preview-credit .text-link{font-size:inherit}
.firmware-passport h1{font-size:var(--section-title-size);font-weight:var(--weight-normal);letter-spacing:var(--hero-tracking);line-height:1.05;margin:var(--space-8) 0;overflow-wrap:anywhere}
.firmware-passport-intro{font-size:var(--text-lg);line-height:var(--line-lg);color:var(--text-muted)}
.firmware-facts{margin:var(--space-10) 0;border-top:var(--border-width) solid var(--border)}
.firmware-facts>div{display:grid;grid-template-columns:1fr 1.5fr;gap:var(--space-8);padding:var(--space-6) 0;border-bottom:var(--border-width) solid var(--border)}
.firmware-facts dt{font-size:var(--text-sm);color:var(--text-dim)}
.firmware-facts dd{margin:0;overflow-wrap:anywhere}
.firmware-passport-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-8)}
.firmware-course-note{padding-top:var(--space-10);margin-top:var(--space-10);border-top:var(--border-width) solid var(--border)}
.firmware-course-note h3{font-size:var(--text-xl);font-weight:var(--weight-normal);letter-spacing:-.03em}
.firmware-course-note p{color:var(--text-muted);line-height:var(--line-base)}
.firmware-caution{border-left:var(--focus-width) solid var(--warning);padding:var(--space-6) var(--space-8);margin:var(--space-8) 0;background:var(--warning-bg);font-size:var(--text-sm);line-height:var(--line-sm)}
.firmware-caution strong{color:var(--warning)}
.firmware-caution p{margin:var(--space-4) 0 0;color:var(--text-muted)}
@media(max-width:1100px){.firmware-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.firmware-card{padding:var(--space-8)}}
@media(max-width:940px){.header-nav{display:none}.menu-toggle{display:grid;flex:none}.header-account{margin-left:auto}}
@media(max-width:800px){.firmware-passport-header{grid-template-columns:1fr;gap:var(--space-6)}}
@media(max-width:640px){.firmware-title{font-size:var(--mobile-page-title-size)}.firmware-intro{font-size:var(--text-base);line-height:var(--line-base);margin-bottom:var(--space-9)}.firmware-controls{grid-template-columns:1fr;gap:var(--space-6)}.firmware-sync{align-items:flex-start;flex-direction:column;gap:var(--space-6)}.firmware-grid{grid-template-columns:1fr}.firmware-card h2{font-size:var(--text-heading)}.firmware-results-heading{align-items:flex-start;gap:var(--space-5)}.firmware-facts>div{grid-template-columns:1fr;gap:var(--space-4)}.firmware-card{padding:var(--space-8)}.firmware-passport h1{font-size:var(--text-heading)}.firmware-grid>.empty-state{padding:var(--space-8)}}
