:root{color-scheme:light;--font-sans: "Roboto", system-ui, -apple-system, Segoe UI, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--brand-500: #19D5FD;--brand-400: #66E0FF;--brand-600: #297FB9;--brand-700: #1D61F0;--bg-50: #F7FAFD;--bg-0: #FFFFFF;--bg-100: #E9EFF6;--text-900: #111318;--text-700: #3A414A;--text-500: #667085;--link: var(--brand-700);--success-600: #16A086;--warning-600: #DA621E;--danger-600: #C02F1D;--info-600: #41BBC1;--border: color-mix(in srgb, var(--text-900) 12%, var(--bg-0));--border-strong: color-mix(in srgb, var(--text-900) 20%, var(--bg-0));--shadow-sm: 0 1px 2px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 10px 28px rgba(0,0,0,.18), 0 3px 10px rgba(0,0,0,.1);--scrim: rgba(0,0,0,.32);--r-sm: 12px;--r-md: 16px;--r-lg: 24px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-7: 32px;--focus-ring: 0 0 0 3px color-mix(in srgb, var(--brand-500) 40%, transparent)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg-50: #0F1418;--bg-0: #141B21;--bg-100: #1C2630;--text-900: #E7EEF6;--text-700: #CBD6E2;--text-500: #9AA9B8;--link: var(--brand-400);--border: color-mix(in srgb, var(--text-900) 14%, var(--bg-0));--border-strong: color-mix(in srgb, var(--text-900) 22%, var(--bg-0));--shadow-sm: 0 1px 2px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.35);--shadow-md: 0 14px 34px rgba(0,0,0,.6), 0 6px 16px rgba(0,0,0,.35);--scrim: rgba(0,0,0,.6)}}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);color:var(--text-900);background:var(--bg-50);line-height:1.4}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}code,pre{font-family:var(--font-mono)}code{background:color-mix(in srgb,var(--bg-100) 80%,var(--bg-0) 20%);padding:2px 6px;border-radius:8px}input,select,textarea,button{font:inherit}input,select,textarea{background:var(--bg-0);color:var(--text-900);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 10px;outline:none}textarea{width:100%;min-height:80px}input:focus,select:focus,textarea:focus,button:focus{box-shadow:var(--focus-ring)}button{background:var(--bg-0);color:var(--text-900);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 12px;cursor:pointer;position:relative;overflow:hidden;min-height:36px;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}button:after{content:"";position:absolute;inset:0;background:currentColor;opacity:0;pointer-events:none;transition:opacity .15s ease}button:hover{border-color:var(--border-strong)}button:hover:after{opacity:.08}button:active:after{opacity:.12}button:disabled{opacity:.55;cursor:not-allowed;transform:none}button:disabled:after{opacity:0}.btn-primary{background:var(--brand-500);border-color:color-mix(in srgb,var(--brand-500) 70%,var(--brand-700) 30%);color:#001018;font-weight:650;box-shadow:var(--shadow-sm)}.btn-primary:hover{border-color:color-mix(in srgb,var(--brand-700) 55%,var(--brand-500) 45%)}.btn-danger{background:color-mix(in srgb,var(--danger-600) 15%,var(--bg-0) 85%);border-color:color-mix(in srgb,var(--danger-600) 35%,var(--border) 65%);color:color-mix(in srgb,var(--danger-600) 85%,var(--text-900) 15%)}.btn-danger:hover{background:color-mix(in srgb,var(--danger-600) 22%,var(--bg-0) 78%);border-color:color-mix(in srgb,var(--danger-600) 50%,var(--border) 50%)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:color-mix(in srgb,var(--text-900) 6%,transparent);border-color:transparent}.btn-small{padding:6px 10px;font-size:13px;border-radius:999px;min-height:32px}.muted{color:var(--text-500)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;background:color-mix(in srgb,var(--bg-100) 55%,var(--bg-0) 45%);border:1px solid var(--border);font-size:12px;color:var(--text-700);white-space:nowrap}.badge--success{background:color-mix(in srgb,var(--success-600) 14%,var(--bg-0) 86%);border-color:color-mix(in srgb,var(--success-600) 30%,var(--border) 70%);color:color-mix(in srgb,var(--success-600) 70%,var(--text-900) 30%)}.badge--warning{background:color-mix(in srgb,var(--warning-600) 14%,var(--bg-0) 86%);border-color:color-mix(in srgb,var(--warning-600) 30%,var(--border) 70%);color:color-mix(in srgb,var(--warning-600) 70%,var(--text-900) 30%)}.badge--danger{background:color-mix(in srgb,var(--danger-600) 12%,var(--bg-0) 88%);border-color:color-mix(in srgb,var(--danger-600) 28%,var(--border) 72%);color:color-mix(in srgb,var(--danger-600) 70%,var(--text-900) 30%)}.table{width:100%;border-collapse:collapse}.table td,.table th{border-bottom:1px solid var(--border);padding:8px 6px;text-align:left;vertical-align:top}.table thead th{color:var(--text-700);font-weight:650}.spinner{display:inline-block;width:14px;height:14px;border:2px solid color-mix(in srgb,var(--brand-400) 55%,var(--bg-0) 45%);border-top-color:var(--brand-700);border-radius:50%;animation:fibSpin .8s linear infinite}@keyframes fibSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.switch__label{font-size:13px;color:var(--text-700)}.switch__input{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}.switch__track{position:relative;width:42px;height:24px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--bg-100) 55%,var(--bg-0) 45%);transition:background-color .15s ease,border-color .15s ease;flex:0 0 auto}.switch__thumb{position:absolute;top:50%;left:3px;width:18px;height:18px;border-radius:999px;transform:translateY(-50%);background:var(--bg-0);box-shadow:0 1px 2px #0000001f;transition:left .15s ease}.switch__input:checked+.switch__track{background:color-mix(in srgb,var(--brand-500) 55%,var(--bg-0) 45%);border-color:color-mix(in srgb,var(--brand-600) 55%,var(--border) 45%)}.switch__input:checked+.switch__track .switch__thumb{left:21px}.switch__input:focus-visible+.switch__track{box-shadow:var(--focus-ring)}.container{max-width:1200px;margin:0 auto;padding:20px 16px}@media(min-width:1024px){.container{padding:24px 28px}}.row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.card{background:var(--bg-0);border:1px solid var(--border);border-radius:var(--r-md);padding:18px;box-shadow:var(--shadow-sm);margin-bottom:16px}.card--soft{background:color-mix(in srgb,var(--bg-0) 92%,var(--bg-50) 8%)}.page{min-height:100vh;display:flex;flex-direction:column}.page__main{flex:1;padding:18px 0 34px}.app-header{background:var(--bg-0);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1100}@supports ((-webkit-backdrop-filter: blur(10px)) or (backdrop-filter: blur(10px))){.app-header{background:color-mix(in srgb,var(--bg-0) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}}.app-header__inner{display:flex;align-items:center;margin:0 auto;gap:18px;padding:14px 16px}.app-title{font-size:18px;line-height:1.2;margin:0;font-weight:750;letter-spacing:.2px}.app-subtitle{font-size:13px;color:var(--text-500)}.app-nav{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.nav-btn{padding:7px 10px;font-size:13px;border-radius:999px}.nav-btn.is-active{background:color-mix(in srgb,var(--brand-500) 25%,var(--bg-0) 75%);border-color:color-mix(in srgb,var(--brand-600) 30%,var(--border) 70%)}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.device-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}@media(max-width:420px){.device-grid{grid-template-columns:1fr}}.device-card{background:var(--bg-0);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:16px}.device-card.is-measuring{border-color:color-mix(in srgb,var(--success-600) 40%,var(--border) 60%)}.device-card.is-error{border-color:color-mix(in srgb,var(--danger-600) 45%,var(--border) 55%)}.device-card__header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.device-name{font-weight:800;letter-spacing:.1px}.device-actions{margin-left:auto;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.device-meta{margin-top:10px;display:flex;gap:12px;flex-wrap:wrap}.device-meta__item{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-700)}.device-hint{margin-top:10px;font-size:12px;color:var(--text-500)}.device-section{margin-top:12px;border-top:1px solid var(--border);padding-top:14px}.device-section__title{font-weight:750;margin:0 0 10px}.global-progress{position:fixed;left:0;right:0;background:var(--bg-0);border-bottom:1px solid var(--border);box-shadow:0 1px 3px #00000014;z-index:999}.global-progress__inner{max-width:1200px;margin:0 auto;padding:10px 16px}.progress-bar{height:4px;background:color-mix(in srgb,var(--bg-100) 70%,var(--bg-0) 30%);border-radius:999px;overflow:hidden}.progress-bar__fill{height:4px;background:var(--brand-500);transition:width .2s ease-out}.modal-backdrop{position:fixed;inset:0;background:var(--scrim);display:grid;place-items:center;padding:16px;z-index:1000}.modal-panel{background:var(--bg-0);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);width:min(900px,100%);max-height:90vh;overflow:auto;padding:20px}.modal-panel--sm{width:min(520px,100%)}.modal-panel--md{width:min(720px,100%)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.modal-title{font-weight:800;font-size:16px}.modal-close{padding:6px 10px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:860px){.form-grid-2{grid-template-columns:1fr}}.fieldset{border:1px solid var(--border);border-radius:var(--r-md);padding:14px;min-width:0}.fieldset>legend{padding:0 8px;font-weight:750;color:var(--text-700)}.form-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.divider{height:1px;background:var(--border);margin:10px 0}.projects-layout{display:grid;gap:16px;grid-template-columns:1fr}@media(min-width:900px){.projects-layout{grid-template-columns:280px 1fr}}.licensing-layout{display:grid;gap:16px;grid-template-columns:1fr;align-items:start}@media(min-width:1024px){.licensing-layout{grid-template-columns:1fr 340px}}.licensing-side{align-self:start}@media(min-width:1024px){.licensing-side{position:sticky;top:88px}}
