.defmods{flex-shrink:0;display:inline-flex;position:relative}.defmods-btn{border:1px solid var(--fp-border,#2c2f35);background:var(--fp-card,#1a1c20);height:28px;color:var(--ink,#eceae5);font:inherit;white-space:nowrap;cursor:pointer;border-radius:7px;padding-inline:10px;font-size:12.5px;font-weight:500}.defmods-btn:hover:not(:disabled),.defmods-btn.on{background:#23262b}.defmods-btn:disabled{color:var(--ink-3,#868b94);cursor:not-allowed}.defmods-pop{z-index:30;text-align:left;background:#1a1c20;border:1px solid #3a3e46;border-radius:8px;width:max-content;min-width:320px;max-width:min(480px,100vw - 16px);padding:8px 12px;font-size:12.5px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #00000073}.defmods-pop.left{left:0;right:auto}.defmods-row{cursor:pointer;grid-template-columns:auto auto minmax(0,1fr);align-items:baseline;gap:8px;padding:4px 0;display:grid}.defmods-row input{accent-color:var(--accent,#f3b52c);margin:0}.defmods-id{font-family:var(--font-mono,monospace);color:var(--ink,#eceae5)}.defmods-sum{color:var(--ink-3,#868b94)}.defmods-note{color:var(--ink-3,#868b94);margin:6px 0 0;font-size:11.5px;line-height:1.4}.firmware-page{--fp-bg:#0f1012;--fp-card:#131418;--fp-border:#2c2f35;--fp-inset:#101214;--fp-track:#1d1f23;--seg-bg:var(--fp-card);--seg-border:var(--fp-border);background:var(--fp-bg);min-height:0;color:var(--ink,#eceae5);flex-direction:column;flex:1;gap:12px;padding:16px 20px 24px;font-size:13px;display:flex;position:relative;overflow:auto}.firmware-page .head{flex-wrap:wrap;align-items:baseline;gap:4px 14px;width:100%;max-width:920px;margin-inline:auto;display:flex}.firmware-page h2{margin:0;font-size:16px}.firmware-page h3{margin:0;font-size:13px;font-weight:600}.firmware-page .sp{flex:1}.firmware-page .dim{color:var(--ink-3,#868b94)}.firmware-page .okt{color:#7be3a1}.firmware-page .bad{color:#ffb4ab}.firmware-page .warn{color:#f0c27a;background:#f3b52c1a;border-radius:8px;margin:8px 0 0;padding:8px 10px}.firmware-page .hidden{display:none}.firmware-page .steps{flex-direction:column;gap:10px;width:100%;max-width:920px;margin-inline:auto;display:flex}.firmware-page .step{border:1px solid var(--fp-border);background:var(--fp-card);border-radius:10px;padding:10px 14px 12px}.firmware-page .step.later{opacity:.62}.firmware-page .steph{flex-wrap:wrap;align-items:center;gap:6px 10px;min-height:28px;display:flex}.firmware-page .mark{width:22px;height:22px;font-family:var(--font-mono);border:1px solid var(--fp-border);color:var(--ink-3,#868b94);border-radius:50%;flex:none;place-items:center;font-size:11.5px;display:inline-grid}.firmware-page .step.now .mark{border-color:var(--amber,#f3b52c);color:var(--amber,#f3b52c)}.firmware-page .step.done .mark{color:#7be3a1;background:#0f2418;border-color:#3f8f62}.firmware-page .step.bad .mark{color:#ffb4ab;background:#2a1210;border-color:#e5594d}.firmware-page .step.folded{padding-bottom:10px}.firmware-page .steph .summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-2,#a9adb4);font-size:12.5px;overflow:hidden}.firmware-page .steph .summary .fname{font-family:var(--font-mono);color:var(--ink,#eceae5);font-size:12px}.firmware-page .steph .fold{margin:0;font-size:12px}.firmware-page .stepb[hidden]{display:none}@keyframes fp-in{0%{opacity:0;transform:translateY(-3px)}}.firmware-page .stepb:not([hidden]),.firmware-page .steph .summary{animation:.16s ease-out fp-in}.firmware-page .stepb{flex-direction:column;gap:8px;padding:6px 0 0 32px;display:flex}.firmware-page .stepb>button{align-self:flex-start}.firmware-page .stepb p{margin:0}.firmware-page .filerow{border:1px dashed var(--fp-border);background:var(--fp-inset);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 10px;display:flex}.firmware-page .filerow.dragging{border-color:var(--amber,#f3b52c);background:#f3b52c0f}.firmware-page .fileinfo{flex-wrap:wrap;flex:280px;align-items:baseline;gap:2px 12px;min-width:0;display:flex}.firmware-page .fname{font-family:var(--font-mono);overflow-wrap:anywhere}.firmware-page .tick{cursor:pointer;align-items:baseline;gap:8px;display:flex}.firmware-page .tick input,.firmware-page .tick span{cursor:pointer}.firmware-page input[type=checkbox]{width:14px;height:14px;accent-color:var(--amber,#f3b52c);flex:none;margin:0;transform:translateY(2px)}.firmware-page .checks{flex-wrap:wrap;gap:4px 18px;margin:0;padding:0;list-style:none;display:flex}.firmware-page .checks li{flex-wrap:wrap;align-items:baseline;gap:2px 6px;display:flex}.firmware-page .checks .ic{font-family:var(--font-mono)}.firmware-page .checks li.bad{flex-basis:100%}.firmware-page .checks .ok .ic{color:#7be3a1}.firmware-page .checks .bad .ic,.firmware-page .checks .bad .lb{color:#ffb4ab}.firmware-page .checks .why{color:#ffc1bc;overflow-wrap:anywhere;flex-basis:100%;padding-left:18px;font-size:12px}.firmware-page .devrow{flex-wrap:wrap;align-items:center;gap:4px 14px;display:flex}.firmware-page ol.plain,.firmware-page ul.plain{margin:0;padding-left:20px}.firmware-page ol.plain li,.firmware-page ul.plain li{margin:2px 0}.firmware-page .recovery summary{cursor:pointer;color:var(--ink-2,#a9adb4);width:max-content}.firmware-page .recovery[open]{background:var(--fp-inset);border-radius:8px;padding:6px 10px 8px}.firmware-page .flashrow,.firmware-page .flashing{flex-wrap:wrap;align-items:center;gap:6px 14px;display:flex}.firmware-page .progress{background:var(--fp-track);border-radius:5px;flex:220px;min-width:160px;height:10px;overflow:hidden}.firmware-page .progress i{background:var(--amber,#f3b52c);height:100%;display:block}.firmware-page .progress.full i{opacity:.35}.firmware-page .progress.ok i{background:#7be3a1}.firmware-page .ptext.okt{color:#7be3a1}.firmware-page .ptext{font-family:var(--font-mono);color:var(--ink-2,#a9adb4);flex:260px;font-size:12px}.firmware-page .act{border:1px solid var(--fp-border);color:var(--ink,#eceae5);font:inherit;cursor:pointer;background:#1a1c20;border-radius:7px;height:30px;padding-inline:12px;font-weight:500}.firmware-page .act.small{height:26px;font-size:12px}.firmware-page .act.primary{background:var(--amber,#f3b52c);border-color:var(--amber,#f3b52c);color:var(--amber-ink,#1d1403)}.firmware-page .act:hover:not(:disabled){background:#23262b}.firmware-page .act.primary:hover:not(:disabled){background:var(--amber-hover,#ffc444)}.firmware-page button:disabled{opacity:.5;cursor:not-allowed}.firmware-page .target-select select{border-color:var(--fp-border)}@media (width<=760px){.firmware-page{padding-inline:12px}.firmware-page .stepb{padding-left:0}.firmware-page .head .dim{flex-basis:100%;min-width:0}.firmware-page .steph .summary{flex-basis:100%;order:1;padding-left:32px}}.firmware-page .linkbtn{color:var(--ink-2,#a9adb4);font:inherit;cursor:pointer;background:0 0;border:0;margin:8px 0 0;padding:0;font-size:12px;text-decoration:underline;display:block}.firmware-page .linkbtn:disabled{opacity:.5;cursor:default}@media (prefers-reduced-motion:reduce){.firmware-page .stepb,.firmware-page .steph .summary{animation:none}}.firmware-page.firmware-page{--fp-bg:var(--ground);--fp-card:var(--panel);--fp-border:var(--line-2);--fp-inset:var(--ground);--fp-track:var(--panel-2);padding-top:28px}
