@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0a0a;--bg-raised:#111;--bg-overlay:#1a1a1a;--fg:#ededed;--fg-muted:#a1a1a1;--fg-subtle:#666;--border:#1f1f1f;--border-raised:#2e2e2e;--accent:#52accd;--accent-dim:#52accd24;--accent-fg:#0a0a0a;--success:#22c55e;--success-dim:#22c55e1f;--warning:#f59e0b;--warning-dim:#f59e0b1f;--danger:#ef4444;--danger-dim:#ef44441f;--info:#60a5fa;--info-dim:#60a5fa1f;--shadow-sm:0 1px 3px #0006, 0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 12px 40px #0009;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:10px;--r-xl:12px;--r-full:9999px;--ease:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--dur-fast:.1s;--dur-base:.15s;--dur-slow:.22s;--font-sans:var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, "SF Mono", Consolas, monospace;--sidebar-w:256px;--footer-panel-h:210px;--activity-bar-h:44px}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--bg-raised:#fafafa;--bg-overlay:#f4f4f5;--fg:#0a0a0a;--fg-muted:#737373;--fg-subtle:#a1a1a1;--border:#e4e4e7;--border-raised:#d4d4d8;--accent:#2969b1;--accent-dim:#2969b114;--accent-fg:#fff;--success:#16a34a;--success-dim:#16a34a14;--warning:#d97706;--warning-dim:#d9770614;--danger:#dc2626;--danger-dim:#dc262614;--info:#2563eb;--info-dim:#2563eb14;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 12px 40px #0000001f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);min-height:100%;color:var(--fg);font-family:var(--font-sans);-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5;overflow-x:clip}@supports not (overflow:clip){html,body{overflow-x:hidden}}button,select,input,textarea{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}.app-layout{max-width:1200px;height:100dvh;margin:0 auto;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-w);background:var(--bg);flex-direction:column;flex-shrink:0;height:100dvh;display:flex;overflow:hidden}.sidebar-scroll{scrollbar-width:none;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}.sidebar-scroll::-webkit-scrollbar{display:none}.sidebar-brand{align-items:center;gap:10px;height:66px;padding:0 16px;display:flex}.sidebar-brand-icon{flex-shrink:0;place-items:center;width:30px;height:30px;display:grid}.sidebar-brand-icon img{height:auto;display:block}.pine64-logotype{color:var(--fg);font-family:"Arial Narrow", "Noto Sans Telugu UI", var(--font-sans);letter-spacing:0;align-items:center;gap:7px;font-size:16px;font-weight:600;font-stretch:75%;line-height:1;display:inline-flex}.pine64-logotype img{flex-shrink:0;height:auto;display:block}.sidebar-brand-text strong{letter-spacing:-.01em;font-size:18px;font-weight:600;line-height:1.2;display:block}.sidebar-nav{flex-direction:column;gap:2px;padding:8px;display:flex}.sidebar-nav-item{border-radius:var(--r-sm);width:100%;min-height:36px;color:var(--fg-muted);cursor:pointer;transition:background var(--dur-base) var(--ease), color var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:9px;padding:0 10px;font-size:13px;font-weight:500;display:flex}.sidebar-nav-item:hover{background:var(--bg-raised);color:var(--fg)}.sidebar-nav-item:disabled{cursor:not-allowed;opacity:.42}.sidebar-nav-item:disabled:hover{color:var(--fg-muted);background:0 0}.sidebar-nav-item[aria-pressed=true]{background:var(--accent-dim);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 20%, transparent)}.sidebar-nav-item svg{opacity:.7;transition:opacity var(--dur-base);flex-shrink:0}.sidebar-nav-item:hover svg,.sidebar-nav-item[aria-pressed=true] svg{opacity:1}.sidebar-divider{display:none}.sidebar-device{flex-direction:column;gap:12px;padding:12px 16px 16px;display:flex}.sidebar-device-heading{justify-content:space-between;align-items:center;display:flex}.sidebar-device-heading span{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-subtle);font-size:11px;font-weight:600}.sidebar-device-info{flex-direction:column;gap:8px;padding:4px 2px;display:flex}.sidebar-device-name{min-height:18px;color:var(--fg);transition:color var(--dur-base) var(--ease);align-items:flex-start;gap:8px;padding-block:2px;font-size:13px;font-weight:600;line-height:1.3;display:flex}.sidebar-device-meta{min-height:30px;color:var(--fg-subtle);font-size:11px;font-family:var(--font-mono);transition:color var(--dur-base) var(--ease);flex-direction:column;gap:3px;padding-block:2px;line-height:1.5;display:flex}.sidebar-device-meta:empty{min-height:0}.sidebar-connection-indicator{--pulse-color:var(--success);height:1.3em;color:var(--pulse-color);flex:0 0 24px;justify-content:center;align-items:center;display:inline-flex}.sidebar-device-name[data-connected=false] .sidebar-connection-indicator{--pulse-color:var(--danger)}.sidebar-connection-dot{background:var(--pulse-color);width:8px;height:8px;transition:background-color var(--dur-slow) var(--ease), box-shadow var(--dur-slow) var(--ease);border-radius:50%;flex:0 0 8px;position:relative}.sidebar-connection-dot:before,.sidebar-connection-dot:after{content:"";pointer-events:none;border-radius:50%;animation:2.4s cubic-bezier(.2,.6,.4,1) infinite sonar-ping;position:absolute;inset:0}.sidebar-connection-dot:after{animation-delay:1.2s}@keyframes sonar-ping{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--pulse-color) 70%, transparent);opacity:1}80%{opacity:.4}to{box-shadow:0 0 0 12px color-mix(in srgb, var(--pulse-color) 0%, transparent);opacity:0}}@keyframes soft-enter{0%{opacity:.82;transform:translateY(2px)}to{opacity:1;transform:none}}.chip{transition:background var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease), color var(--dur-base) var(--ease), opacity var(--dur-base) var(--ease);animation:chip-settle var(--dur-slow) var(--ease) both}@keyframes chip-settle{0%{opacity:.72;transform:translateY(1px)}to{opacity:1;transform:none}}.fade-in{animation:fade-in var(--dur-base) linear both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sidebar-mode-help{min-height:48px;color:var(--fg-muted);margin-top:8px;font-size:11px;line-height:1.45}.sidebar-connect-btns{justify-content:flex-start;display:flex}.sidebar-connect-btns .btn{width:50%}.sidebar-footer{height:var(--footer-panel-h);flex-direction:column;flex-shrink:0;gap:10px;padding:14px 16px 16px;display:flex}.sidebar-footer-tagline{color:var(--fg-muted);font-size:11px;font-weight:600;line-height:1.35}.sidebar-footer-disclaimer{color:var(--fg-subtle);font-size:11px;line-height:1.45}.sidebar-footer-links{flex-wrap:wrap;gap:6px 12px;display:flex}.sidebar-footer-links a{color:var(--fg-muted);transition:color var(--dur-base) var(--ease);font-size:11px;line-height:1.4}.sidebar-footer-links a:hover{color:var(--accent)}.sidebar-footer .theme-switch{margin-top:auto}.main{background:var(--bg);flex-direction:column;flex:1;min-width:0;height:100dvh;display:flex;overflow:hidden}.mobile-connection-header{display:none}.main-content{scrollbar-gutter:stable both-edges;scrollbar-width:thin;scrollbar-color:var(--border-raised) transparent;flex:1;padding:24px;overflow-y:auto}.panel-section{flex-direction:column;gap:20px;max-width:800px;margin:0 auto;display:flex}.section-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.section-heading-text h2{letter-spacing:-.02em;font-size:18px;font-weight:600;line-height:1.2}.section-heading-text p{color:var(--fg-muted);margin-top:4px;font-size:13px;line-height:1.5}.section-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-raised);overflow:hidden}.section-card-body{padding:16px 20px}.section-card-body+.section-card-body{border-top:1px solid var(--border)}.activity-panel-outer{flex-shrink:0;padding:0 24px 24px}.activity-panel{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-lg);max-width:800px;margin:0 auto;overflow:hidden}.activity-bar{height:var(--activity-bar-h);align-items:center;gap:12px;padding:0 16px;display:flex}.activity-bar-main{min-width:0;height:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dur-base) var(--ease);background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:0;display:flex}.activity-bar:hover,.activity-bar:focus-within{background:var(--bg-overlay)}.activity-bar-main:focus-visible{outline:none}.activity-bar-toggle{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-subtle);flex-shrink:0;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.activity-bar-toggle svg{transition:transform var(--dur-base) var(--ease)}.activity-bar-toggle[data-open=true] svg{transform:rotate(180deg)}.activity-progress-wrap{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.activity-progress-track{border-radius:var(--r-full);background:var(--border-raised);flex:1;height:3px;position:relative;overflow:hidden}.activity-progress-fill{z-index:1;border-radius:var(--r-full);background:var(--accent);height:100%;transition:width .2s var(--ease);position:relative}.activity-progress-track[data-pulse=true]:after{content:"";border-radius:inherit;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 45%, transparent), transparent);animation:activity-track-pulse 1.2s var(--ease) infinite;position:absolute;inset:0;transform:translate(-100%)}.activity-progress-track[data-pulse=true] .activity-progress-fill[data-state=active]{animation:activity-fill-pulse 1.2s var(--ease) infinite}.activity-progress-fill[data-state=success]{background:var(--success)}.activity-progress-fill[data-state=fail]{background:var(--danger)}.activity-progress-fill[data-indeterminate=true]{animation:indeterminate 1.4s var(--ease) infinite;width:35%!important}@keyframes indeterminate{0%{transform:translate(-120%)}to{transform:translate(420%)}}@keyframes activity-track-pulse{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes activity-fill-pulse{0%,to{opacity:.6}50%{opacity:1}}.activity-progress-label{font-size:11px;font-family:var(--font-mono);color:var(--fg-muted);flex-shrink:0}.activity-phase{color:var(--fg-muted);flex-shrink:0;align-items:center;gap:5px;font-size:11px;display:inline-flex}.activity-phase[data-state=success]{color:var(--success)}.activity-phase[data-state=fail]{color:var(--danger)}.activity-bar-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.activity-clear-button{border-color:var(--border-raised);background:var(--bg-raised);color:var(--fg-muted)}.activity-expanded{border-top:1px solid var(--border);height:var(--footer-panel-h)}.log-list{height:100%;min-height:0;font-family:var(--font-mono);scrollbar-width:thin;scrollbar-color:var(--border-raised) transparent;padding:10px;font-size:11.5px;overflow-y:auto}.log-list p{grid-template-columns:60px 46px 1fr;align-items:baseline;gap:6px;padding:2px 0;line-height:1.6;display:grid}.log-list p:last-child{padding-bottom:0}.log-time{color:var(--fg-subtle)}.log-level{border-radius:var(--r-xs);text-align:center;padding:0 5px;font-size:10px;font-weight:700;line-height:18px;display:inline-block}.log-level[data-level=INFO]{background:var(--bg-overlay);color:var(--fg-subtle)}.log-level[data-level=OK]{background:var(--success-dim);color:var(--success)}.log-level[data-level=WARN]{background:var(--warning-dim);color:var(--warning)}.log-level[data-level=ERROR]{background:var(--danger-dim);color:var(--danger)}.log-msg{color:var(--fg-muted);word-break:break-word}.btn{border:1px solid var(--border-raised);border-radius:var(--r-sm);background:var(--bg-raised);min-height:34px;color:var(--fg);font-size:13px;font-weight:500;font-family:var(--font-sans);cursor:pointer;white-space:nowrap;transition:background var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease), color var(--dur-base) var(--ease), opacity var(--dur-base) var(--ease);outline:none;justify-content:center;align-items:center;gap:7px;padding:0 14px;display:inline-flex}.btn:hover{background:var(--bg-overlay);border-color:var(--border-raised)}.btn:focus-visible{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--accent)}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600}.btn-primary:hover{background:color-mix(in srgb, var(--accent) 88%, white);border-color:color-mix(in srgb, var(--accent) 88%, white)}.btn-ghost{color:var(--fg-muted);background:0 0;border-color:#0000;min-height:28px;padding:0 8px;font-size:12px}.btn-ghost:hover{background:var(--bg-raised);color:var(--fg);border-color:#0000}.btn-sm{min-height:28px;padding:0 10px;font-size:12px}.btn-compact{gap:6px;min-height:30px;padding:0 10px;font-size:12px}.btn-icon{width:34px;padding:0}.btn-full{width:100%}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ble-actions{justify-content:flex-start;margin-top:-8px}.btn-row-end{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--fg-muted);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.field-label-link{color:var(--fg-subtle);transition:color var(--dur-base) var(--ease);align-items:center;text-decoration:none;display:inline-flex}.field-label-link:hover,.field-label-link:focus-visible{color:var(--accent);outline:none}.input,.select{border:1px solid var(--border-raised);border-radius:var(--r-sm);background:var(--bg);width:100%;min-height:34px;color:var(--fg);transition:border-color var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease);outline:none;padding:0 10px;font-size:13px}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23a1a1a1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}html[data-theme=light] .select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.input:disabled,.select:disabled{opacity:.4;cursor:not-allowed}input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}input[type=checkbox]{accent-color:var(--accent);cursor:pointer;flex-shrink:0;width:14px;height:14px}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.chip{border-radius:var(--r-full);border:1px solid var(--border-raised);background:var(--bg-raised);height:24px;color:var(--fg-muted);white-space:nowrap;align-items:center;gap:5px;padding:0 9px;font-size:11px;font-weight:500;display:inline-flex}.chip:before{content:"";opacity:.5;background:currentColor;border-radius:50%;width:5px;height:5px}.chip[data-tone=green]{background:var(--success-dim);border-color:color-mix(in srgb, var(--success) 25%, transparent);color:var(--success)}.chip[data-tone=amber]{background:var(--warning-dim);border-color:color-mix(in srgb, var(--warning) 25%, transparent);color:var(--warning)}.chip[data-tone=red]{background:var(--danger-dim);border-color:color-mix(in srgb, var(--danger) 25%, transparent);color:var(--danger)}.chip[data-tone=gray]{color:var(--fg-subtle)}.info-rows{border:1px solid var(--border);border-radius:var(--r-md);gap:1px;display:grid;overflow:hidden}.info-row{background:var(--bg-raised);grid-template-columns:148px 1fr;align-items:baseline;gap:12px;padding:9px 14px;font-size:13px;display:grid}.info-row:not(:last-child){border-bottom:1px solid var(--border)}.info-row dt{color:var(--fg-muted);font-size:12px}.info-row dd{color:var(--fg);font-family:var(--font-mono);word-break:break-all;font-size:12px}.grouped-panel{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg);position:relative;overflow:visible}.grouped-panel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.grouped-panel-heading{border-bottom:1px solid var(--border);border-radius:calc(var(--r-md) - 1px) calc(var(--r-md) - 1px) 0 0;background:var(--bg-overlay);min-height:38px;color:var(--fg-muted);justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-size:12px;font-weight:600;display:flex}.grouped-panel-heading svg{color:var(--fg-subtle);flex:none}.grouped-panel-title{align-items:center;gap:8px;min-width:0;display:inline-flex}.grouped-panel-list{grid-template-columns:1fr;margin:0;display:grid}.grouped-panel-row{border-bottom:1px solid var(--border)}.grouped-panel-row:last-child{border-bottom:none}.safety-item{color:var(--fg-muted);cursor:pointer;transition:background var(--dur-base);align-items:center;gap:8px;padding:10px 14px;font-size:12px;display:flex}.safety-item:hover{background:var(--bg-raised)}.safety-item svg{flex-shrink:0}.safety-item-warning{color:var(--warning);background:var(--warning-dim);gap:8px}.safety-item-warning:hover{background:var(--warning-dim)}.empty-notice{border:1px dashed var(--border-raised);border-radius:var(--r-md);background:var(--bg-raised);color:var(--fg-muted);align-items:center;gap:10px;padding:14px;font-size:13px;display:flex}.device-splash-guides{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.splash-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg);flex-direction:column;padding:14px;display:flex}.splash-card-body{flex-direction:column;flex:1;min-width:0;display:flex}.splash-card h3{letter-spacing:0;font-size:13px;font-weight:600}.splash-card p{color:var(--fg-muted);margin-top:5px;font-size:12px;line-height:1.55}.device-splash-guide-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;padding-top:12px;display:flex}.callout{border-radius:var(--r-md);border:1px solid;align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;display:flex}.callout-warning{background:var(--warning-dim);border-color:color-mix(in srgb, var(--warning) 28%, transparent);color:var(--warning)}.callout-info{background:var(--info-dim);border-color:color-mix(in srgb, var(--info) 28%, transparent);color:var(--info)}.callout label{cursor:pointer;align-items:center;gap:8px;line-height:1.4;display:flex}.browser-notice{background:var(--warning-dim);border-color:color-mix(in srgb, var(--warning) 30%, transparent);flex-direction:row;align-items:flex-start;gap:10px;width:100%;max-width:800px;margin:0 auto 20px}.browser-notice-icon{color:var(--warning);flex-shrink:0;margin-top:1px}.browser-notice h3{color:var(--fg)}.browser-notice-body a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.flash-action-bar{justify-content:flex-end;align-items:center;gap:8px;padding-top:4px;display:flex}.firmware-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.logo-grid{grid-template-columns:1fr 1fr;align-items:stretch;gap:16px;display:grid}.drop-zone{border:1px dashed var(--border-raised);border-radius:var(--r-md);background:var(--bg-raised);background-image:radial-gradient(var(--border) 1px, transparent 1px);min-height:200px;color:var(--fg-muted);text-align:center;cursor:pointer;transition:border-color var(--dur-base) var(--ease), background-color var(--dur-base) var(--ease);background-size:20px 20px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex;position:relative}.drop-zone:hover,.drop-zone[data-dragging=true]{border-color:var(--accent);background-color:var(--accent-dim)}.drop-zone input{opacity:0;cursor:pointer;position:absolute;inset:0}.drop-zone input:disabled{cursor:not-allowed}.drop-zone strong{color:var(--fg);font-size:13px}.drop-zone span{color:var(--fg-subtle);font-size:12px}.logo-preview-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);flex-direction:column;gap:12px;padding:16px;display:flex}.logo-screen{aspect-ratio:6;border-radius:var(--r-sm);color:#e0e0e0;width:100%;font-family:var(--font-mono);letter-spacing:.05em;touch-action:none;-webkit-user-select:none;user-select:none;background:#050505;border:5px solid #1a1a1a;place-items:center;font-size:24px;display:grid;overflow:hidden}.logo-screen[data-pannable=true]{cursor:grab}.logo-screen[data-pannable=true]:active{cursor:grabbing}.pixel-grid{grid-template-rows:repeat(16,1fr);grid-template-columns:repeat(96,1fr);width:100%;height:100%;display:grid}.pixel-grid i{background:#050505;display:block}.pixel-grid i[data-on=true]{background:#e8e8e8}.logo-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.logo-controls-label{color:var(--fg-muted);flex-direction:column;gap:6px;font-size:12px;font-weight:500;display:flex}.logo-controls-toggle{color:var(--fg-muted);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding-bottom:4px;font-size:12px;font-weight:500;display:flex}.logo-restore-action{align-items:center;gap:6px;display:inline-flex}.icon-help{border-radius:var(--r-sm);width:26px;height:26px;color:var(--fg-subtle);cursor:help;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.icon-help:hover,.icon-help:focus-visible{color:var(--accent)}.tooltip-anchor{display:inline-flex;position:relative}.tooltip-bubble{z-index:20;border:1px solid var(--border-raised);border-radius:var(--r-sm);background:var(--bg-overlay);width:min(280px,100vw - 48px);box-shadow:var(--shadow-md);color:var(--fg);opacity:0;pointer-events:none;visibility:hidden;transition:opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), visibility 0s linear var(--dur-fast);padding:9px 10px;font-size:12px;font-weight:500;line-height:1.45;position:absolute;bottom:calc(100% + 8px);right:0;transform:translateY(4px)}.tooltip-anchor:hover .tooltip-bubble,.tooltip-anchor:focus-within .tooltip-bubble{opacity:1;visibility:visible;transition-delay:0s;transform:translateY(0)}.file-pick{border:1px solid var(--border-raised);border-radius:var(--r-sm);background:var(--bg-raised);min-height:34px;color:var(--fg);cursor:pointer;white-space:nowrap;transition:background var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease);align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex;position:relative;overflow:hidden}.file-pick:hover{background:var(--bg-overlay)}.file-pick input{opacity:0;cursor:pointer;font-size:0;position:absolute;inset:0}.file-pick input:disabled{cursor:not-allowed}.file-pick[data-disabled=true]{opacity:.4;pointer-events:none}.telemetry-chart{padding:14px}.telemetry-unit-toggle{flex:none}.telemetry-chart-header,.ble-settings-toggle{justify-content:space-between;align-items:center;gap:12px;display:flex}.telemetry-chart-title,.ble-settings-toggle span:first-child{color:var(--fg);align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.ble-settings-toggle-meta,.telemetry-chart-axis{color:var(--fg-subtle);font-family:var(--font-mono);font-size:11px}.telemetry-chart-frame{--telemetry-chart-axis-gap:8px;--telemetry-chart-axis-width:54px;grid-template-columns:var(--telemetry-chart-axis-width) minmax(0, 1fr);gap:6px var(--telemetry-chart-axis-gap);grid-template-rows:minmax(108px,128px) 18px;margin-top:12px;display:grid}.telemetry-chart-frame[data-has-right-axis=true]{grid-template-columns:var(--telemetry-chart-axis-width) minmax(0, 1fr) var(--telemetry-chart-axis-width)}.telemetry-chart-plot{border:1px solid var(--border);border-radius:var(--r-md);background:linear-gradient(180deg, transparent, #ffffff04), var(--bg);min-height:108px;overflow:hidden}.telemetry-chart-axis{line-height:1}.telemetry-chart-axis-scale{min-height:108px;color:var(--fg-subtle);font-family:var(--font-mono);font-size:10px;line-height:1;position:relative}.telemetry-chart-axis-scale-left{text-align:right}.telemetry-chart-axis-scale-right{text-align:left;grid-column:3}.telemetry-chart-axis-unit{top:0;color:var(--fg-muted);font-weight:600;position:absolute;inset-inline-start:0}.telemetry-chart-axis-scale-left .telemetry-chart-axis-unit,.telemetry-chart-axis-scale-left .telemetry-chart-axis-tick{inset-inline:auto 0}.telemetry-chart-axis-tick{white-space:nowrap;position:absolute;inset-inline-start:0;transform:translateY(-50%)}.telemetry-chart-axis-x{grid-column:2;width:100%;min-height:18px;position:relative}.telemetry-chart-frame[data-has-right-axis=true] .telemetry-chart-axis-x{grid-column:2}.telemetry-chart-axis-x-tick{white-space:nowrap;position:absolute;top:2px;transform:translate(-50%)}.telemetry-chart-axis-x-tick[data-edge=start]{transform:translate(0)}.telemetry-chart-axis-x-tick[data-edge=end]{transform:translate(-100%)}.telemetry-chart-plot svg{width:100%;height:100%;display:block}.telemetry-chart-grid-line{fill:none;stroke:var(--border);stroke-width:.45px;vector-effect:non-scaling-stroke}.telemetry-chart-line{fill:none;stroke-width:2.1px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.telemetry-chart-line-tip{stroke:#f97316}.telemetry-chart-line-setpoint{stroke:var(--accent)}.telemetry-chart-line-input{stroke:var(--info)}.telemetry-chart-line-power{stroke:var(--warning)}.telemetry-chart-inline{padding:0}.telemetry-chart-inline .telemetry-chart-frame{--telemetry-chart-axis-gap:4px;--telemetry-chart-axis-width:30px;gap:4px var(--telemetry-chart-axis-gap);grid-template-rows:68px 14px;margin-top:0}.telemetry-chart-inline .telemetry-chart-plot{border-radius:var(--r-sm);min-height:68px}.telemetry-chart-inline .telemetry-chart-axis,.telemetry-chart-inline .telemetry-chart-axis-scale{font-size:9px}.telemetry-chart-inline .telemetry-chart-axis-scale{min-height:68px}.telemetry-chart-inline .telemetry-chart-axis-unit{font-size:9px}.telemetry-chart-inline .telemetry-chart-axis-x{min-height:12px}.telemetry-chart-inline .telemetry-chart-axis-x-tick{top:1px}.telemetry-chart-inline .telemetry-chart-line{stroke:var(--accent);stroke-width:1.8px}.telemetry-secondary-group{container-type:inline-size}.telemetry-secondary-row{grid-template-columns:minmax(104px,.9fr) minmax(0,1fr);align-items:baseline;gap:10px;min-height:36px;padding:8px 12px;font-size:12px;display:grid}.telemetry-secondary-row-with-chart{align-items:start;gap:10px;padding-bottom:8px}.telemetry-secondary-row dt{color:var(--fg-muted);align-items:center;gap:7px;display:inline-flex}.telemetry-field-help .icon-help{width:18px;height:18px;color:var(--fg-subtle)}.telemetry-field-help .tooltip-bubble{bottom:calc(100% + 6px);left:0;right:auto}.telemetry-secondary-group:nth-child(2n) .telemetry-field-help .tooltip-bubble{left:auto;right:0}.telemetry-secondary-row dd{color:var(--fg);font-family:var(--font-mono);text-align:right;word-break:break-word;margin:0}.telemetry-secondary-inline-chart{grid-column:1/-1;min-width:0}.settings-row{grid-template-columns:minmax(136px,1fr) minmax(0,auto)}.settings-row[data-dirty=true]{background:var(--accent-dim);box-shadow:inset 2px 0 0 var(--accent)}.settings-row dt,.settings-row dt>span:first-child{min-width:0}.settings-row dd{word-break:normal;justify-content:flex-end;min-width:0;display:flex}.settings-row-meta{border-radius:var(--r-full);min-height:18px;font-size:10px;font-family:var(--font-mono);align-items:center;padding:0 6px;display:inline-flex}.settings-row-meta[data-tone=accent]{border:1px solid color-mix(in srgb, var(--accent) 24%, transparent);color:var(--accent)}.settings-row-meta[data-tone=neutral]{border:1px solid var(--border-raised);color:var(--fg-muted)}@container (max-width:380px){.settings-row{grid-template-columns:1fr;gap:6px}.settings-row dt{flex-wrap:wrap;row-gap:4px}.settings-row dd{justify-content:flex-start}}.ble-settings-panel{overflow:hidden}.ble-settings-toggle{cursor:pointer;background:0 0;border:none;width:100%;min-height:46px;padding:0 14px}.ble-settings-toggle:hover{background:var(--bg-overlay)}.ble-settings-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ble-settings-toggle-meta{align-items:center;gap:8px;display:inline-flex}.ble-settings-toggle-meta svg{transition:transform var(--dur-base) var(--ease)}.ble-settings-toggle[aria-expanded=true] .ble-settings-toggle-meta svg{transform:rotate(180deg)}.settings-table-wrap{overflow-x:auto}.settings-table{border-collapse:collapse;width:100%;font-size:12px}.settings-table thead tr{border-bottom:1px solid var(--border)}.settings-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-subtle);text-align:left;padding:8px 10px;font-size:11px;font-weight:600}.settings-table td{color:var(--fg-muted);border-bottom:1px solid var(--border);vertical-align:middle;padding:7px 10px}.settings-table tr:last-child td{border-bottom:none}.settings-table tr[data-dirty=true]{background:var(--accent-dim)}.settings-table tr[data-dirty=true] td:first-child{border-left:2px solid var(--accent);padding-left:8px}.settings-table .input{width:72px;min-height:28px;font-family:var(--font-mono);text-align:right;padding:0 8px;font-size:12px}.setting-number{align-items:baseline;gap:6px;display:inline-flex}.setting-unit{min-width:28px;color:var(--fg-subtle);font-family:var(--font-mono);font-size:11px;display:inline-block}.segmented{border:1px solid var(--border);border-radius:var(--r-full);background:var(--bg-raised);gap:2px;width:max-content;padding:2px;display:inline-flex}.segmented-option{border-radius:var(--r-full);min-width:38px;height:22px;color:var(--fg-subtle);font-family:var(--font-mono);white-space:nowrap;cursor:pointer;transition:background var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease), color var(--dur-base) var(--ease);background:0 0;border:1px solid #0000;padding:0 8px;font-size:11px}.segmented-option[aria-pressed=true]{background:var(--accent-dim);border-color:color-mix(in srgb, var(--accent) 30%, transparent);color:var(--accent)}.segmented-option:disabled{cursor:not-allowed;opacity:.5}.segmented-option:disabled[aria-pressed=true]{background:var(--bg-overlay);border-color:var(--border-raised);color:var(--fg-muted);opacity:1}.theme-switch{border:1px solid var(--border);border-radius:var(--r-full);background:var(--bg-raised);gap:2px;width:max-content;padding:3px;display:flex}.theme-switch button{border-radius:var(--r-full);width:28px;height:28px;color:var(--fg-subtle);cursor:pointer;transition:background var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease), color var(--dur-base) var(--ease);background:0 0;border:1px solid #0000;place-items:center;display:grid}.theme-switch button[aria-pressed=true]{background:var(--accent-dim);border-color:color-mix(in srgb, var(--accent) 30%, transparent);color:var(--accent)}.iron-schematic{width:100%;max-width:200px;margin:0 auto;display:block}.iron-schematic .iron-tip-path{stroke:var(--fg-subtle);transition:stroke var(--dur-slow) var(--ease)}.iron-schematic[data-connected=true] .iron-tip-path{stroke:var(--accent)}.iron-schematic[data-flashing=true] .iron-tip-path{animation:1.2s ease-in-out infinite tip-pulse}@keyframes tip-pulse{0%,to{stroke:var(--accent);opacity:1}50%{stroke:var(--accent);opacity:.35}}.iron-schematic .iron-body-path{stroke:var(--fg-subtle);transition:stroke var(--dur-slow) var(--ease)}.iron-schematic[data-connected=true] .iron-body-path{stroke:var(--border-raised)}.iron-schematic .iron-connector{stroke:var(--fg-subtle);transition:stroke var(--dur-slow) var(--ease)}.iron-schematic[data-transport=webusb-dfu] .iron-connector,.iron-schematic[data-transport=webserial-blisp] .iron-connector,.iron-schematic[data-transport=webbluetooth-ble] .iron-connector,.iron-schematic[data-transport=demo] .iron-connector{stroke:var(--accent)}.iron-schematic .iron-status-dot{fill:var(--fg-subtle);transition:fill var(--dur-slow) var(--ease)}.iron-schematic[data-connected=true] .iron-status-dot{fill:var(--success)}@media (prefers-reduced-motion:reduce){.fade-in,.chip,.toast,.spin,.iron-schematic[data-flashing=true] .iron-tip-path{animation:none}.activity-progress-fill[data-indeterminate=true]{animation:none;width:40%!important}.activity-progress-track[data-pulse=true]:after,.activity-progress-track[data-pulse=true] .activity-progress-fill[data-state=active]{animation:none}}.toast-stack{pointer-events:none;flex-direction:column-reverse;align-items:flex-end;gap:8px;width:calc(100% - 48px);max-width:800px;margin:0 auto 12px;display:flex}.toast{border:1px solid var(--border-raised);border-radius:var(--r-lg);background:var(--bg-overlay);min-width:280px;max-width:400px;box-shadow:var(--shadow-lg);pointer-events:all;cursor:pointer;animation:toast-in var(--dur-slow) var(--ease) both;align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;line-height:1.4;display:flex}@keyframes toast-in{0%{opacity:0;transform:translate(12px)scale(.96)}to{opacity:1;transform:none}}.toast[data-level=OK]{border-left:3px solid var(--success)}.toast[data-level=WARN]{border-left:3px solid var(--warning)}.toast[data-level=ERROR]{border-left:3px solid var(--danger)}.toast-icon{flex-shrink:0;margin-top:1px}.toast-icon[data-level=OK]{color:var(--success)}.toast-icon[data-level=WARN]{color:var(--warning)}.toast-icon[data-level=ERROR]{color:var(--danger)}.toast-msg{color:var(--fg);flex:1}.toast-dismiss{width:18px;height:18px;color:var(--fg-subtle);cursor:pointer;border-radius:var(--r-xs);min-height:unset;transition:color var(--dur-base);background:0 0;border:none;flex-shrink:0;place-items:center;padding:0;display:grid}.toast-dismiss:hover{color:var(--fg);background:0 0;border:none}.spin{animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:880px){.app-layout{flex-direction:column;width:100%;max-width:none;height:auto;min-height:100vh;overflow:visible}.sidebar{border-right:none;flex-flow:wrap;align-items:center;width:100%;height:auto;overflow:visible}.sidebar-brand{border-bottom:none;flex:none;height:52px;padding:12px 14px}.sidebar-nav{flex-direction:row;flex:1;padding:8px}.sidebar-device,.sidebar-divider,.sidebar-footer{display:none}.main{height:auto;overflow:visible}.mobile-connection-header{z-index:6;background:color-mix(in srgb, var(--bg) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex;position:sticky;top:0}.mobile-connection-copy{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.mobile-device-name{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex;overflow:hidden}.mobile-device-name[data-connected=false] .sidebar-connection-indicator{--pulse-color:var(--danger)}.mobile-device-meta{color:var(--fg-subtle);font-size:11px;font-family:var(--font-mono)}.mobile-connection-actions{flex:none;justify-content:flex-end;align-items:center;gap:6px;display:flex}.main-content{height:auto;padding:16px;overflow:visible}.activity-panel-outer{padding:0 16px 16px}.form-grid,.firmware-grid,.grouped-panel-grid{grid-template-columns:1fr 1fr}}@media (max-width:580px){.main-content{padding:16px}.activity-panel-outer{padding:0 16px 16px}.sidebar-nav{flex-wrap:nowrap;gap:4px}.sidebar-nav-item{flex:1;justify-content:center;gap:0;min-width:0;padding:0 6px}.sidebar-nav-label{display:none}.mobile-connection-header{flex-direction:column;justify-content:center;align-items:stretch;gap:8px;min-height:0;padding:10px 14px}.mobile-device-name{white-space:normal;text-overflow:clip;line-height:1.5;overflow:visible}.mobile-connection-actions{justify-content:stretch}.mobile-connection-actions:empty{display:none}.mobile-connection-actions .btn{flex:1}.device-splash-guides{grid-template-columns:1fr}.device-splash-guide-actions{flex-direction:column;align-items:stretch}.device-splash-guide-actions .btn{width:100%}.form-grid,.firmware-grid,.logo-grid,.grouped-panel-grid{grid-template-columns:1fr}.section-heading{flex-direction:column}.telemetry-secondary-group:nth-child(2n) .telemetry-field-help .tooltip-bubble{left:0;right:auto}.btn-row,.btn-row-end,.flash-action-bar{flex-direction:column;align-items:stretch}.activity-bar{flex-wrap:wrap;gap:8px;height:auto;padding:8px 12px}.activity-bar-main{flex-wrap:wrap;gap:8px;height:auto}.activity-progress-wrap{width:100%}}
