body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-shell{background:#f0f2f5;color:#1f2937;display:flex;flex-direction:column;min-height:100vh}.app-header{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid #00000014;display:flex;gap:16px;padding:14px 18px;position:-webkit-sticky;position:sticky;top:0}.app-brand{align-items:center;color:#1f2937;display:inline-flex;font-weight:700;gap:10px;letter-spacing:.2px;text-decoration:none}.app-brand-logo{border-radius:6px;display:block;height:30px;width:30px}.app-nav{display:flex;gap:12px;margin-right:auto}.app-nav a{border-radius:10px;color:#4b5563;padding:6px 10px;text-decoration:none}.app-nav a.active{background:#2563eb1a;color:#2563eb}.app-user{align-items:center;display:flex;gap:10px}.app-user-email{color:#4b5563;font-size:13px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-main{flex:1 1;margin:0 auto;max-width:1100px;padding:22px 18px 40px;width:100%}.auth-page{background:radial-gradient(1200px 700px at 20% 10%,#6badff26,#0000 60%),radial-gradient(800px 500px at 90% 20%,#b46bff1a,#0000 55%),#f3f4f6;color:#1f2937;display:grid;min-height:100vh;padding:24px;place-items:center}.login-shell{background:#fff;color:#0b1220;display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-left{display:grid;padding:40px 24px;place-items:center}.login-card{max-width:520px;text-align:center;width:100%}.login-logo{display:block;height:auto;margin:0 auto 18px;width:150px}.login-title{color:#0b1220;font-size:28px;font-weight:800;margin:0 0 26px}.login-btn{align-items:center;background:#eef2f7;border:1px solid #d5dbe6;border-radius:6px;color:#0b1220;cursor:pointer;display:inline-flex;font-weight:700;gap:10px;justify-content:center;padding:14px 16px;width:100%}.login-btn:disabled{cursor:not-allowed;opacity:.6}.login-btn-icon{display:inline-flex;height:22px;width:22px}.login-alert{background:#f7f9fc;border:1px solid #d5dbe6;border-radius:8px;color:#0b1220;margin:12px 0 16px;padding:12px;text-align:left}.login-alert-title{font-weight:800;margin-bottom:6px}.login-alert-error{background:#dc262614;border-color:#dc262659}.login-meta{color:#0b1220a6;font-size:13px;margin-top:18px}.login-links a{color:#0b1220b3;text-decoration:none}.login-links a:hover{text-decoration:underline}.login-sep{color:#0b122059;margin:0 8px}.login-copy{margin-top:8px}.login-next{margin-top:10px}.login-right{background-position:50%;background-repeat:no-repeat;background-size:cover}.card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;max-width:520px;padding:22px 22px 18px;width:100%}.card h1,.page h2{margin:0 0 10px}.muted{color:#6b7280}.small{font-size:12px}.spacer{height:10px}.btn{align-items:center;border:1px solid #0000;border-radius:12px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:10px 14px;text-decoration:none}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-secondary{background:#fff;border-color:#d1d5db;color:#1f2937}.btn-secondary:hover{background:#f9fafb}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}.alert{background:#fff;border:1px solid #e5e7eb;border-radius:12px;color:#1f2937;margin:12px 0;padding:12px}.alert-title{font-weight:700;margin-bottom:6px}.alert-error{background:#fef2f2;border-color:#fca5a5;color:#991b1b}.alert-success{background:#f0fdf4;border-color:#86efac;color:#166534}.alert-warning{background:#fefce8;border-color:#facc15;color:#854d0e}.page{padding-top:8px}.grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}.panel{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:14px 14px 12px}.panel-title{font-weight:700;margin-bottom:8px}.profile-page{margin:0 auto;max-width:920px}.profile-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px}.profile-header p{margin:0}.profile-summary{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.profile-label{color:#6b7280;font-size:12px;font-weight:700;margin-bottom:5px;text-transform:uppercase}.profile-value{color:#111827;font-weight:700;overflow-wrap:anywhere}.profile-form,.profile-sections{grid-gap:14px;display:grid;gap:14px}.profile-form h3{margin:0}.profile-form label{grid-gap:6px;color:#374151;display:grid;font-size:13px;font-weight:700;gap:6px}.profile-form input,.profile-form select{background:#fff;border:1px solid #d1d5db;border-radius:10px;box-sizing:border-box;color:#111827;font:inherit;min-height:42px;padding:9px 11px;width:100%}.profile-form input:focus,.profile-form select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26;outline:none}.profile-form .btn{justify-self:start}.form-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.users-page{margin:0 auto;max-width:1180px}.users-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px}.users-header p{margin:0}.users-create-form{margin-bottom:14px}.users-create-grid{grid-gap:12px;align-items:end;display:grid;gap:12px;grid-template-columns:minmax(260px,1fr) 220px auto}.users-create-grid label{grid-gap:6px;color:#374151;display:grid;font-size:13px;font-weight:700;gap:6px}.users-create-grid input,.users-create-grid select,.users-role-select{background:#fff;border:1px solid #d1d5db;border-radius:10px;box-sizing:border-box;color:#111827;font:inherit;min-height:40px;padding:8px 10px;width:100%}.users-create-grid input:focus,.users-create-grid select:focus,.users-role-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26;outline:none}.users-table-panel{overflow:hidden}.users-table-wrap{overflow-x:auto;width:100%}.users-table{border-collapse:collapse;min-width:920px;width:100%}.users-table td,.users-table th{border-bottom:1px solid #e5e7eb;padding:12px 10px;text-align:left;vertical-align:middle}.users-table th{color:#6b7280;font-size:12px;font-weight:800;text-transform:uppercase}.users-table tr:last-child td{border-bottom:0}.users-username{font-weight:700;max-width:240px;overflow-wrap:anywhere}.users-role-select{min-width:160px}.users-role-select-error{border-color:#fca5a5}.users-role-error{color:#991b1b;font-size:12px;margin-top:5px}.status-pill{align-items:center;background:#f3f4f6;border-radius:999px;color:#4b5563;display:inline-flex;font-size:12px;font-weight:800;min-height:24px;padding:3px 8px}.status-active{background:#dcfce7;color:#166534}.users-actions{text-align:right;white-space:nowrap}.users-empty{color:#6b7280;text-align:center}@media (max-width:900px){.grid{grid-template-columns:1fr}.app-user-email{display:none}.login-shell{grid-template-columns:1fr}.login-right{display:none}.form-grid,.profile-header,.profile-summary{grid-template-columns:1fr}.profile-header{display:grid}.users-create-grid,.users-header{display:grid;grid-template-columns:1fr}}.firmware-page{margin:0 auto;max-width:1180px}.firmware-actions,.firmware-availability-row,.firmware-header,.firmware-section-heading{align-items:center;display:flex;gap:12px}.firmware-header{align-items:flex-start;justify-content:space-between;margin-bottom:16px}.firmware-header h2,.firmware-header p,.firmware-section-heading h3{margin:0}.firmware-role{background:#e0e7ff;color:#3730a3}.firmware-layout{grid-gap:14px;align-items:start;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.firmware-section{grid-gap:16px;display:grid;gap:16px}.firmware-section-heading{align-items:flex-start;justify-content:space-between}.firmware-form{grid-gap:14px;display:grid;gap:14px}.firmware-form label{grid-gap:6px;color:#374151;display:grid;font-size:13px;font-weight:700;gap:6px}.firmware-form input,.firmware-form select{background:#fff;border:1px solid #d1d5db;border-radius:8px;box-sizing:border-box;color:#111827;font:inherit;min-height:42px;padding:9px 11px;width:100%}.firmware-form input[type=file]{padding:8px}.firmware-form input:focus,.firmware-form select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26;outline:none}.firmware-file-field small{color:#6b7280;font-size:12px;font-weight:400}.firmware-form-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.firmware-span-two{grid-column:span 2}.firmware-actions{flex-wrap:wrap;justify-content:flex-start}.firmware-result-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding-top:2px}.firmware-result-grid div{min-width:0}.firmware-result-grid dt{color:#6b7280;font-size:12px;font-weight:700;text-transform:uppercase}.firmware-result-grid dd{color:#111827;font-size:13px;font-weight:700;margin:4px 0 0;overflow-wrap:anywhere}.firmware-availability{grid-gap:8px;border-top:1px solid #e5e7eb;display:grid;gap:8px;padding-top:14px}.firmware-availability-row{align-items:center;border-bottom:1px solid #f0f1f3;display:grid;font-size:13px;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto;padding-bottom:8px}.firmware-availability-row:last-child{border-bottom:0;padding-bottom:0}.firmware-role-badge{background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;color:#3730a3;font-size:12px;font-weight:800;padding:7px 10px}.firmware-notice{align-items:center;display:flex;justify-content:space-between}.firmware-icon-button,.firmware-notice button{background:#0000;border:0;color:inherit;cursor:pointer;font:inherit;font-weight:800}.firmware-tabs{border-bottom:1px solid #dbe1ea;display:flex;gap:4px;margin-bottom:20px}.firmware-tabs button{-webkit-appearance:none;appearance:none;background:#0000;border:0;border-bottom:3px solid #0000;color:#5b6473;cursor:pointer;font:inherit;font-weight:700;min-height:42px;padding:0 14px}.firmware-tabs button:hover{color:#1f2937}.firmware-tabs button.active{border-bottom-color:#2563eb;color:#1d4ed8}.firmware-view{grid-gap:16px;display:grid;gap:16px}.firmware-detail-top,.firmware-device-heading,.firmware-modal-actions,.firmware-toolbar,.firmware-toolbar-actions,.firmware-toolbar-title{align-items:center;display:flex;gap:12px}.firmware-toolbar{justify-content:space-between}.firmware-toolbar-title{align-items:baseline}.firmware-toolbar-title h3{color:#182235;font-size:19px;margin:0}.firmware-toolbar-title span{color:#6b7280;font-size:13px}.firmware-toolbar-actions{justify-content:flex-end}.firmware-summary-grid{background:#fff;border:1px solid #dce2ea;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.firmware-summary-grid>div{grid-gap:6px;border-right:1px solid #e5e7eb;display:grid;gap:6px;min-width:0;padding:15px 18px}.firmware-summary-grid>div:last-child{border-right:0}.firmware-summary-grid span,.firmware-wave-grid span{color:#697386;font-size:12px;font-weight:700}.firmware-summary-grid strong{color:#162033;font-size:24px;line-height:1}.firmware-device-search,.firmware-filters{grid-gap:12px;align-items:end;background:#fff;border:1px solid #dce2ea;display:grid;gap:12px;grid-template-columns:minmax(280px,1fr) 180px 180px;padding:15px}.firmware-device-search{grid-template-columns:minmax(280px,1fr) 180px auto}.firmware-confirmation label,.firmware-device-search label,.firmware-filters label,.firmware-inline-select,.firmware-wave-grid label{grid-gap:6px;color:#374151;display:grid;font-size:12px;font-weight:800;gap:6px}.firmware-confirmation input,.firmware-device-search input,.firmware-device-search select,.firmware-filters input,.firmware-filters select,.firmware-inline-select select,.firmware-wave-grid input{background:#fff;border:1px solid #cfd6e1;border-radius:6px;box-sizing:border-box;color:#182235;font:inherit;min-height:40px;padding:8px 10px;width:100%}.firmware-table-wrap{background:#fff;border:1px solid #dce2ea;overflow-x:auto}.firmware-table{border-collapse:collapse;min-width:940px;width:100%}.firmware-table td,.firmware-table th{border-bottom:1px solid #e7eaf0;padding:13px 14px;text-align:left;vertical-align:middle}.firmware-table th{background:#f8fafc;color:#687386;font-size:11px;font-weight:800;letter-spacing:0;text-transform:uppercase}.firmware-table tr:last-child td{border-bottom:0}.firmware-table td{color:#253044;font-size:13px}.firmware-table td>small,.firmware-table td>span,.firmware-table td>strong{display:block}.firmware-table td>small,.firmware-table td>span{color:#6c7686;font-size:12px;margin-top:4px}.firmware-link,.firmware-text-button{background:#0000;border:0;color:#1d4ed8;cursor:pointer;font:inherit;font-weight:700;padding:0;text-align:left}.firmware-link:hover,.firmware-text-button:hover{text-decoration:underline}.firmware-row-actions{white-space:nowrap}.firmware-row-actions .firmware-text-button+.firmware-text-button{margin-left:12px}.firmware-text-danger{color:#b42318}.firmware-channel,.firmware-status{align-items:center;border-radius:999px;display:inline-flex!important;font-size:11px!important;font-weight:800;line-height:1;margin-top:0!important;padding:5px 8px;white-space:nowrap}.firmware-channel-production,.firmware-status-active,.firmware-status-completed{background:#dcfae6;color:#067647!important}.firmware-channel-beta,.firmware-status-in-progress{background:#e0edff;color:#175cd3!important}.firmware-channel-alpha,.firmware-status-ready{background:#fef0c7;color:#b54708!important}.firmware-channel-internal,.firmware-status-limited{background:#eceef2;color:#475467!important}.firmware-status-disabled,.firmware-status-stopped{background:#fee4e2;color:#b42318!important}.firmware-empty{color:#697386;padding:28px;text-align:center}.firmware-device-layout{grid-gap:16px;display:grid;gap:16px;grid-template-columns:minmax(280px,.85fr) minmax(0,1.45fr)}.firmware-device-card{background:#fff;border:1px solid #dce2ea;padding:18px}.firmware-device-heading{align-items:flex-start;border-bottom:1px solid #e7eaf0;justify-content:space-between;padding-bottom:15px}.firmware-device-heading h3{color:#182235;font-size:18px;margin:3px 0 4px}.firmware-device-heading p{color:#697386;font-size:13px;margin:0}.firmware-eyebrow{color:#697386;font-size:11px;font-weight:800;text-transform:uppercase}.firmware-detail-grid,.firmware-device-facts{grid-gap:15px 18px;display:grid;gap:15px 18px;grid-template-columns:repeat(2,minmax(0,1fr));margin:18px 0 0}.firmware-detail-grid dt,.firmware-device-facts dt{color:#697386;font-size:11px;font-weight:800;text-transform:uppercase}.firmware-detail-grid dd,.firmware-device-facts dd{color:#253044;font-size:13px;font-weight:700;margin:5px 0 0;overflow-wrap:anywhere}.firmware-inline-select{min-width:140px}.firmware-package-options{grid-gap:8px;display:grid;gap:8px;margin:16px 0}.firmware-package-option{grid-gap:10px;align-items:center;border:1px solid #dce2ea;cursor:pointer;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;min-height:64px;padding:10px 12px}.firmware-package-option.selected{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb}.firmware-package-option input{height:16px;width:16px}.firmware-package-option small,.firmware-package-option strong{display:block}.firmware-package-option strong{color:#182235;font-size:14px}.firmware-package-option small{color:#697386;font-size:12px;margin-top:4px}.firmware-availability-list,.firmware-availability-result{grid-gap:8px;display:grid;gap:8px;margin:15px 0}.firmware-availability-list>div,.firmware-availability-result>div{grid-gap:12px;align-items:center;border-bottom:1px solid #e7eaf0;display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr) auto;min-height:34px;padding-bottom:8px}.firmware-availability-list>div{grid-template-columns:minmax(130px,.7fr) minmax(0,1fr) auto}.firmware-availability-list>div:last-child,.firmware-availability-result>div:last-child{border-bottom:0}.firmware-progress>div{background:#e5e7eb;height:7px;overflow:hidden;width:150px}.firmware-progress>div>span{background:#2563eb;display:block;height:100%}.firmware-progress small{color:#697386;display:block;font-size:11px;margin-top:5px}.firmware-modal-backdrop{align-items:center;background:#0f172a75;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:50}.firmware-modal{background:#fff;box-shadow:0 24px 48px #0f172a38;max-height:calc(100vh - 48px);max-width:620px;overflow-y:auto;padding:20px;width:min(100%,620px)}.firmware-modal-wide{max-width:760px;width:min(100%,760px)}.firmware-modal-header{align-items:center;border-bottom:1px solid #e7eaf0;display:flex;justify-content:space-between;margin-bottom:18px;padding-bottom:14px}.firmware-modal-header h3{color:#182235;font-size:19px;margin:0}.firmware-icon-button{border:1px solid #d0d5dd;border-radius:4px;color:#475467;height:30px;width:30px}.firmware-modal-actions{justify-content:flex-end;margin-top:4px}.firmware-detail{color:#475467;font-size:14px}.firmware-detail-top{justify-content:space-between}.firmware-detail h4{color:#182235;font-size:14px;margin:22px 0 10px}.firmware-confirmation{grid-gap:16px;display:grid;gap:16px}.firmware-confirmation p{color:#475467;line-height:1.5;margin:0}.firmware-confirmation label{grid-gap:6px;color:#374151;display:grid;font-size:13px;font-weight:700;gap:6px}.firmware-check{align-items:center;color:#374151;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:8px}.firmware-check input{height:16px;width:16px}.firmware-wave-grid{grid-gap:12px;align-items:end;border:1px solid #dce2ea;display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));padding:14px}.firmware-wave-grid>div{grid-gap:7px;display:grid;gap:7px}.firmware-wave-grid strong{color:#182235;font-size:22px}.firmware-rollout-breakdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:22px}.firmware-rollout-breakdown>div{grid-gap:6px;border-right:1px solid #e7eaf0;display:grid;gap:6px;padding:0 12px}.firmware-rollout-breakdown>div:first-child{padding-left:0}.firmware-rollout-breakdown>div:last-child{border-right:0}.firmware-rollout-breakdown span{color:#697386;font-size:12px}.firmware-rollout-breakdown strong{color:#182235;font-size:20px}@media (max-width:900px){.firmware-device-layout,.firmware-form-grid,.firmware-header,.firmware-layout,.firmware-result-grid{display:grid;grid-template-columns:1fr}.firmware-rollout-breakdown,.firmware-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.firmware-summary-grid>div:nth-child(2){border-right:0}.firmware-summary-grid>div:nth-child(-n+2){border-bottom:1px solid #e5e7eb}.firmware-device-search,.firmware-filters,.firmware-wave-grid{grid-template-columns:1fr}.firmware-span-two{grid-column:auto}.firmware-availability-row{align-items:start;grid-template-columns:1fr}}
/*# sourceMappingURL=main.68445382.css.map*/