.ota-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);gap:22px;align-items:start}.ota-create-card{order:1}.ota-jobs-card{order:2}.ota-create-card__header p,.ota-jobs-card header p{margin:7px 0 0;color:var(--muted,#64748b);font-size:.88rem;line-height:1.55}.ota-wizard{gap:20px}.ota-step{border:1px solid #dce6ed;border-radius:14px;padding:16px;background:#fbfdff}.ota-step__title{display:flex;gap:10px;align-items:center;margin-bottom:14px}.ota-step__title b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#0d7890;color:#fff;font-size:.85rem}.ota-step__title span{display:grid;gap:1px}.ota-step__title strong{color:#163a4a}.ota-step__title small{color:var(--muted,#64748b);font-size:.8rem}.ota-device-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.ota-device-toolbar .button{min-height:34px;padding:6px 10px;font-size:.82rem}.ota-device-toolbar span{margin-left:auto;font-size:.86rem;font-weight:700;color:#0d5d70}.ota-search{margin-bottom:8px}.ota-search input{width:100%}.ota-device-list{max-height:248px;overflow:auto;border:1px solid #dce6ed;border-radius:10px;background:#fff}.ota-device-option{display:flex;gap:10px;align-items:center;padding:11px 12px;border-bottom:1px solid #edf2f5;cursor:pointer}.ota-device-option:last-child{border-bottom:0}.ota-device-option:hover{background:#f3fafb}.ota-device-option input{width:auto;flex:0 0 auto}.ota-device-option__copy{min-width:0;display:grid;gap:3px}.ota-device-option__copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#173c4c}.ota-device-option__copy small{color:var(--muted,#64748b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ota-device-option__state{margin-left:auto;flex:0 0 auto;font-size:.76rem;color:#64748b}.ota-device-option__state.is-online{color:#07855d}.ota-device-empty{padding:18px;text-align:center;color:var(--muted,#64748b);font-size:.88rem}.ota-advanced{margin-top:12px;border-top:1px dashed #cfdde4;padding-top:10px}.ota-advanced summary{cursor:pointer;color:#386070;font-size:.88rem;font-weight:600}.ota-advanced .factory-form__row{margin-top:12px}.ota-confirm{display:flex!important;gap:9px;align-items:flex-start;margin-top:15px;cursor:pointer}.ota-confirm input{width:auto;margin-top:3px}.ota-confirm span{font-size:.85rem;line-height:1.5;color:#355664}.ota-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.ota-actions .button{margin:0}.ota-preview{line-height:1.6}.ota-preview.is-ready{border-color:#83cdb6;background:#f0fbf7;color:#155842}.ota-preview.is-warn{border-color:#e9c86d;background:#fff9e9;color:#76550b}.ota-job{align-items:flex-start}.ota-job__main{min-width:0;flex:1;display:grid;gap:6px}.ota-job__meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.ota-job__meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.ota-job__counts{color:#526c78}.ota-job__status{font-size:.76rem;font-weight:700;padding:2px 7px;border-radius:999px;background:#e7eff2;color:#42606d}.ota-job__status.is-running{background:#e1f5f6;color:#087483}.ota-job__status.is-paused{background:#fff3d4;color:#825c00}.ota-job__status.is-failed{background:#fee7e7;color:#a03030}.ota-job__status.is-complete{background:#e6f7ee;color:#14724d}.ota-job .firmware-item__actions{padding-top:2px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1050px){.ota-layout{grid-template-columns:1fr}.ota-jobs-card{order:2}}@media(max-width:620px){.ota-step{padding:13px}.ota-device-toolbar span{width:100%;margin-left:0}.ota-actions .button{width:100%}.ota-job{display:grid;gap:10px}.ota-job .firmware-item__actions{justify-content:flex-start}}
