/* Firmware workspace owns one vertical scroll container. Other dialogs are unaffected. */
html.firmware-open, html:has(#firmware-dialog[open]), html:has(#firmware-dialog[open]) body { overflow: hidden; }
#firmware-dialog { inset: 0; width: min(1160px, calc(100vw - 64px)); height: min(640px, calc(100dvh - 64px)); max-width: none; max-height: none; margin: auto; padding: 0; overflow: clip; border-radius: 12px; }
#firmware-dialog[open] { display: grid; grid-template-rows: 64px 42px minmax(0, 1fr) auto; }
#firmware-dialog [hidden] { display: none !important; }
.firmware-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 22px; border-bottom: 1px solid var(--line); }
.firmware-heading-label { display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
.firmware-heading-label > div { min-width: 0; }
.firmware-board-icon { display: block; width: 24px; height: 24px; flex: 0 0 24px; margin-top: 2px; background: var(--accent); mask: url('./firmware-board.svg') center / contain no-repeat; }
.firmware-heading h2 { margin: 0; font-size: 21px; line-height: 28px; font-weight: 600; letter-spacing: normal; }
.firmware-heading p { margin: 2px 0 0; color: var(--muted); font-size: 12px; line-height: 18px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.firmware-heading .icon-button { flex: none; }
.firmware-tabs { display: flex; align-items: stretch; justify-content: space-between; gap: 20px; padding: 0 22px; border-bottom: 1px solid var(--line); }
.firmware-tabs [role='tablist'] { display: flex; gap: 26px; }
.firmware-tabs [role='tab'] { position: relative; display: flex; align-items: center; gap: 7px; padding: 0 1px; border: 0; background: transparent; color: var(--muted); font-size: 14px; cursor: pointer; }
.firmware-tabs [role='tab'][aria-selected='true'] { color: var(--accent); font-weight: 600; }
.firmware-tabs [role='tab'][aria-selected='true']::after { content: ''; position: absolute; inset: auto 0 -1px; height: 3px; background: var(--accent); border-radius: 2px 2px 0 0; }
.firmware-tabs [role='tab'] span { padding: 0 6px; color: var(--muted); background: var(--surface-muted); font-size: 11px; border-radius: 12px; }
#firmware-current-version { align-self: center; font-size: 12px; color: var(--muted); white-space: nowrap; }
#firmware-scroll { min-height: 0; max-height: none; padding: 16px 22px; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-gutter: auto; }
#firmware-status:empty, #manual-upload-status:empty { display: none; }
.firmware-task-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.firmware-task-heading h3 { margin: 0 0 5px; font-size: 21px; line-height: 28px; font-weight: 600; }
.firmware-task-heading p { margin: 0; color: var(--muted); font-size: 13px; line-height: 20px; }
.firmware-source-switch { display: flex; flex: none; gap: 3px; padding: 4px; background: var(--surface-muted); border-radius: 7px; }
.firmware-source-switch button { padding: 7px 10px; color: var(--muted); background: transparent; border: 1px solid transparent; border-radius: 5px; font-size: 12px; cursor: pointer; white-space: nowrap; }
.firmware-source-switch [aria-pressed='true'] { color: var(--accent); background: var(--paper-strong); border-color: var(--line); box-shadow: 0 1px 2px rgb(9 30 66 / 8%); }
.firmware-task-layout { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 22px; align-items: start; }
.firmware-task-main { min-width: 0; }
#firmware-dialog .esp-read-card, #firmware-dialog .firmware-file-source { display: grid; gap: 10px; padding: 0; border: 0; background: transparent; }
.firmware-stage { padding: 14px 16px; background: var(--paper); border: 1px solid var(--line); border-radius: 9px; }
.firmware-stage h3 { margin: 0 0 6px; font-size: 16px; font-weight: 600; line-height: 24px; }
#firmware-dialog .transfer-status { min-height: 0; padding: 0; margin: 0 0 10px; color: var(--muted) !important; background: transparent; border: 0; font-size: 12px; line-height: 20px; overflow-wrap: anywhere; }
#firmware-dialog .transfer-status.error { color: var(--danger) !important; }
#firmware-dialog .transfer-meter { padding: 12px 0 0; background: transparent; border-radius: 0; }
#firmware-dialog .transfer-meter-heading { color: var(--muted); font-size: 12px; }
#firmware-dialog .transfer-meter-heading span { font-size: 22px; font-weight: 500; line-height: 30px; color: var(--accent); }
#firmware-dialog progress { width: 100%; height: 8px; accent-color: var(--accent); }
#firmware-dialog .transfer-stats { line-height: 20px; overflow-wrap: anywhere; }
#firmware-dialog .transfer-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 0 0 10px; padding: 0; }
#firmware-dialog .transfer-steps li { display: flex; gap: 6px; padding: 0; border: 0; border-radius: 0; background: transparent; min-width: 0; }
#firmware-dialog .transfer-steps li > span { width: 24px; height: 24px; flex: 0 0 24px; border: 1px solid var(--line); background: transparent; font-size: 11px; }
#firmware-dialog .transfer-steps li > span { position: relative; color: var(--muted); }

#firmware-dialog .transfer-steps strong { font-size: 11px; line-height: 18px; font-weight: 400; }
#firmware-dialog .transfer-steps small, #firmware-dialog [data-transfer-step='driver'], #firmware-dialog [data-transfer-step='done'], #firmware-dialog [data-flash-step='port'], #firmware-dialog [data-flash-step='reset'] { display: none; }
.firmware-summary { min-width: 0; margin: 0; padding: 0 0 0 20px; border: 0; border-left: 1px solid var(--line); }
.firmware-summary h3 { margin: 0 0 10px; font-size: 13px; font-weight: 600; }
.firmware-summary dl { display: grid; gap: 6px; margin: 0; }
.firmware-summary dl > div { display: grid; grid-template-columns: 68px minmax(0, 1fr); align-items: center; gap: 4px; min-height: 22px; }
.firmware-summary dt { font-size: 11px; color: var(--muted); }
.firmware-summary dt::after { content: ":"; }
.firmware-summary dd { min-width: 0; margin: 0; font-size: 12px; line-height: 20px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.firmware-summary > p { margin: 18px 0 0; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; line-height: 19px; }
#firmware-dialog .flash-target { display: block; padding: 0; margin: 0; background: transparent; border: 0; overflow-wrap: anywhere; }
.firmware-settings { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.firmware-settings summary, #firmware-dialog .transfer-log summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 0; color: var(--muted); font-size: 12px; line-height: 18px; cursor: pointer; }
.firmware-settings summary::after, #firmware-dialog .transfer-log summary::after { content: '⌄'; }
.firmware-settings[open] summary::after, #firmware-dialog .transfer-log[open] summary::after { content: '⌃'; }
.firmware-settings summary span { margin-left: auto; font-size: 11px; }
.firmware-settings p, .firmware-settings small { color: var(--muted); font-size: 12px; line-height: 20px; }
.firmware-settings .form-grid { padding-bottom: 16px; }
#firmware-dialog .flash-consent { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 12px; line-height: 20px; }
#firmware-dialog .flash-consent input { flex: 0 0 15px; width: 15px; margin-top: 3px; }
#firmware-dialog .transfer-log { min-width: 0; margin: 0; border-top: 1px solid var(--line); }
#firmware-dialog .transfer-log pre { max-height: none; overflow: visible; overflow-wrap: anywhere; white-space: pre-wrap; margin: 0; }
#firmware-dialog .connect-help { margin: 0; font-size: 12px; }
#firmware-dialog .connect-help p { line-height: 20px; }
#firmware-dialog .site-flash-transfer { display: grid; gap: 10px; padding: 0; border: 0; background: transparent; }
#firmware-dialog .flash-overall-meter { display: none; }
#firmware-dialog .flash-stage-meter { padding: 14px 16px; background: var(--paper); border: 1px solid var(--line); border-radius: 9px; }
#firmware-dialog .flash-warning { margin: 16px 0; padding: 12px; font-size: 12px; line-height: 20px; }
.firmware-dropzone { display: grid; justify-items: center; gap: 12px; padding: 22px 16px; text-align: center; border: 1px dashed var(--line-strong); border-radius: 9px; background: var(--paper); }
.firmware-dropzone strong { font-size: 15px; overflow-wrap: anywhere; max-width: 100%; }
.firmware-dropzone > span { font-size: 12px; color: var(--muted); }
.firmware-dropzone.has-file { justify-items: start; padding: 16px; text-align: left; }
.firmware-dropzone.dragging { border-color: var(--accent); background: var(--selected-surface); }
.firmware-file-picker { position: relative; overflow: hidden; cursor: pointer; }
.firmware-file-picker input { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; cursor: pointer; }
.firmware-file-picker:focus-within { outline: 2px solid var(--accent); outline-offset: 2px; }
.firmware-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding: 10px 22px; border-top: 1px solid var(--line); background: var(--paper-strong); }
.firmware-footer > p { margin: 0; min-width: 0; font-size: 12px; line-height: 19px; color: var(--muted); overflow-wrap: anywhere; }
.firmware-footer-actions { flex: none; max-width: 65%; }
.firmware-footer-actions > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: end; gap: 8px; }
.firmware-footer .button { min-height: 36px; font-size: 13px; white-space: normal; }
#firmware-dialog[data-busy='true'] #esp-read-button, #firmware-dialog[data-busy='true'] #firmware-submit, #firmware-dialog[data-busy='true'] #flash-confirm { display: none; }
#firmware-dialog .firmware-version-list { display: grid; gap: 8px; }
.firmware-version { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; align-items: start; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; }
.firmware-version-title { display: grid; gap: 6px; font-size: 16px; }
.firmware-version-info { min-width: 0; display: grid; gap: 2px; }
.firmware-version-info strong { font-size: 13px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.firmware-version-info span, .firmware-version-info small { font-size: 11px; line-height: 18px; color: var(--muted); overflow-wrap: anywhere; }
.firmware-version-info code { overflow-wrap: anywhere; }
.firmware-version-actions { display: flex; flex-wrap: wrap; justify-content: end; gap: 10px; font-size: 12px; }
html[data-theme='dark'] #firmware-dialog .connect-help { color: #f5cd47; background: #332e1b; border-color: #655630; }
html[data-theme='dark'] #firmware-dialog .connect-help p { color: #f5cd47; }
@media (max-width: 800px) {
    .firmware-task-layout { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .firmware-summary { order: -1; padding: 0 0 10px; border: 0; border-bottom: 1px solid var(--line); }
    .firmware-summary dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 12px; }
    .firmware-summary dl > div { grid-template-columns: 58px minmax(0, 1fr); min-height: 20px; }
    .firmware-summary h3 { margin-bottom: 6px; font-size: 12px; }
    .firmware-task-heading { flex-wrap: wrap; }
}
@media (max-width: 620px) {
    #firmware-dialog { width: 100vw; height: 100dvh; border: 0; border-radius: 0; }
    #firmware-dialog[open] { grid-template-rows: 60px 40px minmax(0, 1fr) auto; }
    .firmware-heading { padding: 8px 14px; gap: 8px; }
    .firmware-heading h2 { font-size: 18px; line-height: 24px; }
    .firmware-heading p { font-size: 11px; }
    .firmware-tabs { padding: 0 18px; }
    .firmware-tabs [role='tablist'] { flex: 1; justify-content: space-between; gap: 10px; }
    .firmware-tabs [role='tab'] { font-size: 13px; }
    #firmware-current-version { display: none; }
    #firmware-scroll { padding: 12px 14px; }
    .firmware-task-heading { gap: 8px; margin-bottom: 10px; }
    .firmware-task-heading h3 { font-size: 18px; }
    .firmware-source-switch { width: 100%; }
    .firmware-source-switch button { flex: 1; padding-block: 5px; }
    .firmware-stage { padding: 12px; }
    #firmware-dialog .transfer-steps { gap: 4px; }
    #firmware-dialog .transfer-steps li { flex-direction: column; gap: 5px; text-align: center; }
    #firmware-dialog .transfer-steps strong { font-size: 10px; }
    .firmware-footer { flex-direction: column; align-items: stretch; padding: 8px 14px 10px; gap: 6px; min-height: 0; }
    .firmware-footer > p { font-size: 11px; }
    .firmware-footer-actions { max-width: 100%; width: 100%; }
    .firmware-footer-actions > div { justify-content: stretch; }
    .firmware-footer .button { flex: 1; min-width: 0; min-height: 40px; }
    .firmware-version { grid-template-columns: 42px minmax(0, 1fr); padding: 10px; gap: 6px 10px; }
    .firmware-version-title { display: flex; align-items: center; gap: 10px; }
    .firmware-version-actions { grid-column: 2; justify-content: start; gap: 14px; }
}
#firmware-dialog .transfer-steps li[data-transfer-step='driver'], #firmware-dialog .transfer-steps li[data-transfer-step='done'], #firmware-dialog .transfer-steps li[data-flash-step='port'], #firmware-dialog .transfer-steps li[data-flash-step='reset'] { display: none; }
#firmware-dialog progress { appearance: none; border: 0; border-radius: 8px; overflow: hidden; background: var(--surface-muted); }
#firmware-dialog progress::-webkit-progress-bar { background: var(--surface-muted); border-radius: 8px; }
#firmware-dialog progress::-webkit-progress-value { background: var(--accent); border-radius: 8px; }
#firmware-dialog progress::-moz-progress-bar { background: var(--accent); border-radius: 8px; }
#firmware-dialog .transfer-progress-track { position: relative; height: 8px; overflow: hidden; border-radius: 8px; background: var(--surface-muted); }
#firmware-dialog .transfer-progress-track progress { display: block; height: 8px; }
#firmware-dialog .transfer-wait-fill { display: none; }
#firmware-dialog .transfer-progress-track.indeterminate .transfer-wait-fill { display: block; position: absolute; inset: 0 auto 0 0; width: 38%; border-radius: inherit; background: var(--accent); animation: firmware-transfer-wait 1.55s ease-in-out infinite; }
@keyframes firmware-transfer-wait { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(164%); } }
@media (prefers-reduced-motion: reduce) { #firmware-dialog .transfer-progress-track.indeterminate .transfer-wait-fill { animation-duration: 2.8s; } }
#firmware-dialog .button.danger { color: var(--danger); background: var(--paper-strong); border: 1px solid var(--line); box-shadow: none; }
#firmware-dialog .button.danger:hover { background: color-mix(in srgb, var(--danger) 7%, var(--paper-strong)); }
.firmware-heading button:disabled { opacity: .4; cursor: not-allowed; }


#firmware-dialog .glow-progress { height: 8px; border: 0; background: var(--surface-muted); }
#firmware-dialog .glow-progress-fill { background: var(--accent); }
#firmware-dialog .glow-progress.error .glow-progress-fill { background: var(--danger); }
#firmware-dialog .flash-target small { color: var(--muted); font-size: 11px; line-height: 19px; overflow-wrap: anywhere; }

/* Current task information precedes the stepper, with a distinct breathing space. */
.firmware-connection-intro { margin: 0 0 24px; }
#firmware-dialog #flash-support { margin: 0 0 8px; color: var(--muted); font-size: 12px; line-height: 20px; }
#firmware-dialog #flash-support.error { color: var(--danger); }
#firmware-dialog .firmware-connection-note { margin: 0 0 12px; color: var(--muted); font-size: 11px; line-height: 19px; }
#firmware-dialog .firmware-connection-intro .firmware-connection-note { margin: 0; }
.firmware-connection-note a { color: var(--accent); text-underline-offset: 2px; }
#firmware-dialog .firmware-confirmation { display: grid; gap: 6px; margin-top: 10px; }
#firmware-dialog .firmware-confirmation > p { margin: 0; padding: 0; color: var(--muted); font-size: 12px; line-height: 20px; background: transparent; border: 0; }
#firmware-dialog [role='tabpanel'] > .transfer-log { margin-top: 10px; }
#firmware-dialog .transfer-log summary { color: var(--accent); font-weight: 500; }
#firmware-dialog #manual-transfer-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#firmware-dialog .transfer-steps li.running { color: var(--accent); }
#firmware-dialog .transfer-steps li.running > span { color: transparent; background: transparent; border-color: transparent; animation: none; }
#firmware-dialog .transfer-steps li.running > span::before { content: ''; position: absolute; inset: -1px; border: 2px solid color-mix(in srgb, var(--accent) 22%, transparent); border-top-color: var(--accent); border-radius: 50%; animation: firmware-step-spin .85s linear infinite; }
#firmware-dialog .transfer-steps li.done { color: var(--fw-step-done, #1f845a); }
#firmware-dialog .transfer-steps li.done > span { color: transparent; background: color-mix(in srgb, var(--fw-step-done, #1f845a) 8%, transparent); border: 1px solid var(--fw-step-done, #1f845a); font-size: 0; }
#firmware-dialog .transfer-steps li.done > span::after { content: '✓'; color: var(--fw-step-done, #1f845a); position: absolute; inset: 0; display: grid; place-items: center; line-height: 22px; font-size: 14px; }
#firmware-dialog .transfer-steps li.error { color: var(--danger); }
#firmware-dialog .transfer-steps li.error > span { color: var(--danger); background: transparent; border-color: var(--danger); }
html[data-theme='dark'] #firmware-dialog { --fw-step-done: #7ee2b8; }
@keyframes firmware-step-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { #firmware-dialog .transfer-steps li.running > span::before { animation: none; } }

/* Compact, semantic connection status; neutral means no device, not a warning. */
.firmware-device-status { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; padding: 1px 6px; line-height: 18px; font-size: 11px; color: var(--muted); background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 4px; vertical-align: middle; }
#firmware-dialog .firmware-device-status-mark { width: 7px; height: 7px; flex: 0 0 7px; color: inherit; border: 1px solid currentColor; border-radius: 50%; }
.firmware-device-status.connecting { color: var(--accent); background: var(--selected-surface); border-color: color-mix(in srgb, var(--accent) 25%, var(--line)); }
.firmware-device-status.connected { color: var(--fw-step-done, #1f845a); background: color-mix(in srgb, var(--fw-step-done, #1f845a) 8%, var(--paper-strong)); border-color: color-mix(in srgb, var(--fw-step-done, #1f845a) 30%, var(--line)); }
.firmware-device-status.connected .firmware-device-status-mark { background: currentColor; }
.firmware-version-info > span { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.firmware-version-integrity { color: var(--muted); font-size: 11px; }
.firmware-version-integrity summary { color: var(--accent); cursor: pointer; }
.firmware-version-integrity code { display: block; overflow-wrap: anywhere; }
.firmware-version-pagination { display: flex; align-items: center; justify-content: center; gap: 16px; padding-top: 12px; color: var(--muted); font-size: 12px; }
.firmware-version-pagination button:disabled { opacity: .4; cursor: default; }
@media (max-width: 620px) {
    .firmware-task-heading p { display: none; }
    .firmware-task-heading h3 { margin: 0; font-size: 17px; line-height: 24px; }
    #firmware-dialog .transfer-steps { margin-bottom: 8px; }
    #firmware-dialog .transfer-steps li { gap: 4px; }
    #firmware-dialog .firmware-connection-note { margin-bottom: 6px; line-height: 17px; }
    #firmware-dialog .esp-read-card, #firmware-dialog .firmware-file-source, #firmware-dialog .site-flash-transfer { gap: 8px; }
    #firmware-dialog .flash-stage-meter { padding: 12px; }
    #firmware-dialog .firmware-confirmation > p, #firmware-dialog .flash-consent { font-size: 11px; line-height: 17px; }
    #firmware-dialog .transfer-status, #firmware-dialog .transfer-stats { font-size: 11px; line-height: 18px; }
    .firmware-version-title { font-size: 14px; }
    .firmware-version-pagination { gap: 12px; font-size: 11px; }
}
#firmware-dialog:is(:has(#manual-upload-meter:not([hidden])), :has([data-upload-step="done"].done), :has(#manual-upload-status.error)) #firmware-dropzone { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; text-align: left; }
#firmware-dialog:is(:has(#manual-upload-meter:not([hidden])), :has([data-upload-step="done"].done), :has(#manual-upload-status.error)) #firmware-dropzone > strong { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 12px; }
#firmware-dialog:has(#manual-upload-meter:not([hidden])) #firmware-file-size { display: none; }
#firmware-dialog[data-busy='true'] .firmware-file-picker { display: none; }
@media (max-width: 620px) and (max-height: 700px) {
    .firmware-task-heading h3 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .firmware-summary h3 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    #firmware-dialog .firmware-connection-note { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    #firmware-scroll { padding: 10px 14px; }
    .firmware-summary dl { gap: 2px 10px; }
    .firmware-source-switch button { padding-block: 4px; }
}
.firmware-heading { padding-block: 8px; }
.firmware-dropzone.has-file > strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#firmware-dialog .firmware-stage > p:not(.transfer-status) { margin: 0; color: var(--muted); font-size: 12px; line-height: 18px; }
#firmware-dialog[data-busy='true'] #firmware-device-source > .firmware-connection-note { display: none; }
#flash-dialog:has(#flash-transfer:not([hidden])) #flash-support { display: none; }
@media (max-width: 620px) {
    .firmware-connection-hint { display: block; }
    #flash-dialog:has(#flash-transfer:not([hidden])) .firmware-connection-hint { display: none; }
}
@media (max-width: 620px) and (max-height: 700px) {
    #flash-dialog .firmware-connection-note { white-space: normal; overflow: visible; }
    #firmware-dialog .transfer-meter { padding-top: 6px; }
    #firmware-dialog .transfer-meter-heading span { font-size: 20px; line-height: 26px; }
    #firmware-dialog .firmware-stage h3 { font-size: 14px; line-height: 20px; }
    #firmware-dialog .firmware-stage { padding: 10px; }
    #firmware-dialog .firmware-stage .transfer-status { margin-bottom: 4px; }
    #firmware-dialog .transfer-meter { gap: 4px; }
}
.firmware-summary dt { line-height: 20px; white-space: nowrap; }
.firmware-summary h3 { line-height: 20px; }
.firmware-footer > p { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
@media (max-height: 700px) {
    .firmware-task-heading p { display: none; }
    .firmware-dropzone { padding-block: 12px; gap: 8px; }
    .firmware-dropzone.has-file { padding-block: 12px; }
}
@media (min-width: 621px) and (max-height: 700px) {
    #firmware-dialog { height: calc(100dvh - 48px); }
}

#firmware-dialog #manual-upload-status { min-height: 0; color: var(--muted); font-size: 12px; line-height: 18px; }
#firmware-dialog #manual-upload-status.error { color: var(--danger); }
@media (max-width: 620px) and (max-height: 700px) {
    #firmware-dialog .firmware-file-source { gap: 6px; }
    #firmware-dialog #manual-upload-status { font-size: 11px; }
    #firmware-dialog:is(:has(#manual-upload-meter:not([hidden])), :has([data-upload-step="done"].done), :has(#manual-upload-status.error)) #firmware-dropzone { padding-block: 6px; }
}

.transfer-log [data-firmware-task] { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; margin: .5rem 0; }
.transfer-log [data-firmware-task][hidden] { display: none; }
.transfer-log [data-firmware-task] code { min-width: 0; overflow-wrap: anywhere; font-size: .8rem; }
