body{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,Oxygen,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--font:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,Arial,sans-serif;--font-brand:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,Arial,sans-serif;--font-value:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,Arial,sans-serif;--font-mono:Consolas,ui-monospace,"Fira Code",monospace;--green-500:#5a9e74;--green-400:#68ab81;--green-300:#8cc19f;--green-600:#4c8964;--green-dim:#5a9e7429;--green-glow:#5a9e7438;--bg0:#0e0e10;--bg1:#161618;--bg2:#1c1c1e;--bg3:#2c2c2e;--bg4:#3a3a3c;--border:#54545873;--border-light:#545458b3;--border-faint:#54545838;--border-focus:var(--green-500);--text-primary:#ffffffeb;--text-secondary:#ebebf59e;--text-muted:#ebebf58c;--text-disabled:#ebebf538;--color-success:#5a9e74;--color-success-dim:#5a9e7429;--color-danger:#d0695e;--color-danger-dim:#d0695e29;--color-warn:#c99a4a;--color-warn-dim:#c99a4a29;--color-info:#6f97c2;--color-info-dim:#6f97c229;--accent:var(--green-500);--accent-hover:var(--green-400);--accent-dim:var(--green-dim);--danger:var(--color-danger);--warn:var(--color-warn);--info:var(--color-info);--success:var(--color-success);--widget-bg:var(--bg2);--widget-inner:var(--bg1);--w-color:var(--green-500);--bg-primary:var(--bg0);--bg-secondary:var(--bg1);--sidebar-w:220px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--shadow:0 4px 20px #0009;--shadow-sm:0 2px 8px #0006;--shadow-lg:0 8px 40px #000000b3;--transition:150ms ease;--transition-md:200ms ease;color-scheme:dark}body.light-mode{--green-500:#24894c;--green-400:#1f7a43;--green-300:#3fa866;--green-600:#1a6a3a;--green-dim:#24894c1f;--green-glow:#24894c33;--bg0:#ececf1;--bg1:#fff;--bg2:#fff;--bg3:#e2e2e8;--bg4:#cfcfd6;--border:#3c3c4342;--border-light:#3c3c4366;--border-faint:#3c3c4326;--text-primary:#111114;--text-secondary:#3a3a40;--text-muted:#5b5b63;--text-disabled:#9a9aa2;--color-success:#24894c;--color-success-dim:#24894c1f;--color-danger:#cc3b2f;--color-danger-dim:#cc3b2f1f;--color-warn:#b8700c;--color-warn-dim:#b8700c1f;--color-info:#2a6cc0;--color-info-dim:#2a6cc01f;--shadow:0 2px 12px #0000001a;--shadow-sm:0 1px 4px #00000014;--shadow-lg:0 8px 32px #00000024;--widget-bg:var(--bg1);--widget-inner:var(--bg0);--bg-primary:var(--bg0);--bg-secondary:var(--bg1);color-scheme:light}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{overflow-x:hidden;overscroll-behavior:none}#root,body,html{max-width:100vw}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0e0e10;background:var(--bg0);color:#ffffffeb;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,Arial,sans-serif;font-family:var(--font);font-size:13px;line-height:1.5;user-select:none;-webkit-user-select:none}[contenteditable],code,input,pre,textarea{user-select:text;-webkit-user-select:text}button{cursor:pointer}button,input,select,textarea{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,Arial,sans-serif;font-family:var(--font)}select,select option{background-color:#1c1c1e;background-color:var(--bg2);color:#ffffffeb;color:var(--text-primary)}.font-brand{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,Arial,sans-serif;font-family:var(--font-brand)}.font-value{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,Arial,sans-serif;font-family:var(--font-value)}.font-mono{font-family:Consolas,ui-monospace,Fira Code,monospace;font-family:var(--font-mono)}h1{font-size:22px;letter-spacing:-.3px}h1,h2{font-weight:600}h2{font-size:16px}h3{font-size:13px;font-weight:600}.page-header{align-items:center;margin-bottom:20px}.page-title{color:#ffffffeb;font-size:18px;font-weight:600;letter-spacing:-.2px}.btn-primary{align-items:center;background:#5a9e74;background:var(--green-500);border:none;border-radius:8px;border-radius:var(--radius);color:#fff;display:inline-flex;font-size:13px;font-weight:500;gap:6px;letter-spacing:.1px;padding:7px 16px;transition:background .15s ease,box-shadow .15s ease;transition:background var(--transition),box-shadow var(--transition);white-space:nowrap}.btn-primary:hover{background:#68ab81;background:var(--green-400)}.btn-primary:active{background:#4c8964;background:var(--green-600);transform:translateY(1px)}.btn-primary:disabled{background:#2c2c2e;background:var(--bg3);color:#ebebf538;color:var(--text-disabled,var(--text-muted));cursor:not-allowed;pointer-events:none}.btn-ghost{align-items:center;background:#0000;border:1px solid #545458b3;border:1px solid var(--border-light);border-radius:8px;border-radius:var(--radius);color:#ebebf59e;color:var(--text-secondary);display:inline-flex;font-size:13px;font-weight:400;gap:6px;padding:6px 12px;transition:all .15s ease;transition:all var(--transition)}.btn-ghost:hover{background:#5a9e7429;background:var(--green-dim);border-color:#5a9e74;border-color:var(--green-500);color:#5a9e74;color:var(--green-500)}.btn-ghost:disabled{border-color:#54545838;border-color:var(--border-faint);color:#ebebf538;color:var(--text-disabled,var(--text-muted));cursor:not-allowed;pointer-events:none}.btn-danger{background:#0000;border:1px solid #d0695e;border:1px solid var(--color-danger);border-radius:8px;border-radius:var(--radius);color:#d0695e;color:var(--color-danger);font-size:13px;font-weight:500;padding:6px 12px;transition:all .15s ease;transition:all var(--transition)}.btn-danger:hover{background:#d0695e;background:var(--color-danger);color:#fff}.btn-danger:disabled{border-color:#54545838;border-color:var(--border-faint);color:#ebebf538;color:var(--text-disabled,var(--text-muted));cursor:not-allowed;pointer-events:none}.btn-icon{align-items:center;background:#0000;border:none;border-radius:8px;border-radius:var(--radius);color:#ebebf58c;color:var(--text-muted);display:inline-flex;font-size:13px;justify-content:center;min-height:24px;min-width:24px;padding:4px 6px;transition:color .15s ease,background .15s ease;transition:color var(--transition),background var(--transition)}.btn-icon:hover{background:#2c2c2e;background:var(--bg3)}.btn-icon:hover,.field{color:#ffffffeb;color:var(--text-primary)}.field{background:#161618;background:var(--bg1);border:1px solid #545458b3;border:1px solid var(--border-light);border-radius:8px;border-radius:var(--radius);font-size:13px;outline:none;padding:7px 10px;transition:border-color .15s ease,box-shadow .15s ease;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.field:focus{border-color:#5a9e74;border-color:var(--green-500);box-shadow:0 0 0 3px #5a9e7429;box-shadow:0 0 0 3px var(--green-dim)}.field::placeholder{color:#ebebf58c;color:var(--text-muted)}.card{background:#1c1c1e;background:var(--widget-bg);border:1px solid #54545873;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-lg);padding:16px}.badge{align-items:center;border-radius:999px;border-radius:var(--radius-pill);display:inline-flex;font-size:11px;font-weight:600;gap:4px;letter-spacing:.3px;padding:2px 8px}.badge-green{background:#5a9e7429;background:var(--color-success-dim);color:#5a9e74;color:var(--color-success)}.badge-red{background:#d0695e29;background:var(--color-danger-dim);color:#d0695e;color:var(--color-danger)}.badge-gray{background:#2c2c2e;background:var(--bg3);color:#ebebf58c;color:var(--text-muted)}.badge-blue{background:#6f97c229;background:var(--color-info-dim);color:#6f97c2;color:var(--color-info)}.status-dot{height:7px;width:7px}.dot-green{animation:pulse-dot 2.5s ease-in-out infinite;background:#5a9e74;box-shadow:0 0 0 0 #5a9e7438;box-shadow:0 0 0 0 var(--green-glow)}.dot-red{background:#d0695e}.dot-yellow{background:#c99a4a}.sound-live{align-items:flex-end;display:inline-flex;gap:2px;height:13px}.sound-live span{background:#5a9e74;background:var(--green-500);border-radius:1px;display:block;height:13px;transform-origin:bottom;width:3px}.sound-live span:first-child{animation:soundLive1 .8s ease-in-out 0s infinite}.sound-live span:nth-child(2){animation:soundLive2 .8s ease-in-out .15s infinite}.sound-live span:nth-child(3){animation:soundLive3 .8s ease-in-out .3s infinite}@keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.94)}}@keyframes slideIn{0%{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.toast-container{bottom:20px;display:flex;flex-direction:column;gap:6px;position:fixed;right:20px;z-index:9999}.toast{align-items:center;animation:zoomIn .15s ease;background:#1c1c1e;background:var(--bg2);border:1px solid #545458b3;border:1px solid var(--border-light);border-radius:8px;border-radius:var(--radius);box-shadow:0 4px 20px #0009;box-shadow:var(--shadow);display:flex;font-size:13px;gap:8px;max-width:340px;min-width:220px;padding:10px 14px}.toast.success{border-left:3px solid #5a9e74;border-left:3px solid var(--color-success)}.toast.error{border-left:3px solid #d0695e;border-left:3px solid var(--color-danger)}.toast.info{border-left:3px solid #6f97c2;border-left:3px solid var(--color-info)}.toast-icon{flex-shrink:0;font-size:14px}.toast.success .toast-icon{color:#5a9e74;color:var(--color-success)}.toast.error .toast-icon{color:#d0695e;color:var(--color-danger)}.toast.info .toast-icon{color:#6f97c2;color:var(--color-info)}::-webkit-scrollbar{height:5px;width:5px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#545458b3;background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}body.light-mode ::-webkit-scrollbar-thumb:hover{background:#00000040}@media (max-width:768px),(pointer:coarse) and (max-height:540px){a,button,input[type=range]{touch-action:manipulation}.btn-danger,.btn-ghost,.btn-primary{min-height:42px;padding:10px 14px}.field{font-size:16px;min-height:42px}.toast-container{bottom:68px!important}.card{padding:12px}.device-page,.ds-page{padding:12px 12px 20px}.ds-table-wrap{overflow-x:auto}.ds-table{min-width:480px}}:focus-visible{border-radius:8px;border-radius:var(--radius);outline:2px solid #5a9e74;outline:2px solid var(--green-500);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.login-bg{align-items:center;background:var(--bg0);background-image:radial-gradient(circle at 30% 40%,#1dbf730f 0,#0000 60%);display:flex;justify-content:center;min-height:100vh}.login-card{background:var(--bg1);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:2.5rem 2rem;width:min(360px,calc(100% - 32px))}.login-logo{gap:10px;margin-bottom:4px}.login-logo,.login-logo-mark{align-items:center;display:flex}.login-logo-mark{background:linear-gradient(135deg,#6fb98a,#24894c);border-radius:8px;color:#fff;font-size:18px;font-weight:800;height:34px;justify-content:center;width:34px}.login-logo-text{color:var(--text-primary);font-size:18px;font-weight:700}.login-sub{color:var(--text-muted);font-size:12px;margin-bottom:1.75rem;padding-left:44px}.login-form{display:flex;flex-direction:column;gap:1rem}.login-tabs{background:var(--bg2);border-radius:var(--radius);display:flex;gap:3px;padding:3px}.login-tab{background:#0000;border:none;border-radius:4px;color:var(--text-secondary);flex:1 1;font-size:13px;font-weight:500;padding:7px;transition:all var(--transition)}.login-tab--active{background:var(--bg1);box-shadow:0 1px 4px #0003;color:var(--accent);font-weight:600}.login-fields{gap:.75rem}.login-fields,.login-label{display:flex;flex-direction:column}.login-label{color:var(--text-secondary);font-size:12px;font-weight:500;gap:5px}.login-error{align-items:center;background:#e74c3c1a;border:1px solid #e74c3c4d;border-radius:var(--radius);color:var(--danger);display:flex;font-size:13px;gap:6px;padding:8px 12px}.login-submit{font-size:14px;justify-content:center;margin-top:4px;padding:10px;width:100%}.login-submit:disabled{cursor:not-allowed;opacity:.6}.login-info{align-items:center;background:#1dbf731a;border:1px solid #1dbf734d;border-radius:var(--radius);color:var(--accent);display:flex;font-size:13px;gap:6px;padding:8px 12px}.login-forgot-link{align-self:flex-end;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:11.5px;font-weight:500;margin-top:-2px;padding:0;transition:color var(--transition)}.login-forgot-link:hover{color:var(--accent)}.pw-rules{display:flex;flex-direction:column;gap:3px;list-style:none;margin:-2px 0 0;padding:0}.pw-rule{align-items:center;display:flex;font-size:11px;gap:6px}.pw-rule,.pw-rule i{color:var(--text-muted)}.pw-rule i{font-size:10px}.pw-rule--ok{color:var(--text-secondary)}.pw-rule--ok i{color:var(--accent)}.login-divider{align-items:center;color:var(--text-muted);display:flex;font-size:11px;gap:10px;letter-spacing:.5px;margin:14px 0 2px;text-transform:uppercase}.login-divider:after,.login-divider:before{background:var(--border);content:"";flex:1 1;height:1px}.login-google-btn{align-items:center;background:var(--bg2);border:1px solid var(--border-light);border-radius:var(--radius-pill);color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:10px;justify-content:center;margin-top:2px;padding:10px;transition:background var(--transition),border-color var(--transition);width:100%}.login-google-btn:hover{background:var(--bg3);border-color:var(--text-muted)}.login-google-btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width:480px){.login-bg{align-items:center;padding:16px}.login-card{border-radius:12px;padding:24px 20px}.login-fields .field{font-size:16px;min-height:48px}.login-submit{font-size:15px;min-height:48px}}.credit-pill{font-feature-settings:"tnum";align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:980px;color:var(--text-primary);display:inline-flex;flex:none;font:600 13.5px/1 -apple-system,BlinkMacSystemFont,SF Pro Text,Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums;gap:7px;height:32px;letter-spacing:-.01em;padding:0 5px 0 8px;text-decoration:none;transition:transform .15s cubic-bezier(.2,.8,.2,1),background .2s}.credit-pill:hover{background:var(--bg3);border-color:var(--border-light)}.credit-pill:active{transform:scale(.95)}.credit-pill svg{color:var(--green-500)}.credit-pill-plus{background:var(--green-500);border-radius:50%;color:#fff;display:grid;font-size:15px;font-weight:600;height:22px;line-height:1;place-items:center;width:22px}.credit-pill--up .credit-pill-n{animation:credit-up .7s cubic-bezier(.2,.8,.2,1)}.credit-pill--down .credit-pill-n{animation:credit-down .7s cubic-bezier(.2,.8,.2,1)}@keyframes credit-up{0%{color:var(--green-500);transform:translateY(4px)}to{transform:none}}@keyframes credit-down{0%{color:var(--color-warn);transform:translateY(-4px)}to{transform:none}}.credit-pill-inf{display:block}.grid-stack{position:relative}.grid-stack-rtl{direction:ltr}.grid-stack-rtl>.grid-stack-item{direction:rtl}.grid-stack-placeholder>.placeholder-content{background-color:#0000001a;margin:0;position:absolute;width:auto;z-index:0!important}.grid-stack>.grid-stack-item{height:var(--gs-cell-height);padding:0;position:absolute;top:0;width:var(--gs-column-width)}.grid-stack>.grid-stack-item>.grid-stack-item-content{margin:0;overflow-x:hidden;overflow-y:auto;position:absolute;width:auto}.grid-stack>.grid-stack-item.size-to-content:not(.size-to-content-max)>.grid-stack-item-content{overflow-y:hidden}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item{right:0}.grid-stack>.grid-stack-item>.grid-stack-item-content,.grid-stack>.grid-stack-placeholder>.placeholder-content{bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left);right:var(--gs-item-margin-right);top:var(--gs-item-margin-top)}.grid-stack-item>.ui-resizable-handle{display:block;font-size:.1px;position:absolute;touch-action:none}.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle,.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle{display:none}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se,.grid-stack-item>.ui-resizable-sw{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="%23666" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 20 20"><path d="m10 3 2 2H8l2-2v14l-2-2h4l-2 2"/></svg>');background-position:50%;background-repeat:no-repeat}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-sw{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;height:20px;left:var(--gs-item-margin-left);top:var(--gs-item-margin-top);width:20px}.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;left:25px;right:25px;top:var(--gs-item-margin-top)}.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;height:20px;right:var(--gs-item-margin-right);top:var(--gs-item-margin-top);width:20px}.grid-stack-item>.ui-resizable-e{bottom:15px;cursor:e-resize;right:var(--gs-item-margin-right);top:15px;width:10px}.grid-stack-item>.ui-resizable-se{bottom:var(--gs-item-margin-bottom);cursor:se-resize;height:20px;right:var(--gs-item-margin-right);width:20px}.grid-stack-item>.ui-resizable-s{bottom:var(--gs-item-margin-bottom);cursor:s-resize;height:10px;left:25px;right:25px}.grid-stack-item>.ui-resizable-sw{bottom:var(--gs-item-margin-bottom);cursor:sw-resize;height:20px;left:var(--gs-item-margin-left);width:20px}.grid-stack-item>.ui-resizable-w{bottom:15px;cursor:w-resize;left:var(--gs-item-margin-left);top:15px;width:10px}.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack-item.ui-draggable-dragging{will-change:left,right,top}.grid-stack-item.ui-resizable-resizing{will-change:width,height}.ui-draggable-dragging,.ui-resizable-resizing{z-index:10000}.ui-draggable-dragging>.grid-stack-item-content,.ui-resizable-resizing>.grid-stack-item-content{box-shadow:1px 4px 6px #0003;opacity:.8}.grid-stack-animate,.grid-stack-animate .grid-stack-item{transition:left .3s,right .3s,top .3s,height .3s,width .3s}.grid-stack-animate .grid-stack-item.grid-stack-placeholder,.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack-animate .grid-stack-item.ui-resizable-resizing{transition:left 0s,right 0s,top 0s,height 0s,width 0s}.grid-stack>.grid-stack-item[gs-y="0"]{top:0}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item[gs-x="0"]{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item[gs-x="0"]{right:0}body{--text1:var(--text-primary,#d4d4d4);--text3:var(--text-secondary,#aaa);--text4:var(--text-muted,#888);--text5:var(--text-disabled,#666);--widget-inner-bg:var(--widget-inner,#151515);--input-bg:var(--bg1,#252526);--chart-grid:var(--border,#333)}.widget-card{-webkit-tap-highlight-color:transparent;background:#1a2035;background:var(--widget-bg,var(--bg2,#1a2035));border-radius:0;display:flex;flex-direction:column;height:100%;overflow:hidden;transition:box-shadow var(--transition),transform var(--transition)}.rl-tip-enabled [data-tip]{position:relative}.rl-tip-enabled [data-tip]:after{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#282828eb;border-radius:6px;box-shadow:0 4px 14px #00000040;color:#fff;content:attr(data-tip);font-size:12px;font-weight:500;left:50%;opacity:0;padding:5px 9px;pointer-events:none;position:absolute;top:calc(100% + 7px);transform:translate(-50%,-4px);transition:opacity .15s ease,transform .15s ease;white-space:nowrap;z-index:50}.rl-tip-enabled [data-tip]:hover:after{opacity:1;transform:translate(-50%);transition-delay:.25s}.joystick-pad{aspect-ratio:1/1;background:var(--aw-fill2);background:var(--joy-pad,var(--aw-fill2));border-radius:50%;box-shadow:inset 0 0 0 1px var(--aw-sep),inset 0 2px 10px #0000001f;cursor:grab;height:100%;max-height:220px;max-width:220px;position:relative;touch-action:none;transition:box-shadow .25s;-webkit-user-select:none;user-select:none;width:min(100%,100%)}.joystick-pad.is-moving{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,#8e8e93 55%,#0000),inset 0 2px 10px #0000001f;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--w-color,#8e8e93) 55%,#0000),inset 0 2px 10px #0000001f;cursor:grabbing}.joystick-ring{border:1px dashed color-mix(in srgb,var(--joy-ring,var(--text-muted)) 35%,#0000);border-radius:50%;inset:18%}.joystick-crosshair,.joystick-ring{pointer-events:none;position:absolute}.joystick-crosshair{background:color-mix(in srgb,var(--text-muted) 22%,#0000);background:color-mix(in srgb,var(--joy-ring,var(--text-muted)) 22%,#0000)}.joystick-crosshair--h{height:1px;left:12%;right:12%;top:50%;transform:translateY(-.5px)}.joystick-crosshair--v{bottom:12%;left:50%;top:12%;transform:translateX(-.5px);width:1px}.joystick-knob{background:#fff;background:var(--joy-knob,#fff);border-radius:50%;box-shadow:0 0 0 .5px #0000000f,0 6px 16px #00000047,0 1px 2px #0000002e;height:34%;position:absolute;transform:translate(-50%,-50%);transition:box-shadow .2s,transform .2s ease;transition:box-shadow .2s,transform .2s var(--aw-spring,ease);width:34%;will-change:left,top}.joystick-pad:not(.is-moving) .joystick-knob{transition:left .35s ease,top .35s ease,box-shadow .2s,transform .2s;transition:left .35s var(--aw-spring,ease),top .35s var(--aw-spring,ease),box-shadow .2s,transform .2s}.joystick-pad.is-moving .joystick-knob{box-shadow:0 0 0 4px color-mix(in srgb,#8e8e93 35%,#0000),0 8px 20px #0000004d;box-shadow:0 0 0 4px color-mix(in srgb,var(--w-color,#8e8e93) 35%,#0000),0 8px 20px #0000004d;transform:translate(-50%,-50%) scale(1.06)}.joystick-knob-grip{background:#8e8e93;background:var(--w-color,#8e8e93);border-radius:50%;inset:34%;opacity:.85;position:absolute}.joystick-pad:focus-visible{box-shadow:inset 0 0 0 1px var(--aw-sep),0 0 0 3px color-mix(in srgb,#8e8e93 45%,#0000);box-shadow:inset 0 0 0 1px var(--aw-sep),0 0 0 3px color-mix(in srgb,var(--w-color,#8e8e93) 45%,#0000);outline:none}.joystick-key-hint{bottom:9%;color:var(--text-muted);font-family:var(--font);font-size:12px;font-weight:600;gap:3px;left:50%;letter-spacing:.5px;pointer-events:none;position:absolute;transform:translateX(-50%)}.joystick-key-hint,.widget-header{display:flex;-webkit-user-select:none;user-select:none}.widget-header{align-items:center;cursor:grab;flex-shrink:0;gap:6px;justify-content:space-between;min-height:22px;padding:10px 12px 2px}.widget-header:active{cursor:grabbing}.widget-header-left{align-items:center;display:flex;gap:6px;min-width:0;overflow:hidden}.widget-icon{color:var(--accent);color:var(--w-color,var(--accent));flex-shrink:0;font-size:12px;opacity:.9}.widget-title{color:var(--text-secondary);font-family:var(--font);font-size:13px;font-weight:600;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.widget-vpin-badge{background:var(--color-info-dim);border:1px solid color-mix(in srgb,var(--color-info) 25%,#0000);border-radius:999px;border-radius:var(--radius-pill,999px);color:var(--color-info);flex-shrink:0;font-family:Consolas,monospace;font-family:var(--font-mono,Consolas,monospace);font-size:12px;font-weight:700;letter-spacing:.4px;padding:1px 5px;transition:color .2s,border-color .2s;white-space:nowrap}.widget-body{align-items:center;display:flex;flex:1 1;justify-content:center;min-height:0;overflow:hidden;padding:10px 12px 14px}.widget-body--terminal{align-items:stretch;background:var(--bg1);background:var(--widget-inner,var(--bg1));border-radius:var(--radius);margin:0 8px 8px;padding:6px 8px 8px}.widget-value{font-feature-settings:"tnum";color:#01bbf9;color:var(--w-color,#01bbf9);font-family:var(--font-value);font-size:42px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em;line-height:1;transition:color .3s}.widget-value-unit{color:var(--text-muted);font-family:var(--font);font-size:12px;font-weight:500;letter-spacing:.5px;margin-top:2px;text-transform:uppercase}.widget-actions{align-items:center;display:flex;flex-shrink:0;gap:2px}.widget-action-btn{align-items:center;background:#0000;border:none;border-radius:3px;color:var(--text-muted);cursor:pointer;display:flex;height:20px;justify-content:center;padding:0;transition:all .2s;transition:all var(--transition,.2s);width:20px}.widget-action-btn:hover{background:var(--bg3);color:var(--text-primary)}.widget-remove:hover{background:#ad2f4826;background:var(--color-danger-dim,#ad2f4826);color:#ad2f48;color:var(--color-danger,#ad2f48)}.led-orb{align-items:center;aspect-ratio:1/1;background:radial-gradient(circle at 35% 35%,color-mix(in srgb,#5a9e74 80%,#fff 20%),#5a9e74 50%,var(--bg0) 100%);background:radial-gradient(circle at 35% 35%,color-mix(in srgb,var(--led-color,#5a9e74) 80%,#fff 20%),var(--led-color,#5a9e74) 50%,var(--bg0) 100%);border-radius:50%;box-shadow:0 0 2.5px color-mix(in srgb,#5a9e74 35%,#0000);box-shadow:0 0 calc(var(--led-glow, 10)*.25px) color-mix(in srgb,var(--led-color,#5a9e74) 35%,#0000);display:flex;justify-content:center;max-height:120px;max-width:120px;transition:opacity .3s ease,box-shadow .3s;transition:opacity .3s var(--aw-ease,ease),box-shadow .3s;width:60%}.led-val{font-feature-settings:"tnum";color:#ffffffe6;font-family:var(--font-value);font-size:12px;font-variant-numeric:tabular-nums;font-weight:700;text-shadow:0 1px 3px #000c}.level-bar-fill{transition:none}input[type=range]{-webkit-appearance:none;background:#0000;margin:10px 0;width:100%}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);background:var(--w-color,var(--accent));border-radius:7px;cursor:pointer;height:28px;margin-top:-11px;width:14px}input[type=range]::-webkit-slider-runnable-track{background:#3e3e42;background:var(--border,#3e3e42);border-radius:3px;height:6px;width:100%}input[type=range].vertical-range{direction:rtl;height:100%;margin:0 10px;width:28px;writing-mode:vertical-lr}input[type=range].vertical-range::-webkit-slider-runnable-track{height:100%;width:6px}input[type=range].vertical-range::-webkit-slider-thumb{height:14px;margin-left:-11px;margin-top:0;width:28px}.ios-toggle-wrap{align-items:center;display:flex;flex-direction:column;gap:10px;height:100%;justify-content:center}.ios-toggle-btn{-webkit-tap-highlight-color:transparent;background:var(--bg4);background:var(--aw-fill,var(--bg4));border:none;border-radius:18px;cursor:pointer;flex-shrink:0;height:36px;outline:none;position:relative;transition:background .25s;width:60px}.ios-toggle-btn.on{background:#34c759;background:var(--w-color,#34c759)}.ios-toggle-btn:after{background:#fff;border-radius:50%;box-shadow:0 2px 5px #00000038,0 0 0 .5px #0000000a;content:"";height:32px;left:2px;position:absolute;top:2px;transition:transform .3s ease;transition:transform .3s var(--aw-spring,ease);width:32px}.ios-toggle-btn:active:after{width:38px}.ios-toggle-btn.on:after{transform:translateX(24px)}.ios-toggle-btn.on:active:after{transform:translateX(18px)}.ios-toggle-label{color:var(--text-secondary);font-family:var(--font);font-size:13px;font-weight:600}.push-btn{background:var(--bg3);border:1px solid var(--border);border-radius:6px;color:var(--text-muted);color:var(--text4,var(--text-muted));cursor:pointer;font-family:Consolas,monospace;font-size:14px;font-weight:700;height:100%;letter-spacing:1px;transition:background .1s,transform .1s,box-shadow .1s;-webkit-user-select:none;user-select:none;width:100%}.push-btn:active{transform:scale(.96)}.push-btn.on{background:color-mix(in srgb,var(--accent) 20%,var(--bg1));background:color-mix(in srgb,var(--w-color,var(--accent)) 20%,var(--bg1));border-color:var(--w-color,var(--accent));color:var(--accent);color:var(--w-color,var(--accent))}.widget-static-icon{color:var(--text-muted);flex-shrink:0;font-size:12px}.widget-live{align-items:flex-end;display:inline-flex;flex-shrink:0;gap:2px;height:12px}.widget-live span{background:#52c41a;background:var(--color-success,#52c41a);border-radius:1px;display:block;height:12px;opacity:.9;transform-origin:bottom;width:2px}.widget-live span:first-child{animation:soundLive1 .9s ease-in-out infinite}.widget-live span:nth-child(2){animation:soundLive2 .9s ease-in-out .15s infinite}.widget-live span:nth-child(3){animation:soundLive3 .9s ease-in-out .3s infinite}@keyframes soundLive1{0%,to{transform:scaleY(.25)}50%{transform:scaleY(1)}}@keyframes soundLive2{0%,to{transform:scaleY(.67)}50%{transform:scaleY(.25)}}@keyframes soundLive3{0%,to{transform:scaleY(.42)}50%{transform:scaleY(1)}}@keyframes w-blink{50%{opacity:0}}.widget-card--group{flex-shrink:0;height:auto}.term-widget{display:flex;flex-direction:column;gap:4px;height:100%;min-height:0;width:100%}.term-output{background:var(--widget-inner-bg);border-radius:3px;color:#afa;flex:1 1;font-family:Consolas,monospace;font-size:12px;line-height:1.5;min-height:40px;overflow-y:auto;padding:4px 6px;white-space:pre-wrap;word-break:break-all}.term-line{display:block}.term-rx{color:#afa}.term-tx{color:#8cf}.term-sys{color:#888;font-style:italic}.term-input-row{align-items:stretch;display:flex;flex-shrink:0;gap:4px}.term-inp{background:var(--bg0);border:1px solid var(--border-light);border-radius:var(--radius);color:var(--text-primary);flex:1 1;font-family:Consolas,ui-monospace,monospace;font-size:12px;min-width:0;outline:none;padding:4px 7px;transition:border-color var(--transition)}.term-inp:focus{border-color:var(--green-500)}.term-inp::placeholder{color:var(--text-muted)}.term-eol{background:var(--bg0);border:1px solid var(--border-light);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;flex-shrink:0;font-size:12px;padding:2px 4px;width:54px}.term-eol option{background:var(--bg2)}.term-send-btn{border:none;border-radius:var(--radius);color:#fff;cursor:pointer;flex-shrink:0;font-size:12px;font-weight:700;padding:4px 9px;transition:filter var(--transition)}.term-send-btn:hover{filter:brightness(1.2)}.term-clear-btn{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;flex-shrink:0;font-size:12px;font-weight:700;padding:4px 8px;transition:all var(--transition)}.term-clear-btn:hover{background:var(--color-danger-dim);border-color:var(--color-danger);color:var(--color-danger)}@keyframes alert-icon-pulse{0%,to{opacity:.25;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes alert-card-blink{0%,to{background-color:var(--bg1);border-color:var(--border)}50%{background-color:var(--color-danger-dim);border-color:var(--color-danger)}}.alert-triggered{animation:alert-card-blink .5s ease-in-out infinite}.alert-acked{background-color:var(--color-warn-dim)!important;border-color:var(--color-warn)!important}.alert-icon-active{animation:alert-icon-pulse .5s ease-in-out infinite}.wsm-danger-text{color:var(--color-danger)}body{--aw-fill:#7878803d;--aw-fill2:#7878801f;--aw-sep:#54545866;--aw-ease:cubic-bezier(.2,.8,.2,1);--aw-spring:cubic-bezier(.3,1.5,.6,1)}body.light-mode{--aw-fill:#78788038;--aw-fill2:#78788021;--aw-sep:#3c3c433d}.aw-stack{align-items:center;display:flex;flex-direction:column;gap:6px;height:100%;justify-content:center;min-height:0;width:100%}.aw-value{font-feature-settings:"tnum";color:var(--text-primary);font-family:var(--font-value);font-size:34px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.03em;line-height:1.05;white-space:nowrap}.aw-value .aw-unit{margin-left:4px}.aw-unit{color:var(--text-muted);font-family:var(--font);font-size:15px;font-weight:600;letter-spacing:-.01em}.aw-caption{font-feature-settings:"tnum";color:var(--text-secondary);font-size:12px;font-variant-numeric:tabular-nums;font-weight:500}.aw-dot{background:var(--accent);background:var(--w-color,var(--accent));border-radius:50%;display:inline-block;height:7px;margin-right:6px;vertical-align:1px;width:7px}.aw-meter{background:var(--aw-fill);border-radius:999px;overflow:hidden;position:relative}.aw-meter>i{background:var(--accent);background:var(--w-color,var(--accent));border-radius:inherit;display:block;position:absolute;transition:background .3s}.aw-meter--h{height:8px;width:100%}.aw-meter--h>i{bottom:0;left:0;top:0;width:100%}.aw-meter--v{border-radius:14px;flex:1 1;max-width:64px;width:100%}.aw-meter--v>i{bottom:0;height:100%;left:0;right:0}.aw-meter-label{font-feature-settings:"tnum";color:#fff;font-size:12px;font-variant-numeric:tabular-nums;font-weight:600;position:absolute;text-shadow:0 1px 2px #00000059}.aw-btn{-webkit-tap-highlight-color:transparent;background:var(--aw-fill);border:none;border-radius:980px;color:var(--text-primary);cursor:pointer;font-family:var(--font);font-size:15px;font-weight:600;height:100%;letter-spacing:-.01em;max-height:64px;transition:transform .12s,background .2s,color .2s,box-shadow .2s,filter .2s;-webkit-user-select:none;user-select:none;width:100%}.aw-btn:hover{filter:brightness(1.06)}.aw-btn:active{transform:scale(.96)}.aw-btn.on{background:var(--accent);background:var(--w-color,var(--accent));box-shadow:none;color:#fff}input[type=range].aw-range{--pct:50%;height:28px;margin:0}input[type=range].aw-range::-webkit-slider-runnable-track{background:linear-gradient(to right,var(--accent) var(--pct),var(--aw-fill) var(--pct));background:linear-gradient(to right,var(--w-color,var(--accent)) var(--pct),var(--aw-fill) var(--pct));border-radius:3px;height:6px}input[type=range].aw-range::-webkit-slider-thumb{background:#fff;border-radius:50%;box-shadow:0 0 0 .5px #0000000a,0 3px 8px #00000038,0 1px 1px #0000001f;height:26px;margin-top:-10px;-webkit-transition:transform .15s;transition:transform .15s;width:26px}input[type=range].aw-range:active::-webkit-slider-thumb{transform:scale(1.08)}input[type=range].aw-range::-moz-range-track{background:var(--aw-fill);border-radius:3px;height:6px}input[type=range].aw-range::-moz-range-progress{background:var(--accent);background:var(--w-color,var(--accent));border-radius:3px;height:6px}input[type=range].aw-range::-moz-range-thumb{background:#fff;border:none;border-radius:50%;box-shadow:0 3px 8px #00000038;height:26px;width:26px}input[type=range].aw-range.vertical-range::-webkit-slider-runnable-track{background:linear-gradient(to top,var(--accent) var(--pct),var(--aw-fill) var(--pct));background:linear-gradient(to top,var(--w-color,var(--accent)) var(--pct),var(--aw-fill) var(--pct));height:100%;width:6px}input[type=range].aw-range.vertical-range::-webkit-slider-thumb{margin-left:-10px;margin-top:0}.aw-pill{align-items:center;background:color-mix(in srgb,var(--accent) 14%,#0000);background:color-mix(in srgb,var(--w-color,var(--accent)) 14%,#0000);border-radius:20px;color:var(--accent);color:var(--w-color,var(--accent));display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:3px 9px;white-space:nowrap}.aw-pill:before{background:currentColor;border-radius:50%;content:"";height:6px;width:6px}.aw-chip{font-feature-settings:"tnum";background:var(--aw-fill);border-radius:8px;color:var(--text-secondary);font-size:12px;font-variant-numeric:tabular-nums;font-weight:500;padding:3px 10px;white-space:nowrap}.gw-root{display:flex;flex-direction:column;gap:4px;height:100%;min-height:0;width:100%}.gw-head{align-items:center;display:flex;flex-shrink:0;gap:8px;justify-content:space-between;max-height:24px}.gw-legend{color:var(--text-secondary);column-gap:14px;display:flex;flex:1 1;flex-wrap:wrap;font-size:12px;font-weight:500;overflow:hidden;padding:0 4px;row-gap:2px}.gw-legend-item{align-items:center;display:flex;gap:5px;max-width:140px;white-space:nowrap}.gw-legend-item i{border-radius:2px;display:block;height:3px;width:14px}.gw-csv{background:var(--aw-fill);border:none;border-radius:980px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;font-size:12px;font-weight:500;padding:3px 10px;transition:background .15s}.gw-csv:hover{background:var(--bg3);color:var(--text-primary)}.gw-csv:active{transform:scale(.95)}.gw-canvas{flex:1 1;min-height:40px;position:relative}.gw-canvas canvas{height:100%!important;inset:0;position:absolute;width:100%!important}.tw-root{align-items:stretch;display:flex;flex-direction:column;gap:6px;height:100%;justify-content:center;padding:2px 4px}.tw-top{align-items:center;display:flex;gap:8px;justify-content:space-between}.tw-status{align-items:center;color:var(--text-muted);display:inline-flex;font-size:12px;font-weight:600;gap:6px}.tw-status.is-armed{color:var(--w-color)}.tw-dot{background:currentColor;border-radius:50%;display:block;height:7px;width:7px}.tw-status.is-armed .tw-dot{animation:twPulse 2s infinite}@keyframes twPulse{0%,to{opacity:1}50%{opacity:.35}}.tw-big{font-feature-settings:"tnum";color:var(--text-primary);font-size:30px;font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.02em}.tw-big,.tw-sub{text-align:center}.tw-foot{align-items:center;display:flex;gap:6px;justify-content:space-between;margin-top:auto}.tw-send{font-size:12.5px;height:30px;padding:0 12px}.tw-send i{font-size:12px;margin-right:5px}@media (prefers-reduced-motion:reduce){.tw-status.is-armed .tw-dot{animation:none}}.iw-view{border-radius:10px;flex:1 1;overflow:hidden;position:relative}.iw-view,.iw-view img{height:100%;width:100%}.iw-view img{inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .3s ease}.iw-view img.is-shown{opacity:1}.iw-state{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#00000080;border-radius:980px;bottom:8px;color:#ffffffd9;font-size:12px;font-weight:700;letter-spacing:.04em;padding:2px 8px;position:absolute;right:8px}.iw-state.is-on{background:color-mix(in srgb,#30d158 85%,#0000);background:color-mix(in srgb,var(--w-color,#30d158) 85%,#0000);color:#fff}.iw-empty{align-items:center;background:var(--aw-fill);border-radius:10px;color:var(--text-muted);display:flex;flex:1 1;flex-direction:column;font-size:12px;gap:6px;height:100%;justify-content:center;width:100%}.iw-empty i{font-size:22px;opacity:.6}.iw-edit{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;height:100%;padding:2px;width:100%}.iw-slot{min-height:0;position:relative}.iw-slot-btn{align-items:center;background:var(--aw-fill);border:1.5px dashed var(--border);border-radius:12px;color:var(--text-muted);cursor:pointer;display:flex;height:100%;justify-content:center;min-height:60px;overflow:hidden;padding:0;position:relative;transition:border-color .15s,transform .12s;width:100%}.iw-slot-btn:hover{border-color:var(--accent);color:var(--accent)}.iw-slot-btn:active{transform:scale(.97)}.iw-slot-btn.has-img{border-style:solid}.iw-slot-btn img{display:block;height:100%;width:100%}.iw-slot-btn i{font-size:20px}.iw-slot-tag{background:#0000008c;border-radius:6px;bottom:6px;font-size:12px;font-weight:700;left:6px;padding:2px 6px}.iw-clear,.iw-slot-tag{color:#fff;position:absolute}.iw-clear{background:#0009;border:0;border-radius:50%;cursor:pointer;font-size:13px;height:20px;line-height:1;right:5px;top:5px;width:20px}.cw-root{flex:1 1;min-height:0;position:relative}.cw-frame,.cw-root{height:100%;width:100%}.cw-frame{background:#0000;border:0;color-scheme:normal;inset:0;position:absolute}.cw-error{background:#ff453aeb;border-radius:8px;bottom:6px;color:#fff;font-size:12px;left:6px;overflow:hidden;padding:4px 8px;position:absolute;right:6px;text-overflow:ellipsis;white-space:nowrap}.widget-card{contain:layout style}.widget-body--camera{overflow:hidden;padding:0}.camera-widget{align-items:center;background:#000;display:flex;height:100%;justify-content:center;position:relative;width:100%}.camera-widget-canvas{display:block;height:100%;transition:opacity .2s;width:100%}.camera-widget-badge{font-feature-settings:"tnum";align-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#00000080;border-radius:999px;bottom:8px;color:#fff;display:inline-flex;font-size:12px;font-variant-numeric:tabular-nums;gap:6px;left:8px;padding:3px 8px;position:absolute}.camera-widget-dot{border-radius:50%;height:6px;width:6px}.camera-widget-empty{color:#ffffffa6;font-size:12px;position:absolute}.camera-widget-kicked{align-items:center;display:flex;flex-direction:column;gap:8px}.camera-widget-take{background:#5b87b8;border:0;border-radius:999px;color:#fff;cursor:pointer;font:inherit;font-weight:600;padding:5px 12px}.camera-widget-take:hover{background:#409cff}.upl{display:flex;flex-direction:column;gap:5px;width:100%}.upl-track{background:var(--border);background:var(--aw-fill,var(--border));border-radius:999px;height:6px;overflow:hidden;position:relative}.upl--compact .upl-track{height:4px}.upl-fill{background:var(--accent);border-radius:inherit;height:100%;transition:width .2s ease-out,background-color .2s}.upl--processing .upl-fill{animation:upl-shimmer 1.1s linear infinite;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 35%,#0000) 0,var(--accent) 50%,color-mix(in srgb,var(--accent) 35%,#0000) 100%);background-size:200% 100%}.upl--error .upl-fill{background:#ff453a;background:var(--color-danger,#ff453a)}.upl-label{font-feature-settings:"tnum";color:var(--text-muted);display:flex;font-size:11px;font-variant-numeric:tabular-nums;gap:8px;justify-content:space-between}.upl--compact .upl-label{font-size:10px}.upl--done .upl-label{color:var(--accent)}.upl--error .upl-label{color:#ff453a;color:var(--color-danger,#ff453a)}.upl-bytes{opacity:.8}@keyframes upl-shimmer{0%{background-position:200% 0}to{background-position:0 0}}.dc{align-items:center;display:flex;gap:14px}.dc-icon{color:var(--text-muted);flex-shrink:0;font-size:22px}.dc.is-on .dc-icon{color:#1fa463}.dc-text{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.dc-text b{font-size:14px}.dc-text span{color:var(--text-muted);font-size:12px;overflow-wrap:anywhere}.dc-btn{align-items:center;display:inline-flex;flex-shrink:0;gap:8px}.dc--compact{background:var(--bg3);border:1px solid var(--border);border-radius:12px;gap:10px;padding:10px 12px}.dc--compact .dc-icon{font-size:18px}.dc--compact .dc-text b{font-size:13px}.dc--compact .dc-btn{font-size:12px;padding:7px 12px}@media (max-width:768px){.dc{align-items:stretch;flex-direction:column;gap:12px}.dc-icon{display:none}}.ap-overlay{animation:apFade .16s ease;background:#00000073;display:grid;inset:0;padding:20px;place-items:center;position:fixed;z-index:20000}.ap-sheet{animation:apPop .22s cubic-bezier(.2,.9,.3,1.1);background:var(--bg2);background:var(--bg1,var(--bg2));border-radius:16px;box-shadow:0 24px 60px #00000059;color:var(--text-primary);display:flex;flex-direction:column;height:min(640px,100%);overflow:hidden;width:min(480px,100%)}.ap-head{align-items:center;display:grid;grid-template-columns:1fr auto 1fr;padding:14px 16px 10px}.ap-title{font-size:17px;font-weight:600;letter-spacing:-.02em;text-align:center}.ap-nav{background:none;border:0;color:var(--accent);cursor:pointer;font:400 16px/1 var(--font);justify-self:start;padding:4px 0}.ap-search{align-items:center;background:var(--bg3);border-radius:10px;color:var(--text-muted);display:flex;font-size:14px;gap:8px;margin:0 16px 8px;padding:8px 10px}.ap-search input{background:none;border:0;color:var(--text-primary);flex:1 1;font:400 15px/1.2 var(--font);min-width:0;outline:0}.ap-body{flex:1 1;overflow-y:auto;padding:8px 16px 20px}.ap-caption{letter-spacing:.02em;margin:18px 16px 6px;text-transform:uppercase}.ap-caption,.ap-footnote{color:var(--text-muted);font-size:12px}.ap-footnote{margin:6px 16px 0}.ap-group{background:var(--bg2);border-radius:12px;overflow:hidden}.ap-footnote+.ap-group,.ap-group+.ap-group{margin-top:18px}.ap-group--drive{background:none}.ap-group--drive .dc--compact{border-radius:12px}.ap-row{align-items:center;background:none;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:12px;margin:0;min-height:56px;padding:8px 14px;position:relative;text-align:left;width:100%}.ap-row+.ap-row:before{border-top:.5px solid var(--border);content:"";left:70px;position:absolute;right:0;top:0}.ap-row:hover{background:color-mix(in srgb,var(--text-primary) 5%,#0000)}.ap-row:active{background:color-mix(in srgb,var(--text-primary) 10%,#0000)}.ap-row:disabled{cursor:default;opacity:.5}.ap-icon,.ap-thumb{border-radius:8px;display:grid;flex-shrink:0;height:44px;overflow:hidden;place-items:center;width:44px}.ap-thumb{background:repeating-conic-gradient(var(--bg3) 0 25%,#0000 0 50%) 50% /10px 10px}.ap-thumb img{display:block;height:100%;object-fit:cover;width:100%}.ap-icon{background:color-mix(in srgb,var(--accent) 16%,#0000);color:var(--accent);font-size:16px}.ap-row-text{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.ap-row-text b{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ap-row--action .ap-row-text b{color:var(--accent)}.ap-row-text small{color:var(--text-muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ap-drive-ic{color:#1fa463;margin-right:5px}.ap-check{color:var(--accent);flex-shrink:0;font-size:15px}.ap-row.is-on .ap-row-text b{font-weight:600}.ap-row--note,.ap-row--status{color:var(--text-muted);cursor:default;font-size:13px}.ap-row--note:hover,.ap-row--status:hover{background:none}.ap-err{color:#ff453a;font-size:13px;font-weight:500}@keyframes apFade{0%{opacity:0}}@keyframes apPop{0%{opacity:0;transform:translateY(8px) scale(.98)}}@keyframes apUp{0%{transform:translateY(100%)}}@media (max-width:768px),(pointer:coarse) and (max-height:540px){.ap-overlay{align-items:end;padding:0}.ap-sheet{animation:apUp .28s cubic-bezier(.2,.9,.3,1);border-radius:14px 14px 0 0;height:88vh;padding-bottom:env(safe-area-inset-bottom);width:100%}}@media (prefers-reduced-motion:reduce){.ap-overlay,.ap-sheet{animation:none}}.rl-select{display:inline-block;position:relative;width:100%}.rl-select-trigger{align-items:center;background:var(--bg1);border:1px solid var(--border-light);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;display:flex;font-family:var(--font);font-size:13px;gap:8px;justify-content:space-between;padding:7px 10px;text-align:left;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.rl-select-trigger:hover{background:var(--bg2);border-color:var(--border-light)}.rl-select-trigger:focus-visible,.rl-select-trigger[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.rl-select-trigger:disabled{cursor:not-allowed;opacity:.5}.rl-select-value{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rl-select-chevron{color:var(--text-muted);flex-shrink:0;font-size:12px;transition:transform var(--transition)}.rl-select-chevron--open{transform:rotate(180deg)}.rl-select-panel{backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);background:color-mix(in srgb,var(--bg2) 94%,#0000);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);list-style:none;margin:0;max-height:240px;overflow-y:auto;padding:4px;position:fixed;z-index:20000}.rl-select-option{align-items:center;border-radius:var(--radius);color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;gap:8px;justify-content:space-between;padding:7px 10px;transition:background var(--transition),color var(--transition)}.rl-select-option:hover{background:var(--bg3)}.rl-select-option--active{color:var(--accent);font-weight:600}.rl-select-option--active:hover{background:var(--accent-dim)}.rl-select-check{color:var(--accent);flex-shrink:0;font-size:12px}.rl-select-group{color:var(--text-muted);font-size:12px;font-weight:700;letter-spacing:.06em;padding:6px 10px 2px;text-transform:uppercase}.rl-select-group:not(:first-child){border-top:1px solid var(--border);margin-top:4px;padding-top:8px}.rl-select-option--disabled{cursor:not-allowed;opacity:.4}.rl-select-option--disabled:hover{background:#0000}.sf{color:var(--text-secondary);display:flex;flex-direction:column;font-size:12px;gap:5px}.sf-item{align-items:center;display:flex;gap:10px;min-width:0}.sf-thumb{background:repeating-conic-gradient(var(--bg3) 0 25%,#0000 0 50%) 50% /8px 8px;border-radius:6px;color:var(--text-muted);display:grid;flex-shrink:0;font-size:12px;height:28px;overflow:hidden;place-items:center;width:28px}.sf-thumb img{display:block;height:100%;object-fit:cover;width:100%}.sf-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}.sf-name{color:var(--text-primary);font-size:13px}.sf-name,.sf-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-text small{color:var(--text-muted);font-size:11px}.sf-upload{align-items:center;color:var(--accent);display:inline-flex;font-weight:500;gap:8px}.sf-err{color:#ff453a;font-size:12px}.confirm-backdrop{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:10000}.confirm-dialog{align-items:center;animation:confirmIn .2s cubic-bezier(.34,1.56,.64,1);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);background:color-mix(in srgb,var(--bg1) 92%,#0000);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-width:340px;padding:28px 24px 20px;text-align:center;width:100%}@keyframes confirmIn{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.confirm-icon{align-items:center;border-radius:50%;display:flex;font-size:20px;height:48px;justify-content:center;margin-bottom:14px;width:48px}.confirm-icon--danger{background:color-mix(in srgb,var(--color-danger) 12%,#0000);color:var(--color-danger)}.confirm-title{color:var(--text-primary);font-size:16px;font-weight:700;letter-spacing:-.2px;margin-bottom:6px}.confirm-message{color:var(--text-secondary);font-size:13px;line-height:1.5;margin-bottom:22px}.confirm-actions{display:flex;gap:10px;width:100%}.confirm-btn{border-radius:var(--radius-pill);flex:1 1;font-size:13.5px;font-weight:600;justify-content:center;padding:9px 16px}.confirm-btn--confirm.btn-primary{background:var(--green-500)}.confirm-btn--danger{background:var(--color-danger);border:none;color:#fff}.confirm-btn--danger:hover{background:color-mix(in srgb,var(--color-danger) 85%,#fff)}@media (max-width:480px){.confirm-dialog{padding:24px 20px 18px}}.confirm-message{white-space:pre-line}.rl-cp{display:inline-block;position:relative}.rl-cp-trigger{background:var(--bg1);border:1px solid var(--border-light);border-radius:var(--radius);cursor:pointer;height:30px;padding:3px;transition:border-color var(--transition),box-shadow var(--transition);width:30px}.rl-cp-trigger:hover{background:var(--bg2);border-color:var(--border-light)}.rl-cp-trigger:focus-visible,.rl-cp-trigger[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.rl-cp-swatch{border-radius:calc(var(--radius) - 3px);box-shadow:inset 0 0 0 1px #0000004d;display:block;height:100%;width:100%}.rl-cp-panel{backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);background:color-mix(in srgb,var(--bg2) 94%,#0000);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);left:0;padding:10px;position:absolute;top:calc(100% + 4px);width:184px;z-index:300}.rl-cp-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(5,1fr);margin-bottom:10px}.rl-cp-preset{border:2px solid #0000;border-radius:50%;box-shadow:inset 0 0 0 1px #00000040;cursor:pointer;height:26px;transition:transform var(--transition),border-color var(--transition);width:26px}.rl-cp-preset:hover{transform:scale(1.1)}.rl-cp-preset--active{border-color:var(--text-primary)}.rl-cp-hex-row{align-items:center;border-top:1px solid var(--border);display:flex;gap:8px;padding-top:10px}.rl-cp-hex-swatch{border-radius:50%;box-shadow:inset 0 0 0 1px #0000004d;flex-shrink:0;height:20px;width:20px}.rl-cp-hex-input{background:var(--bg1);border:1px solid var(--border-light);border-radius:var(--radius);color:var(--text-primary);flex:1 1;font-family:monospace;font-family:var(--font-mono,monospace);font-size:12px;min-width:0;padding:5px 8px}.rl-cp-hex-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.wsm-overlay{align-items:center;animation:fadeIn .15s ease;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0000008c;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.wsm-modal{animation:zoomIn .18s cubic-bezier(.645,.045,.355,1);background:#1a2035;background:var(--bg2,#1a2035);border:1px solid #2d3a5c;border:1px solid var(--border,#2d3a5c);border-radius:10px;border-radius:var(--radius-lg,10px);box-shadow:0 16px 48px #0009,0 0 0 1px #ffffff0a;display:flex;flex-direction:column;max-height:88vh;max-width:95vw;overflow:hidden;width:400px}.wsm-modal--with-preview{width:860px}.wsm-content{flex:1 1;flex-direction:row;min-height:0}.wsm-content,.wsm-main{display:flex;overflow:hidden}.wsm-main{flex-direction:column;min-width:0;width:400px}.wsm-preview-pane{align-items:center;background:#0d0f1a;background:var(--bg0,#0d0f1a);border-left:1px solid #2d3a5c;border-left:1px solid var(--border,#2d3a5c);display:none;flex-direction:column;flex-shrink:0;gap:10px;padding:20px;width:460px}.wsm-preview-label{align-self:flex-start;color:var(--text-muted);font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}.wsm-preview-stage{display:flex;flex:0 0 auto;height:150px;height:var(--preview-h,150px);margin:auto;overflow:hidden;position:relative;width:220px;width:var(--preview-w,220px)}.wsm-preview-stage .widget-card{height:100%;min-height:0;min-width:0;width:100%}.wsm-preview-resize-handle{background-image:repeating-linear-gradient(135deg,var(--text-muted) 0,var(--text-muted) 1.5px,#0000 1.5px,#0000 4px);bottom:2px;cursor:nwse-resize;height:14px;opacity:.5;position:absolute;right:2px;transition:opacity var(--transition);width:14px;z-index:5}.wsm-preview-resize-handle:hover{background-image:repeating-linear-gradient(135deg,var(--accent) 0,var(--accent) 1.5px,#0000 1.5px,#0000 4px);opacity:1}.wsm-preview-size-row{align-items:center;display:flex;flex-direction:column;gap:6px}.wsm-preview-reset{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;font-weight:600;padding:0}.wsm-preview-reset:hover{text-decoration:underline}.wsm-preview-hint{color:var(--text-muted);font-size:12px;line-height:1.5;max-width:180px;text-align:center}@media (min-width:960px){.wsm-preview-pane{display:flex}}@keyframes zoomIn{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}.wsm-header{align-items:center;background:#141827;background:var(--bg1,#141827);border-bottom:1px solid #2d3a5c;border-bottom:1px solid var(--border,#2d3a5c);display:flex;flex-shrink:0;justify-content:space-between;padding:12px 16px}.wsm-title{color:var(--text-primary);font-family:Inter,sans-serif;font-family:var(--font-brand,"Inter",sans-serif);font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}.wsm-close{background:none;border:none;border-radius:var(--radius);color:var(--text-muted);cursor:pointer;font-size:13px;line-height:1;padding:3px 7px;transition:background var(--transition),color var(--transition)}.wsm-close:hover{background:var(--bg3);color:var(--text-primary)}.wsm-body{display:flex;flex:1 1;flex-direction:column;gap:12px;overflow-y:auto;padding:14px 16px}.wsm-label{color:var(--text-secondary);display:flex;flex-direction:column;font-family:Inter,sans-serif;font-family:var(--font,"Inter",sans-serif);font-size:12px;font-weight:700;gap:5px;letter-spacing:.5px;text-transform:uppercase}.wsm-field{background:#0d0f1a;background:var(--bg0,#0d0f1a);border:1px solid #2d3a5c;border:1px solid var(--border,#2d3a5c);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font);font-size:13px;outline:none;padding:7px 10px;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.wsm-field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.wsm-field option{background:var(--bg2);color:var(--text-primary)}.wsm-color-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.wsm-color-swatch{border:2px solid #0000;border-radius:4px;cursor:pointer;display:inline-block;flex-shrink:0;height:22px;transition:transform .15s,border-color .15s,box-shadow .15s;width:22px}.wsm-color-swatch:hover{transform:scale(1.18)}.wsm-color-swatch.active{border-color:#fff;box-shadow:0 0 0 1px #ffffff4d;transform:scale(1.18)}.wsm-color-picker{background:var(--bg3);border:1px solid var(--border);border-radius:4px;cursor:pointer;flex-shrink:0;height:24px;padding:0;width:28px}.wsm-row{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.wsm-row>*{min-width:0}.wsm-row--3{grid-template-columns:repeat(3,minmax(0,1fr))}.wsm-section{border-top:1px solid #2d3a5c;border-top:1px solid var(--border,#2d3a5c);display:flex;flex-direction:column;gap:10px;margin-top:2px;padding-top:12px}.wsm-radio-group{display:flex;flex-wrap:wrap;gap:14px;margin-top:2px}.wsm-radio-label{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:7px;letter-spacing:0;text-transform:none}.wsm-radio-label input[type=radio]{appearance:none;-webkit-appearance:none;background:var(--bg1);border:1.5px solid var(--border-light);border-radius:50%;cursor:pointer;flex-shrink:0;height:16px;margin:0;position:relative;transition:border-color var(--transition),background var(--transition);width:16px}.wsm-radio-label input[type=radio]:checked{background:var(--accent);border-color:var(--accent)}.wsm-radio-label input[type=radio]:checked:after{background:var(--bg0);border-radius:50%;content:"";height:6px;inset:0;margin:auto;position:absolute;width:6px}.wsm-radio-label input[type=radio]:focus-visible{box-shadow:0 0 0 3px var(--accent-dim);outline:none}.wsm-check-label{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:12px;gap:8px}.wsm-check-label input[type=checkbox]{accent-color:var(--green-500);cursor:pointer;height:14px;width:14px}.wsm-section-title{color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.wsm-series-row{align-items:flex-end;display:flex;gap:8px}.wsm-hint,.wsm-series-row{background:var(--bg0);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.wsm-hint{color:var(--text-muted);font-size:12px;line-height:1.6}.wsm-hint strong{color:var(--text-secondary)}.wsm-color-input{cursor:pointer;height:34px;padding:2px;width:40px}.wsm-footer{background:#141827;background:var(--bg1,#141827);border-top:1px solid #2d3a5c;border-top:1px solid var(--border,#2d3a5c);display:flex;flex-shrink:0;gap:8px;justify-content:flex-end;padding:10px 16px}.wsm-footer .btn-ghost,.wsm-footer .btn-primary{justify-content:center;min-width:96px}.wsm-chart-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));margin-top:8px;max-height:236px;overflow-y:auto;padding:2px}.wsm-chart-tile{align-items:center;background:#7878801f;background:var(--aw-fill,#7878801f);border:1px solid #0000;border-radius:10px;color:var(--text-secondary);cursor:pointer;display:flex;flex-direction:column;font:500 11px/1.2 var(--font);gap:6px;padding:10px 4px 8px;transition:background .15s,border-color .15s,transform .12s}.wsm-chart-tile i{color:var(--text-muted);font-size:16px}.wsm-chart-tile:hover{background:var(--bg3)}.wsm-chart-tile:active{transform:scale(.96)}.wsm-chart-tile.is-on{background:color-mix(in srgb,var(--accent) 14%,#0000);border-color:var(--accent);color:var(--text-primary)}.wsm-chart-tile.is-on i{color:var(--accent)}.wsm-pin-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}.wsm-pin-chip{background:var(--bg2);border:1px solid var(--border);border-radius:980px;color:var(--text-secondary);cursor:pointer;font:600 11.5px/1.4 var(--font);padding:4px 10px}.wsm-pin-chip span{font-weight:400;margin-left:2px;opacity:.7}.wsm-pin-chip.is-on{background:var(--accent);border-color:var(--accent);color:#fff}.wsm-code-tabs{align-items:center;background:#7878801f;background:var(--aw-fill,#7878801f);border-radius:9px;display:flex;gap:2px;padding:2px}.wsm-code-tab{background:none;border:0;border-radius:7px;color:var(--text-secondary);cursor:pointer;flex:1 1;font:500 12px/1.2 var(--font);padding:5px 0}.wsm-code-tab.is-on{background:var(--bg1);box-shadow:0 1px 3px #00000026;color:var(--text-primary)}.wsm-code-reset{background:none;border:0;color:var(--accent);cursor:pointer;font:500 11.5px var(--font);padding:0 8px;white-space:nowrap}.wsm-code{background:var(--bg1);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin-top:8px;min-height:220px;outline:none;padding:10px 12px;resize:vertical;tab-size:2;white-space:pre;width:100%}.wsm-code:focus{border-color:var(--accent)}.wsm-sim{grid-gap:8px;display:grid;gap:8px;margin-top:10px;width:100%}.wsm-sim-pins{display:flex;flex-wrap:wrap;gap:6px}.wsm-sim-pin{align-items:center;color:var(--text-secondary);display:flex;font:600 11px var(--font);gap:4px}.wsm-sim-pin input{background:var(--bg1);border:1px solid var(--border);border-radius:7px;color:var(--text-primary);font:12px ui-monospace,SFMono-Regular,Menlo,monospace;padding:3px 6px;width:58px}.wsm-console{background:var(--bg1);border:1px solid var(--border);border-radius:10px;font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;max-height:150px;overflow-y:auto}.wsm-console-head{align-items:center;background:var(--bg2);border-bottom:1px solid var(--border);color:var(--text-secondary);display:flex;font:600 11px var(--font);justify-content:space-between;padding:4px 8px;position:-webkit-sticky;position:sticky;top:0}.wsm-console-head button{background:none;border:0;color:var(--accent);cursor:pointer;font:500 11px var(--font)}.wsm-console-empty{color:var(--text-muted);padding:6px 8px}.wsm-console-line{color:var(--text-secondary);padding:1px 8px;white-space:pre-wrap;word-break:break-all}.wsm-console-line.is-write{color:var(--accent)}.wsm-console-line.is-warn{color:#ff9f0a}.wsm-console-line.is-error{color:#ff453a}.wsm-preview-head{align-items:center;align-self:stretch;display:flex;gap:12px;justify-content:space-between}.wsm-sim-switch{align-items:center;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:12px;gap:6px;-webkit-user-select:none;user-select:none}.wsm-sim-switch input{accent-color:#5b87b8;accent-color:var(--accent,#5b87b8);margin:0}.wsm-label--error .rl-select-trigger,.wsm-label--error .wsm-field,.wsm-label--error input,.wsm-label--error select{border-color:var(--color-danger)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-danger) 22%,#0000)!important}.wsm-field-error,.wsm-label--error,.wsm-label--error>span:first-child{color:var(--color-danger)}.wsm-field-error{display:block;font-size:12px;font-weight:500;margin-top:4px}.rl-context-menu{animation:rlContextMenuIn .14s cubic-bezier(.2,.9,.3,1);backdrop-filter:blur(24px) saturate(1.8);-webkit-backdrop-filter:blur(24px) saturate(1.8);background:color-mix(in srgb,var(--bg1) 78%,#0000);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:1px;min-width:190px;padding:6px;position:fixed;transition:opacity .12s ease;z-index:2000}@keyframes rlContextMenuIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.rl-context-menu-item{align-items:center;background:none;border:none;border-radius:var(--radius);color:var(--text-primary);cursor:pointer;display:flex;font-family:var(--font);font-size:13px;gap:10px;padding:7px 10px;text-align:left;transition:background var(--transition),color var(--transition);width:100%}.rl-context-menu-item i{color:var(--text-secondary);flex-shrink:0;font-size:12px;text-align:center;width:14px}.rl-context-menu-item:focus-visible,.rl-context-menu-item:hover{background:var(--accent);color:#fff;outline:none}.rl-context-menu-item:focus-visible i,.rl-context-menu-item:hover i{color:#fff}.rl-context-menu-item--danger,.rl-context-menu-item--danger i{color:var(--color-danger)}.rl-context-menu-item--danger:focus-visible,.rl-context-menu-item--danger:hover{background:var(--color-danger);color:#fff}.rl-context-menu-item--danger:focus-visible i,.rl-context-menu-item--danger:hover i{color:#fff}.rl-button{-webkit-tap-highlight-color:transparent;align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,sans-serif;font-weight:500;justify-content:center;letter-spacing:-.5px;outline:2px solid #0000;outline-offset:2px;overflow:hidden;position:relative;transition:all .25s cubic-bezier(.34,1.56,.64,1);user-select:none;-webkit-user-select:none}.rl-button:focus-visible{outline:2px solid var(--accent)}.rl-button:hover:not(.rl-button--disabled){box-shadow:0 8px 24px #0000001f;transform:translateY(-2px)}.rl-button:active:not(.rl-button--disabled){box-shadow:0 4px 12px #00000014;transform:translateY(-1px)}.rl-button--sm{font-size:12px;gap:6px;line-height:1.4;min-height:32px;padding:8px 16px}.rl-button--md{font-size:14px;gap:8px;line-height:1.4;min-height:44px;padding:12px 24px}.rl-button--lg{font-size:16px;font-weight:600;gap:10px;line-height:1.4;min-height:52px;padding:16px 32px}.rl-button--primary.rl-button--green-white{background:var(--accent);color:#fff}.rl-button--primary.rl-button--green-white:hover:not(.rl-button--disabled){background:linear-gradient(180deg,#29d689,#22c97f);box-shadow:0 8px 24px #0000001f}.rl-button--primary.rl-button--green-white:active:not(.rl-button--disabled){background:var(--green-600);box-shadow:none}.rl-button--secondary.rl-button--green-white{background:color-mix(in srgb,var(--text-primary) 8%,#0000);border:1px solid color-mix(in srgb,var(--accent) 30%,#0000);color:var(--accent)}.rl-button--secondary.rl-button--green-white:hover:not(.rl-button--disabled){background:color-mix(in srgb,var(--accent) 10%,#0000);border-color:color-mix(in srgb,var(--accent) 50%,#0000)}.rl-button--secondary.rl-button--green-white:active:not(.rl-button--disabled){background:color-mix(in srgb,var(--accent) 15%,#0000)}.rl-button--ghost.rl-button--green-white{background:#0000;color:var(--accent)}.rl-button--ghost.rl-button--green-white:hover:not(.rl-button--disabled){background:color-mix(in srgb,var(--accent) 10%,#0000)}.rl-button--ghost.rl-button--green-white:active:not(.rl-button--disabled){background:color-mix(in srgb,var(--accent) 20%,#0000)}.rl-button--danger.rl-button--green-white{background:var(--color-danger);color:#fff}.rl-button--danger.rl-button--green-white:hover:not(.rl-button--disabled){background:color-mix(in srgb,var(--color-danger) 85%,#fff);box-shadow:0 8px 24px #0000001f}.rl-button--primary.rl-button--green-gray{background:var(--accent);color:#191919}.rl-button--primary.rl-button--green-gray:hover:not(.rl-button--disabled){background:linear-gradient(180deg,#29d689,#22c97f);box-shadow:0 8px 24px #0000001f}.rl-button--primary.rl-button--green-gray:active:not(.rl-button--disabled){background:var(--green-600);box-shadow:none}.rl-button--secondary.rl-button--green-gray{background:color-mix(in srgb,var(--text-primary) 5%,#0000);border:1px solid color-mix(in srgb,var(--accent) 40%,#0000);color:var(--accent)}.rl-button--secondary.rl-button--green-gray:hover:not(.rl-button--disabled){background:color-mix(in srgb,var(--accent) 10%,#0000);border-color:color-mix(in srgb,var(--accent) 60%,#0000)}.rl-button--secondary.rl-button--green-gray:active:not(.rl-button--disabled){background:color-mix(in srgb,var(--accent) 15%,#0000)}.rl-button--ghost.rl-button--green-gray{background:#0000;color:var(--accent)}.rl-button--ghost.rl-button--green-gray:hover:not(.rl-button--disabled){background:color-mix(in srgb,var(--accent) 10%,#0000)}.rl-button--ghost.rl-button--green-gray:active:not(.rl-button--disabled){background:color-mix(in srgb,var(--accent) 15%,#0000)}.rl-button--danger.rl-button--green-gray{background:var(--color-danger);color:#191919}.rl-button--danger.rl-button--green-gray:hover:not(.rl-button--disabled){background:color-mix(in srgb,var(--color-danger) 85%,#fff);box-shadow:0 8px 24px #0000001f}.rl-button--disabled{cursor:not-allowed;opacity:.5;transform:none!important}.rl-button--disabled:hover{box-shadow:none;transform:none}.rl-button--full-width{width:100%}.rl-button__content{align-items:center;display:flex;gap:inherit;justify-content:center;position:relative;z-index:1}.rl-button__text{font-weight:inherit;letter-spacing:inherit}.rl-button__icon{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center}.rl-button__icon--left{margin-right:-2px}.rl-button__icon--right{margin-left:-2px}.rl-button svg{display:inline-block;height:1em;vertical-align:middle;width:1em}.rl-button__spinner{align-items:center;animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:currentcolor;display:inline-flex;height:1em;justify-content:center;margin-right:4px;width:1em}.rl-button--green-gray .rl-button__spinner{border-color:#19191933;border-top-color:initial}@keyframes spin{to{transform:rotate(1turn)}}.rl-button:focus{outline:none}.rl-button:focus-visible{outline:2px solid #007fd4;outline-offset:4px}@media (prefers-reduced-motion:reduce){.rl-button{transition:none}.rl-button:active:not(.rl-button--disabled),.rl-button:hover:not(.rl-button--disabled){transform:none}.rl-button__spinner{animation:none;border-top-color:#0000}}@media (max-width:640px){.rl-button--md{font-size:13px;min-height:40px;padding:10px 20px}.rl-button--lg{font-size:14px;min-height:48px;padding:12px 24px}}.dash-root{background:var(--bg0);display:flex;flex-direction:column;height:100%;overflow:hidden}.dash-root *{-webkit-tap-highlight-color:transparent!important;outline:none!important}.dash-root :focus,.dash-root :focus-visible{box-shadow:none!important;outline:none!important}.dash-toolbar{background:var(--bg1);border-bottom:1px solid var(--border);flex-shrink:0;height:54px;justify-content:space-between}.dash-toolbar,.dash-toolbar-left,.dash-toolbar-right{align-items:center;display:flex;gap:10px}@media (max-width:480px){.dash-toolbar{gap:6px;padding:0 8px}.dash-toolbar-left,.dash-toolbar-right{-webkit-overflow-scrolling:touch;gap:6px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.dash-toolbar-left::-webkit-scrollbar,.dash-toolbar-right::-webkit-scrollbar{display:none}.dash-toolbar-right{justify-content:flex-end}.dash-device-chip{flex-shrink:0;padding:5px 10px}.dash-device-name{max-width:90px;overflow:hidden;text-overflow:ellipsis}.dash-link-btn,.mode-btn,.range-toggle,.share-btn,.toolbar-btn{flex-shrink:0}.dash-link-btn,.show-mobile.toolbar-btn{justify-content:center;min-width:34px;padding:5px 9px}.dash-link-btn .toolbar-btn-label,.show-mobile.toolbar-btn .toolbar-btn-label{display:none}.dash-share-btn{flex-shrink:0}.dash-share-btn .rl-button__text{display:none}.dash-share-btn .rl-button__icon{margin:0}}.dash-device-chip{flex-shrink:0;position:relative}.dash-device-chip-trigger{align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-pill);cursor:pointer;display:flex;font-family:var(--font);gap:8px;padding:6px 14px}.dash-device-chip-trigger:disabled{cursor:default}.dash-device-chip-trigger:not(:disabled):hover{background:var(--bg3)}.dash-device-info-popup{background:var(--bg2);border:1px solid var(--border-light);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-width:calc(100vw - 24px);min-width:220px;padding:10px;position:fixed;z-index:1001}.dash-device-info-row{align-items:center;display:flex;font-size:12px;gap:10px;justify-content:space-between;padding:6px 4px}.dash-device-info-row+.dash-device-info-row{border-top:1px solid var(--border)}.dash-device-info-label{color:var(--text-muted);font-weight:500}.dash-device-info-value{align-items:center;color:var(--text-primary);display:flex;font-family:Consolas,monospace;font-weight:600;gap:5px}.dash-device-name{color:var(--text-primary);font-size:13px;font-weight:600;letter-spacing:-.1px;white-space:nowrap}.dash-device-online{align-items:center;border-left:1px solid var(--border);color:var(--text-muted);display:flex;font-size:12px;font-weight:500;gap:5px;padding-left:8px;white-space:nowrap}.dash-org-label{color:var(--text-primary);font-family:var(--font-brand);font-size:13px;font-weight:700;letter-spacing:.2px}.status-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.dot-green{animation:pulse-dot 2s ease-in-out infinite;background:var(--color-success);box-shadow:0 0 0 0 #52c41a99}.dot-red{background:var(--color-danger)}.dot-yellow{background:var(--color-warn)}@keyframes pulse-dot{0%{box-shadow:0 0 0 0 #52c41a99}70%{box-shadow:0 0 0 6px #52c41a00}to{box-shadow:0 0 0 0 #52c41a00}}.toolbar-btn{border-radius:var(--radius-pill);font-size:12.5px;font-weight:500;min-height:34px;padding:6px 14px}.toolbar-btn--icon{align-items:center;display:inline-flex;justify-content:center;padding:5px 9px}.toolbar-btn--active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.range-toggle{align-items:stretch;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;flex-shrink:0;gap:2px;overflow:hidden;padding:2px}.range-toggle-btn{background:#0000;border:none;border-radius:calc(var(--radius) - 2px);color:var(--text-secondary);cursor:pointer;font-family:var(--font);font-size:12px;font-weight:500;letter-spacing:-.1px;padding:5px 10px;transition:background var(--transition),color var(--transition);white-space:nowrap}.range-toggle-btn:hover{background:var(--bg3);color:var(--text-primary)}.range-toggle-btn--active{background:var(--bg4);color:var(--text-primary);font-weight:600}.range-toggle-btn--active:hover{background:var(--bg4)}.range-toggle-btn .fa-circle-dot{color:var(--accent);font-size:12px}.mode-btn{border:none;border-radius:var(--radius-pill);cursor:pointer;font-family:var(--font);font-size:12px;font-weight:700;letter-spacing:.5px;min-height:32px;padding:5px 14px;text-transform:uppercase;transition:all var(--transition);white-space:nowrap}.mode-btn--run{background:var(--green-500);color:#fff}.mode-btn--run:hover{background:var(--green-400)}.mode-btn--edit{background:var(--bg3);border:1px solid var(--border-light);color:var(--text-primary)}.mode-btn--edit:hover{background:var(--bg3);background:var(--bg4,var(--bg3));border-color:var(--text-muted)}body.edit-mode .drag-handle{touch-action:none}.grid-stack-item.ui-draggable-dragging .grid-stack-item-content{border-color:color-mix(in srgb,var(--accent) 55%,#0000);box-shadow:0 18px 40px #00000059,0 4px 12px #0003}.dash-usage{align-items:center;background:#52c41a14;border:1px solid #52c41a33;border-radius:99px;color:var(--color-success);display:flex;font-size:12px;font-weight:600;gap:6px;padding:2px 10px}.dash-body{display:flex;flex:1 1;min-height:0;overflow:hidden;position:relative}.toolbox-panel{background:var(--bg1);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;width:200px}.toolbox-header{border-bottom:1px solid var(--border);color:var(--text-muted);font-family:var(--font-brand);font-size:12px;font-weight:700;letter-spacing:1.2px;padding:12px 12px 8px;text-transform:uppercase}.toolbox-grid{display:flex;flex-direction:column;gap:2px;padding:8px 6px}.toolbox-chip{align-items:center;background:#0000;border:1px solid #0000;border-radius:var(--radius);color:var(--text-secondary);cursor:grab;display:flex;font-family:var(--font);font-size:12px;gap:10px;min-height:38px;padding:8px 10px;text-align:left;transition:all var(--transition);-webkit-user-select:none;user-select:none}.toolbox-chip:hover{background:var(--bg3);border-color:var(--border-light);color:var(--text-primary)}.toolbox-chip:active{cursor:grabbing;transform:scale(.97)}.ui-draggable-dragging.toolbox-chip{background:var(--bg2)!important;border:1px solid var(--border-light)!important;border-radius:var(--radius);box-shadow:0 8px 24px #00000080;color:var(--text-primary)!important;min-width:140px;opacity:.9;pointer-events:none;z-index:9999}.toolbox-chip-icon{flex-shrink:0;font-size:14px;opacity:.8;text-align:center;width:22px}.grid-canvas{-webkit-overflow-scrolling:touch;background:var(--bg0)}body.edit-mode .grid-canvas{background-image:radial-gradient(circle,var(--text-muted) 1.5px,#0000 1.5px);background-position:-1px -1px;background-size:4.16667% 20px}@media (max-width:768px),(pointer:coarse) and (max-height:540px){body.edit-mode .grid-canvas{background-size:8.33333% 20px}}@media (max-width:400px){body.edit-mode .grid-canvas{background-size:16.66667% 20px}}.grid-stack{width:100%}@media (max-width:400px){.grid-stack-item{overflow:visible!important}.grid-stack-item-content{overflow:hidden!important}}.ui-resizable-handle{display:none!important}body.edit-mode .ui-resizable-handle{display:block!important;pointer-events:all!important;position:absolute;touch-action:none!important;z-index:999!important}body.edit-mode .ui-resizable-ne,body.edit-mode .ui-resizable-nw,body.edit-mode .ui-resizable-se,body.edit-mode .ui-resizable-sw{background-color:var(--bg0);background-image:repeating-linear-gradient(135deg,var(--text-primary) 0,var(--text-primary) 2px,#0000 2px,#0000 5px);border:1px solid var(--border-light);box-shadow:0 1px 3px #00000059;height:18px;opacity:.45;transform:none!important;transition:opacity var(--transition),background-color var(--transition),border-color var(--transition),transform var(--transition);width:18px}body.edit-mode .grid-stack-item:active .ui-resizable-ne,body.edit-mode .grid-stack-item:active .ui-resizable-nw,body.edit-mode .grid-stack-item:active .ui-resizable-se,body.edit-mode .grid-stack-item:active .ui-resizable-sw,body.edit-mode .grid-stack-item:hover .ui-resizable-ne,body.edit-mode .grid-stack-item:hover .ui-resizable-nw,body.edit-mode .grid-stack-item:hover .ui-resizable-se,body.edit-mode .grid-stack-item:hover .ui-resizable-sw{opacity:.9}body.edit-mode .ui-resizable-ne:hover,body.edit-mode .ui-resizable-nw:hover,body.edit-mode .ui-resizable-se:hover,body.edit-mode .ui-resizable-sw:hover{background-color:var(--accent-dim);background-image:repeating-linear-gradient(135deg,var(--accent) 0,var(--accent) 2px,#0000 2px,#0000 5px);border-color:var(--accent);opacity:1;transform:scale(1.1)!important}body.edit-mode .ui-resizable-se{border-radius:4px 0 4px 0;bottom:2px;-webkit-clip-path:polygon(100% 0,100% 100%,0 100%);clip-path:polygon(100% 0,100% 100%,0 100%);cursor:se-resize;right:2px}body.edit-mode .ui-resizable-sw{border-radius:0 4px 0 4px;bottom:2px;-webkit-clip-path:polygon(0 0,100% 100%,0 100%);clip-path:polygon(0 0,100% 100%,0 100%);cursor:sw-resize;left:2px}body.edit-mode .ui-resizable-ne{border-radius:0 4px 0 4px;-webkit-clip-path:polygon(0 0,100% 0,100% 100%);clip-path:polygon(0 0,100% 0,100% 100%);cursor:ne-resize;right:2px;top:2px}body.edit-mode .ui-resizable-nw{border-radius:4px 0 4px 0;-webkit-clip-path:polygon(0 0,100% 0,0 100%);clip-path:polygon(0 0,100% 0,0 100%);cursor:nw-resize;left:2px;top:2px}@media (max-width:768px),(pointer:coarse) and (max-height:540px){body.edit-mode .ui-resizable-ne,body.edit-mode .ui-resizable-nw,body.edit-mode .ui-resizable-se,body.edit-mode .ui-resizable-sw{height:22px;width:22px}}.grid-stack-item.ui-draggable-dragging .widget-body,.grid-stack-item.ui-resizable-resizing .widget-body{pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none}@media (max-width:960px){.grid-canvas{overflow-x:hidden!important;overflow-y:auto!important}.grid-stack{width:100%!important}}.grid-stack-item-content{-webkit-tap-highlight-color:transparent;background:var(--bg2);border:1px solid var(--border-faint);border-radius:var(--radius-xl);box-shadow:0 1px 2px #0000001f,0 4px 18px #00000024;inset:5px!important;outline:none!important;overflow:hidden;transition:border-color .25s,box-shadow .25s cubic-bezier(.2,.8,.2,1),transform .25s cubic-bezier(.2,.8,.2,1)}.grid-stack-item-content:hover{border-color:var(--border-light);box-shadow:0 12px 34px #00000038;transform:translateY(-2px)}@media (max-width:768px),(pointer:coarse) and (max-height:540px){.grid-canvas{padding:12px 8px}.grid-stack{width:100%!important}.grid-stack-item-content{inset:8px!important}body.edit-mode .grid-canvas{padding-bottom:70px}}@media (max-width:400px){.grid-canvas{padding:12px 6px}.grid-stack-item-content{border-radius:12px;inset:9px!important}body.edit-mode .ui-resizable-ne,body.edit-mode .ui-resizable-nw,body.edit-mode .ui-resizable-se,body.edit-mode .ui-resizable-sw{height:32px;width:32px}body.edit-mode .grid-stack-item .ui-resizable-se{opacity:1!important;visibility:visible!important}input,select,textarea{font-size:16px}*{-webkit-tap-highlight-color:transparent}.grid-stack-item,[role=button],button{outline:none}.precision-bar{bottom:8px;font-size:12px;gap:6px;padding:5px 10px}.precision-bar input[type=number]{font-size:12px;padding:2px 4px;width:38px}.prec-align-btn{font-size:12px;height:24px;width:24px}}.dash-empty{color:var(--text-muted);font-size:13px;left:50%;pointer-events:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);width:80%}.dash-empty-icon{margin-bottom:12px;opacity:.25}.dash-empty-hint{font-family:var(--font-brand);font-size:12px;margin-top:6px;opacity:.6}.grid-stack-item-content:focus{box-shadow:var(--shadow),0 0 0 1px #fff6!important;outline:none!important}.grid-stack-item-content *{-webkit-tap-highlight-color:transparent;outline:none!important}.grid-stack-item.ui-draggable-dragging .grid-stack-item-content{cursor:grabbing}.mobile-sheet-overlay{align-items:flex-end;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;display:flex;inset:0;position:fixed;z-index:1000}.mobile-sheet{animation:slideUp .25s cubic-bezier(.645,.045,.355,1);background:var(--bg1);border-radius:16px 16px 0 0;border-top:1px solid var(--border);display:flex;flex-direction:column;max-height:75vh;overflow:hidden;width:100%}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-sheet-handle{background:var(--border-light);border-radius:2px;flex-shrink:0;height:3px;margin:10px auto 0;width:36px}.mobile-sheet-title{color:var(--text-primary);flex-shrink:0;font-family:var(--font-brand);font-size:14px;font-weight:700;letter-spacing:.2px;padding:10px 16px}.mobile-sheet-body{-webkit-overflow-scrolling:touch;overflow-y:auto;padding-bottom:16px}.mobile-sheet-body .toolbox-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;padding:8px 12px}.mobile-sheet-body .toolbox-chip{align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;font-size:12px;gap:6px;justify-content:center;min-height:72px;padding:14px 8px}.hide-mobile{display:flex}.show-mobile{display:none}.range-select{flex-shrink:0;max-width:128px;width:auto}.range-select .rl-select-trigger{font-size:12px;padding:5px 8px;white-space:nowrap}@media (max-width:768px),(pointer:coarse) and (max-height:540px){.hide-mobile{display:none!important}.show-mobile{display:flex!important}.range-select.show-mobile{display:inline-block!important}.toolbox-panel{display:none!important}.dash-toolbar{height:52px;padding:0 12px}.dash-device-online{display:none}.grid-canvas{padding:8px}}@media (max-width:480px){.toolbar-btn{font-size:12px;padding:5px 8px}.mode-btn{padding:5px 10px}}.dash-device-picker{position:relative}.dash-link-btn i{color:var(--accent)}.dash-link-btn:hover{border-color:var(--accent);color:var(--accent)}.dash-picker-dropdown{backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);background:color-mix(in srgb,var(--bg2) 88%,#0000);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:calc(100vw - 24px);min-width:220px;overflow:hidden;position:fixed;z-index:200}.dash-picker-header{border-bottom:1px solid var(--border);color:var(--text-muted);font-size:12px;letter-spacing:.06em;padding:10px 14px 6px;text-transform:uppercase}.dash-picker-empty{color:var(--text-muted);font-size:12px;padding:12px 14px}.dash-picker-item{align-items:center;background:#0000;border:none;color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;gap:6px;padding:9px 14px;text-align:left;transition:background var(--transition);width:100%}.dash-picker-item:hover{background:var(--bg3)}.dash-picker-name{flex:1 1}.dash-picker-sub{color:var(--text-muted);font-size:12px}.group-widget-shell{display:flex;flex-direction:column;height:100%;overflow:hidden}.nested-grid-stack{border-radius:var(--radius);flex:1 1;min-height:40px;padding:4px;position:relative}.nested-grid-empty-hint{align-items:center;color:var(--text-muted);display:flex;font-size:12px;inset:0;justify-content:center;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none}body.edit-mode .nested-grid-stack{outline:1px dashed var(--border-light);outline-offset:-2px}.drag-placement-preview{background:#0000;border:2px dashed var(--text-muted);border-radius:0;pointer-events:none;position:fixed;transition:left .08s ease,top .08s ease,width .08s ease,height .08s ease;z-index:999}.drop-over-group{background-color:#e8a0200f!important;outline:2px dashed #e8a020!important;outline:2px dashed var(--color-warn,#e8a020)!important;outline-offset:-2px}.dash-empty-content{align-items:center;display:flex;flex-direction:column;gap:8px;text-align:center}.dash-empty-icon{font-size:40px;line-height:1;opacity:.3}.dash-empty-title{color:var(--text-primary);font-size:15px;font-weight:600}.dash-empty-sub{color:var(--text-muted);font-size:13px;max-width:300px}.precision-bar{align-items:center;backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);background:color-mix(in srgb,var(--bg1) 80%,#0000);border:1px solid var(--border-light);border-radius:var(--radius-pill);bottom:16px;box-shadow:var(--shadow-lg);display:flex;gap:8px;left:50%;padding:6px 12px;position:fixed;transform:translateX(-50%);-webkit-user-select:none;user-select:none;z-index:1002}@media (max-width:768px),(pointer:coarse) and (max-height:540px){.precision-bar{bottom:calc(64px + env(safe-area-inset-bottom, 0px));flex-wrap:wrap;gap:5px;justify-content:center;max-width:calc(100vw - 24px);padding:7px 10px;row-gap:6px}.precision-bar .prec-align-btn{font-size:12px;height:24px;width:24px}}.precision-bar .prec-sep{background:#2d3a5c;background:var(--border,#2d3a5c);flex-shrink:0;height:20px;width:1px}.prec-align-btn{align-items:center;background:#0000;border:1px solid #0000;border-radius:4px;color:#888;color:var(--text-muted,#888);cursor:pointer;display:flex;font-size:12px;height:26px;justify-content:center;transition:all .15s;width:26px}.prec-align-btn:hover{background:#252d45;background:var(--bg3,#252d45);border-color:#3a4a70;border-color:var(--border-light,#3a4a70);color:#eef0f8;color:var(--text-primary,#eef0f8)}.drag-action-bar{bottom:0;display:flex;height:72px;left:0;pointer-events:none;position:fixed;right:0;-webkit-user-select:none;user-select:none;z-index:10001}.drag-action-zone{align-items:center;background:color-mix(in srgb,var(--bg1) 92%,#0000);border-top:1px solid var(--border-light);color:var(--text-muted);display:flex;flex:1 1;flex-direction:column;font-size:12px;font-weight:600;gap:4px;justify-content:center;transition:background .1s,color .1s,border-top-color .1s,border-top-width .1s,box-shadow .1s,transform .1s}.drag-action-zone i{font-size:16px}.drag-action-zone+.drag-action-zone{border-left:1px solid var(--border)}.drag-action-zone--remove.drag-action-zone--active{background:#e0505040;background:var(--color-danger-dim,#e0505040);border-top:3px solid #e05050;border-top:3px solid var(--color-danger,#e05050);box-shadow:inset 0 24px 24px -24px #e05050;box-shadow:inset 0 24px 24px -24px var(--color-danger,#e05050);color:#e05050;color:var(--color-danger,#e05050);transform:scale(1.04)}.drag-action-zone--center.drag-action-zone--active{background:color-mix(in srgb,var(--accent) 20%,#0000);border-top:3px solid var(--accent);box-shadow:inset 0 24px 24px -24px var(--accent);color:var(--accent);transform:scale(1.04)}.drag-action-zone--duplicate.drag-action-zone--active{background:#569cd638;border-top:3px solid #5b87b8;box-shadow:inset 0 24px 24px -24px #5b87b8;color:#5b87b8;transform:scale(1.04)}.drag-action-chip{background:#3a3a3a;background:var(--bg3,#3a3a3a);border-radius:999px;box-shadow:0 4px 14px #0006;color:#fff;font-size:12px;font-weight:700;letter-spacing:.02em;padding:6px 12px;pointer-events:none;position:fixed;transform:translate(-50%,-50%);transition:background .1s,color .1s;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:10002}.drag-action-chip[data-zone=move]{background:#3a3a3a;background:var(--bg3,#3a3a3a);color:#eee;color:var(--text-primary,#eee)}.drag-action-chip[data-zone=remove]{background:#e05050;background:var(--color-danger,#e05050)}.drag-action-chip[data-zone=center]{background:#1dbf73;background:var(--accent,#1dbf73)}.drag-action-chip[data-zone=duplicate]{background:#5b87b8}.grid-stack-item--selected>.grid-stack-item-content>*{outline:2px solid #1dbf73!important;outline:2px solid var(--green-500,#1dbf73)!important;outline-offset:-2px}.share-btn{align-items:center;color:#888;color:var(--text-muted,#888);display:flex;font-size:12px;gap:5px}.share-btn:hover{border-color:var(--accent);color:var(--accent)}.share-modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.share-modal{animation:slideUpIn .3s cubic-bezier(.34,1.56,.64,1);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);background:color-mix(in srgb,var(--bg1) 85%,#0000);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:90vh;max-width:520px;overflow:hidden;width:100%}@keyframes slideUpIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.share-modal-header{border-bottom:1px solid var(--border);color:var(--text-primary);font-weight:700;justify-content:space-between;letter-spacing:-.3px;padding:18px 20px}.share-modal-close,.share-modal-header{align-items:center;display:flex;flex-shrink:0;font-size:16px}.share-modal-close{background:none;border:none;border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer;height:28px;justify-content:center;padding:0;transition:background var(--transition),color var(--transition);width:28px}.share-modal-close:hover{background:var(--bg3);color:var(--text-primary)}.share-modal-close:focus{outline:2px solid var(--accent);outline-offset:2px}.share-modal-body{display:flex;flex-direction:column;gap:24px;overflow-y:auto;padding:20px}.share-modal-create{grid-gap:16px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);display:grid;gap:16px;grid-template-columns:1fr 1fr;padding:16px}.share-label{color:var(--text-secondary);display:block;font-size:12px;font-weight:600;letter-spacing:.5px;line-height:1.5;margin-bottom:8px;text-transform:uppercase}.share-select{background:var(--bg0);border:1px solid var(--border-light);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;font-size:13px;padding:8px 10px;transition:border-color var(--transition),box-shadow var(--transition)}.share-select:hover{border-color:var(--border-light)}.share-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.share-create-btn{border-radius:var(--radius-pill);font-size:13.5px;font-weight:600;grid-column:1/-1;padding:9px 20px}.share-list{display:flex;flex-direction:column;gap:12px}.share-list-header{color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.share-item{animation:slideInUp .4s ease-out backwards;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:10px;padding:14px;position:relative;transition:border-color var(--transition),background var(--transition)}.share-item:first-child{animation-delay:0s}.share-item:nth-child(2){animation-delay:.1s}.share-item:nth-child(3){animation-delay:.2s}.share-item:nth-child(4){animation-delay:.3s}.share-item:nth-child(5){animation-delay:.4s}.share-item:hover{background:color-mix(in srgb,var(--accent) 2%,#0000);border-color:color-mix(in srgb,var(--accent) 30%,#0000)}.share-item--expired{border-color:var(--color-danger-dim);opacity:.6}.share-item-url{align-items:center;display:flex;gap:8px}.share-url-input{background:var(--bg0);border:1px solid var(--border-light);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;flex:1 1;font-family:var(--font-mono);font-size:12px;min-width:0;outline:none;padding:8px 10px;transition:border-color var(--transition)}.share-url-input:hover{border-color:var(--border-light)}.share-url-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.share-copy-btn{align-items:center;background:var(--accent-dim);border:1px solid #0000;border-radius:var(--radius-pill);color:var(--accent);cursor:pointer;display:flex;flex-shrink:0;font-size:12px;font-weight:600;gap:6px;min-height:36px;padding:8px 14px;transition:background var(--transition),color var(--transition)}.share-copy-btn:hover{background:var(--accent);color:#fff}.share-copy-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.share-fullscreen-toggle{align-items:center;color:var(--text-muted);cursor:pointer;display:flex;font-size:12px;gap:6px;padding-top:6px}.share-fullscreen-toggle input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.share-fullscreen-toggle:hover{color:var(--text-secondary)}.share-item-meta{align-items:center;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.share-badge{align-items:center;background:var(--bg3);border:1px solid #0000;border-radius:var(--radius-pill);color:var(--text-secondary);display:inline-flex;font-size:12px;font-weight:600;gap:6px;letter-spacing:.2px;line-height:1.3;padding:4px 10px;white-space:nowrap}.share-badge--expired{background:var(--color-danger-dim);color:var(--color-danger)}.share-badge--control{background:var(--color-success-dim);color:var(--color-success)}.share-badge--view-only{background:var(--bg3);color:var(--text-muted)}.share-created{align-items:center;display:flex;font-size:12px;gap:4px;letter-spacing:.1px;line-height:1.3;margin-left:auto}.share-created,.share-delete-btn.rl-button{color:var(--text-muted)}.share-delete-btn.rl-button:hover:not(.rl-button--disabled){background:color-mix(in srgb,var(--color-danger) 10%,#0000);box-shadow:none;color:var(--color-danger);transform:none}.share-empty{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-muted);font-size:13px;padding:32px 16px;text-align:center}.tooltip-wrapper{display:inline-block;position:relative}.tooltip-text{background-color:#333;border-radius:4px;bottom:125%;color:#fff;font-size:12px;left:50%;opacity:0;padding:6px 10px;pointer-events:none;position:absolute;text-align:center;transform:translateX(-50%);transition:opacity .3s ease;visibility:hidden;white-space:nowrap;z-index:1001}.tooltip-text:after{border:5px solid #0000;border-top-color:#333;content:"";left:50%;margin-left:-5px;position:absolute;top:100%}.tooltip-wrapper:hover .tooltip-text{opacity:1;visibility:visible}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.error .share-select{background:#f447470d;border-color:var(--color-danger)}.form-error-message{align-items:center;color:#c0625a;display:flex;font-size:12px;gap:4px}.form-success .share-select{background:#4caf500d;border-color:var(--color-success)}@media (max-width:640px){.share-modal{max-height:calc(100vh - 32px);max-width:calc(100vw - 32px)}.share-modal-body{padding:16px}.share-modal-create{gap:12px;grid-template-columns:1fr}.share-create-btn{grid-column:1}.share-item-meta{flex-direction:column;gap:8px}.share-created{margin-left:0}}@media (max-width:480px){.share-modal{margin:0 16px;max-width:calc(100vw - 32px)}.share-modal-header{padding:8px 12px}.share-modal-body{gap:16px;padding:12px}.share-modal-create{padding:12px}.share-item-url{flex-direction:column}.share-copy-btn{justify-content:center;width:100%}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.share-modal{animation:none}}@media (max-width:768px),(pointer:coarse) and (max-height:540px){.grid-stack-item-content{box-shadow:0 1px 2px #0000001f!important;transition:none!important}.grid-stack-item-content:hover{transform:none!important}.dash-toolbar,.mobile-sheet,.mobile-sheet-overlay{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}.grid-stack.grid-stack-animate>.grid-stack-item{transition-duration:.15s}.grid-stack>.grid-stack-item.ui-draggable-dragging,.grid-stack>.grid-stack-item.ui-draggable-dragging *{transition:none!important}.grid-stack>.grid-stack-item.ui-draggable-dragging{will-change:transform}.grid-canvas.grid-canvas--with-prec{padding-bottom:84px}@media (max-width:768px),(pointer:coarse) and (max-height:540px){.grid-canvas.grid-canvas--with-prec{padding-bottom:calc(138px + env(safe-area-inset-bottom, 0px))}}.drag-ghost{background:color-mix(in srgb,var(--accent) 10%,#0000);border:2px dashed color-mix(in srgb,var(--accent) 70%,#0000);border-radius:16px;border-radius:var(--radius-xl,16px);left:0;pointer-events:none;position:fixed;top:0;transition:transform .12s ease-out,width .12s ease-out,height .12s ease-out,opacity .12s;z-index:9998}@media (max-width:768px),(pointer:coarse) and (max-height:540px){.grid-stack-item.ui-draggable-dragging .grid-stack-item-content{box-shadow:0 12px 28px #00000059!important}}.shs-backdrop{align-items:center;animation:shs-fade .22s ease;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#00000052;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.shs{animation:shs-pop .4s cubic-bezier(.2,1.25,.4,1);background:var(--bg1);border-radius:20px;box-shadow:0 30px 90px #00000059;color:var(--text-primary);max-height:88vh;overflow:auto;overscroll-behavior:contain;width:min(520px,100%)}.shs-grabber{display:none}.shs-header{align-items:flex-start;display:flex;gap:12px;padding:22px 22px 6px}.shs-header>div{flex:1 1;min-width:0}.shs-header h3{font-size:19px;font-weight:700;letter-spacing:-.02em;margin:0}.shs-header p{color:var(--text-secondary);font-size:13px;line-height:1.45;margin:4px 0 0}.shs-x{background:var(--aw-fill);border:0;border-radius:50%;color:var(--text-secondary);cursor:pointer;display:grid;flex-shrink:0;height:30px;place-items:center;transition:background .15s,color .15s,transform .12s;width:30px}.shs-x:hover{color:var(--text-primary)}.shs-x:active{transform:scale(.92)}.shs-body{gap:16px;padding:12px 22px 22px}.shs-body,.shs-field{display:flex;flex-direction:column}.shs-field{gap:6px}.shs-field>label{color:var(--text-secondary);font-size:12.5px;font-weight:600}.shs-field>small{color:var(--text-muted);font-size:12px;line-height:1.4}.shs-seg{background:var(--aw-fill);border-radius:10px;display:flex;gap:2px;padding:2px}.shs-seg button{align-items:center;background:#0000;border:0;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:inline-flex;flex:1 1;font:500 13px var(--font);gap:6px;justify-content:center;min-height:34px;padding:6px 10px;transition:background .2s,color .2s,box-shadow .2s;white-space:nowrap}.shs-seg button.on{background:var(--bg2);background:var(--bg3,var(--bg2));box-shadow:0 1px 3px #0000002e,0 0 0 .5px #0000000f;color:var(--text-primary)}body.light-mode .shs-seg button.on{background:#fff}.shs-seg button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.shs-btn{align-items:center;background:var(--aw-fill);border:0;border-radius:980px;color:var(--text-primary);cursor:pointer;display:inline-flex;font:500 13.5px var(--font);gap:6px;justify-content:center;padding:8px 16px;transition:transform .12s,filter .2s,opacity .2s,background .2s,color .2s;white-space:nowrap}.shs-btn:hover:not(:disabled){filter:brightness(1.08)}.shs-btn:active:not(:disabled){transform:scale(.96)}.shs-btn:disabled{cursor:default;opacity:.5}.shs-btn--primary{background:var(--accent);color:#fff}.shs-btn--block{font-size:15px;font-weight:600;min-height:44px;width:100%}.shs-btn--sm{font-size:12.5px;padding:6px 12px}.shs-btn--ok{background:color-mix(in srgb,var(--accent) 18%,#0000);color:var(--accent)}.shs-btn--danger{background:#0000;color:var(--color-danger)}.shs-btn--danger:hover:not(:disabled){background:color-mix(in srgb,var(--color-danger) 12%,#0000);filter:none}.shs-section-title{color:var(--text-secondary);font-size:12.5px;font-weight:600;margin-top:4px;text-transform:none}.shs-section-title span{color:var(--text-muted);font-weight:500}.shs-list{background:var(--bg2);background:var(--aw-fill2,var(--bg2));border-radius:14px;overflow:hidden}.shs-row{display:flex;flex-direction:column;gap:8px;padding:12px 14px}.shs-row+.shs-row{border-top:1px solid var(--aw-sep,var(--border))}.shs-row--expired{opacity:.55}.shs-row-main{align-items:center;display:flex;gap:10px;min-width:0}.shs-row-icon{background:color-mix(in srgb,var(--accent) 16%,#0000);border-radius:9px;color:var(--accent);display:grid;flex-shrink:0;font-size:13px;height:32px;place-items:center;width:32px}.shs-row-text{display:flex;flex:1 1;flex-direction:column;gap:5px;min-width:0}.shs-url{background:#0000;border:0;color:var(--text-primary);font:500 13px ui-monospace,monospace;font:500 13px var(--font-mono,ui-monospace,monospace);min-width:0;outline:none;padding:0;text-overflow:ellipsis;width:100%}.shs-chips{display:flex;flex-wrap:wrap;gap:4px}.shs-chip{background:var(--aw-fill);border-radius:6px;color:var(--text-secondary);font-size:12px;font-weight:500;padding:2px 8px;white-space:nowrap}.shs-chip--warn{background:color-mix(in srgb,var(--color-warn) 18%,#0000);color:var(--color-warn)}.shs-chip--danger{background:color-mix(in srgb,var(--color-danger) 18%,#0000);color:var(--color-danger)}.shs-chip--muted{background:#0000;color:var(--text-muted);padding-left:2px}.shs-row-foot{display:flex;justify-content:space-between;padding-left:42px}.shs-row-foot,.shs-toggle{align-items:center;gap:8px}.shs-toggle{color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:12.5px;-webkit-user-select:none;user-select:none}.shs-toggle input{height:0;opacity:0;position:absolute;width:0}.shs-switch{background:var(--aw-fill);border-radius:999px;flex-shrink:0;height:22px;position:relative;transition:background .25s;width:36px}.shs-switch:after{background:#fff;border-radius:50%;box-shadow:0 2px 4px #00000040;content:"";height:18px;left:2px;position:absolute;top:2px;transition:transform .3s cubic-bezier(.2,1.3,.4,1);width:18px}.shs-toggle input:checked+.shs-switch{background:var(--accent)}.shs-toggle input:checked+.shs-switch:after{transform:translateX(14px)}.shs-toggle input:focus-visible+.shs-switch{outline:2px solid var(--accent);outline-offset:2px}.shs-empty{align-items:center;background:var(--bg2);background:var(--aw-fill2,var(--bg2));border-radius:14px;color:var(--text-secondary);display:flex;flex-direction:column;font-size:13px;gap:4px;padding:26px 12px;text-align:center}.shs-empty i{font-size:20px;margin-bottom:4px;opacity:.5}.shs-empty span{color:var(--text-muted);font-size:12px}@keyframes shs-fade{0%{opacity:0}}@keyframes shs-pop{0%{opacity:0;transform:scale(.93) translateY(10px)}}@keyframes shs-up{0%{transform:translateY(100%)}}@media (max-width:768px),(pointer:coarse) and (max-height:540px){.shs-backdrop{align-items:flex-end;padding:0}.shs{animation:shs-up .38s cubic-bezier(.2,.9,.3,1);border-radius:20px 20px 0 0;max-height:92vh;padding-bottom:env(safe-area-inset-bottom,0);width:100%}.shs-grabber{background:var(--aw-fill);border-radius:3px;display:block;height:5px;margin:8px auto 0;width:36px}.shs-header{padding:12px 18px 4px}.shs-body{padding:10px 18px 20px}.shs-seg button{min-height:38px}.shs-row-foot{padding-left:0}}@media (prefers-reduced-motion:reduce){.shs,.shs-backdrop{animation:none}}.dash-toolbar{--tb-surface:#161618b8;--tb-fill:#7878803d;--tb-fill-hover:#78788052;--tb-sep:#54545866;--tb-on:#636366;backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);background:var(--tb-surface);border-bottom:.5px solid var(--tb-sep);height:56px;padding:0 20px;position:-webkit-sticky;position:sticky;top:0;z-index:20}body.light-mode .dash-toolbar{--tb-surface:#ffffffb8;--tb-fill:#7878801f;--tb-fill-hover:#78788033;--tb-sep:#3c3c431f;--tb-on:#fff}.dash-toolbar .btn-ghost.toolbar-btn,.dash-toolbar .dash-share-btn{align-items:center;background:var(--tb-fill);border:0;border-radius:980px;color:var(--text-primary);display:inline-flex;font-size:13px;font-weight:500;gap:7px;letter-spacing:-.01em;min-height:32px;padding:0 14px;transition:background .15s,transform .15s}.dash-toolbar .btn-ghost.toolbar-btn:hover,.dash-toolbar .dash-share-btn:hover{background:var(--tb-fill-hover)}.dash-toolbar .btn-ghost.toolbar-btn:active,.dash-toolbar .dash-share-btn:active,.dash-toolbar .mode-btn:active{transform:scale(.94)}.dash-toolbar .toolbar-btn--icon{border-radius:50%;height:32px;justify-content:center;min-height:32px;padding:0;width:32px}.dash-toolbar .toolbar-btn i{font-size:13px}.dash-toolbar .toolbar-btn--active{background:color-mix(in srgb,var(--accent) 18%,#0000);color:var(--accent)}.dash-toolbar .btn-primary.toolbar-btn{border:0;border-radius:980px;font-size:13px;font-weight:600;min-height:32px;padding:0 16px}.dash-toolbar .dash-device-chip-trigger{align-items:flex-start;background:none;border:0;border-radius:10px;flex-direction:column;gap:1px;padding:4px 8px}.dash-toolbar .dash-device-chip-trigger:not(:disabled):hover{background:var(--tb-fill)}.dash-toolbar .dash-device-chip-trigger>.status-dot{display:none}.dash-toolbar .dash-device-name{font-size:17px;font-weight:600;letter-spacing:-.02em;line-height:1.15}.dash-toolbar .dash-device-online{border-left:0;color:var(--text-muted);font-size:12px;gap:6px;padding-left:0}.dash-toolbar .dash-device-online .status-dot{height:7px;width:7px}.dash-toolbar .range-toggle{background:var(--tb-fill);border:0;border-radius:9px;gap:2px;padding:2px}.dash-toolbar .range-toggle-btn{border-radius:7px;color:var(--text-primary);font-size:12.5px;font-weight:500;padding:5px 12px;transition:background .2s,box-shadow .2s}.dash-toolbar .range-toggle-btn:hover{background:#0000;color:var(--text-primary)}.dash-toolbar .range-toggle-btn--active,.dash-toolbar .range-toggle-btn--active:hover{background:var(--tb-on);box-shadow:0 1px 3px #0000001f,0 0 0 .5px #0000000a;font-weight:600}.dash-toolbar .range-toggle-btn .fa-circle-dot{color:#30d158}.dash-toolbar .mode-btn{align-items:center;border:0;border-radius:980px;display:inline-flex;font-size:13px;font-weight:600;gap:6px;letter-spacing:-.01em;min-height:32px;padding:0 16px;text-transform:none;transition:background .15s,transform .15s}.dash-toolbar .mode-btn i{font-size:12px}.dash-toolbar .mode-btn--run{background:color-mix(in srgb,var(--accent) 16%,#0000);color:var(--accent)}.dash-toolbar .mode-btn--run:hover{background:color-mix(in srgb,var(--accent) 24%,#0000)}.dash-toolbar .mode-btn--edit{background:var(--accent);color:#fff}.dash-toolbar .mode-btn--edit:hover{background:var(--accent);filter:brightness(1.08)}.dash-toolbar-right{gap:8px}.dash-toolbar .dash-toolbar-right>.mode-btn{margin-left:4px}@media (max-width:768px),(pointer:coarse) and (max-height:540px){.dash-toolbar{backdrop-filter:none;-webkit-backdrop-filter:none;height:52px;padding:0 12px}.dash-toolbar .dash-device-name{font-size:15px}.dash-toolbar .btn-ghost.toolbar-btn{padding:0 11px}}@media (max-width:480px){.dash-toolbar .dash-device-online{display:none}.dash-toolbar .dash-link-btn,.dash-toolbar .show-mobile.toolbar-btn{justify-content:center;padding:0;width:32px}.dash-toolbar{gap:4px;height:48px;padding:0 8px}.dash-toolbar .dash-toolbar-left,.dash-toolbar .dash-toolbar-right{gap:4px;min-width:0}.dash-toolbar .dash-toolbar-left{flex:1 1 auto}.dash-toolbar .dash-toolbar-right{flex:0 1 auto}.dash-toolbar .btn-ghost.toolbar-btn,.dash-toolbar .dash-link-btn,.dash-toolbar .dash-share-btn,.dash-toolbar .show-mobile.toolbar-btn,.dash-toolbar .toolbar-btn--icon{border-radius:50%;flex-shrink:0;height:30px;justify-content:center;min-height:30px;min-width:30px;padding:0;width:30px}.dash-toolbar .btn-primary.toolbar-btn{flex-shrink:0;font-size:12.5px;min-height:30px;padding:0 12px}.dash-toolbar .dash-share-btn .rl-button__text{display:none}.dash-toolbar .dash-device-chip-trigger{min-width:0;padding:2px 4px}.dash-toolbar .dash-device-chip{min-width:0;padding:0}.dash-toolbar .dash-device-name{display:block;font-size:14px;max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-toolbar .range-select{max-width:84px}.dash-toolbar .range-select .rl-select-trigger{font-size:11.5px;min-height:30px;padding:4px 6px}.dash-toolbar .mode-btn{flex-shrink:0;font-size:12.5px;margin-left:0!important;min-height:30px;padding:0 10px}.dash-toolbar .mode-btn--run{border-radius:50%;justify-content:center;padding:0;width:30px}.dash-toolbar .mode-btn-label{display:none}}.toolbox-credits{align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:10px;margin:10px 12px 2px;min-width:0;padding:8px 10px}.toolbox-credits svg{color:var(--green-500);flex:none}.toolbox-credits-txt{display:flex;flex:1 1;flex-direction:column;line-height:1.2;min-width:0;overflow:hidden}.toolbox-credits-txt b,.toolbox-credits-txt span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbox-credits-txt b{font-feature-settings:"tnum";color:var(--text-primary);font-size:15px;font-variant-numeric:tabular-nums;font-weight:600}.toolbox-credits-txt span{color:var(--text-muted);font-size:12px}.toolbox-credits{color:inherit;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s}.toolbox-credits:hover{background:var(--bg3);border-color:var(--green-500)}.toolbox-credits:focus-visible{outline:2px solid var(--green-500);outline-offset:2px}.toolbox-credits svg.toolbox-credits-go{color:var(--text-muted);margin-left:auto;transition:transform .15s,color .15s}.toolbox-credits:hover svg.toolbox-credits-go{color:var(--green-500);transform:translateX(2px)}.toolbox-chip-cost{font-feature-settings:"tnum";align-items:center;color:var(--text-muted);display:inline-flex;font-size:12px;font-variant-numeric:tabular-nums;font-weight:500;gap:3px;margin-left:auto;white-space:nowrap}.toolbox-chip-cost svg{opacity:.8}.toolbox-chip-cost--short{color:var(--color-danger)!important}.mobile-sheet-body .toolbox-chip-cost{margin-left:0}.select-box{background:color-mix(in srgb,var(--accent) 12%,#0000);border:1px solid var(--accent);border-radius:4px;pointer-events:none;position:fixed;z-index:9998}.prec-align-btn--on{background:color-mix(in srgb,var(--accent) 18%,#0000);border-color:color-mix(in srgb,var(--accent) 40%,#0000);color:var(--accent)}.prec-align-btn--danger:hover{background:var(--color-danger-dim);border-color:#0000;color:var(--color-danger)}.prec-count{color:var(--text-secondary);font-size:12px;font-weight:600;white-space:nowrap}.toolbox-chip--locked{cursor:not-allowed;opacity:.5}.shs-plan-note{color:#8a8f98;color:var(--text-muted,#8a8f98);display:block;margin-bottom:8px}.dash-device-caret{display:none}@media (max-width:480px){.dash-toolbar .dash-device-picker:has(.dash-link-btn[aria-label="Switch device"]){display:none}.dash-toolbar .dash-device-chip-trigger{align-items:center;flex-direction:row;gap:5px;max-width:100%}.dash-device-caret{color:var(--text-muted);display:inline-block;flex-shrink:0;font-size:10px}.dash-toolbar .dash-device-chip{flex:1 1 auto;min-width:0}.dash-toolbar .dash-device-name{flex:1 1 auto;max-width:none;min-width:0}}.ap{--ap-bg:var(--bg0);--ap-card:var(--bg1);--ap-card2:var(--bg2);--ap-bar:color-mix(in srgb,var(--bg1) 80%,#0000);--ap-text:var(--text-primary);--ap-text2:var(--text-secondary);--ap-text3:var(--text-muted);--ap-sep:var(--border);--ap-fill:#7878803d;--ap-fill2:#7878801f;--ap-accent:var(--green-500);--ap-blue:#0a84ff;--ap-green:#30d158;--ap-orange:#ff9f0a;--ap-red:#ff453a;--ap-purple:#bf5af2;--ap-teal:#40c8e0;--ap-indigo:#5e5ce6;--ap-gray:#8e8e93;--ap-shadow:0 0 0 1px var(--border);--ap-seg-on:var(--bg4);--ap-radius:16px;-webkit-font-smoothing:antialiased;background:var(--ap-bg);color:var(--ap-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Inter,system-ui,sans-serif;font-size:14px;letter-spacing:-.01em;min-height:100%}body.light-mode .ap{--ap-sep:var(--border);--ap-fill:#7878801f;--ap-fill2:#78788012;--ap-blue:#007aff;--ap-green:#34c759;--ap-orange:#ff9500;--ap-red:#ff3b30;--ap-purple:#af52de;--ap-teal:#30b0c7;--ap-indigo:#5856d6;--ap-shadow:0 1px 2px #0000000a,0 4px 18px #0000000d;--ap-seg-on:var(--bg1)}.ap-bar{align-items:center;backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);background:var(--ap-bar);border-bottom:1px solid var(--ap-sep);display:flex;flex-wrap:wrap;gap:16px;padding:12px 28px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.ap-bar h1{font-size:17px;font-weight:600;letter-spacing:-.02em;margin:0}.ap-seg{background:var(--ap-fill);border-radius:9px;display:inline-flex;gap:2px;max-width:100%;overflow-x:auto;padding:2px;scrollbar-width:none}.ap-seg::-webkit-scrollbar{display:none}.ap-seg button{background:none;border:0;border-radius:7px;color:var(--ap-text);cursor:pointer;font:inherit;font-size:13px;font-weight:500;padding:5px 14px;transition:background .2s,box-shadow .2s;white-space:nowrap}.ap-seg button.on{background:var(--ap-seg-on);box-shadow:0 1px 3px #0000001f,0 0 0 .5px #0000000a}.ap-bar-right{align-items:center;color:var(--ap-text2);display:flex;font-size:12.5px;gap:10px;margin-left:auto}.ap-content{margin:0 auto;max-width:1280px;padding:26px 28px 70px}.ap-content,.ap-view{display:flex;flex-direction:column;gap:16px}.ap-view{animation:ap-fade .4s cubic-bezier(.2,.8,.2,1)}@keyframes ap-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ap-pulse{0%,to{opacity:1}50%{opacity:.35}}.ap-hero{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.ap-hero h2{font-size:32px;font-weight:700;letter-spacing:-.03em;margin:0}.ap-hero p{color:var(--ap-text2);font-size:15px;margin:4px 0 0}.ap-h3{font-size:20px;font-weight:700;letter-spacing:-.02em;margin:14px 0 -4px}.ap-h4{color:var(--ap-text2);font-size:12px;font-weight:600;letter-spacing:.04em;margin:8px 0 0;text-transform:uppercase}.ap-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}.ap-grid>*{min-width:0}.ap-kpis{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.ap-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ap-split{align-items:start;grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr)}@media (max-width:960px){.ap-split,.ap-two{grid-template-columns:minmax(0,1fr)}}.ap-kpi .label{align-items:center;color:var(--ap-text2);display:flex;font-size:13px;font-weight:500;gap:7px}.ap-kpi .value{font-feature-settings:"tnum";font-size:32px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.03em;margin-top:8px}.ap-kpi .value small{color:var(--ap-text3);font-size:17px;font-weight:600;margin-left:3px}.ap-kpi .sub{color:var(--ap-text2);font-size:12.5px;margin-top:2px}.ap-up{color:var(--ap-green);font-weight:600}.ap-ico{background:var(--green-dim);border-radius:8px;color:var(--green-500);display:inline-grid;flex:none;height:28px;place-items:center;width:28px}.ap-chart-head{align-items:flex-start;display:flex;gap:8px;justify-content:space-between;margin-bottom:10px}.ap-chart-head .n{font-size:14px;font-weight:600}.ap-chart-head .c{color:var(--ap-text2);font-size:12px;margin-top:1px}.ap-chart-head .v{font-feature-settings:"tnum";font-size:24px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.03em;text-align:right}.ap-chart-head .v small{color:var(--ap-text2);font-size:13px;font-weight:500}.ap-bars{display:block;height:150px;width:100%}.ap-legend{color:var(--ap-text2);display:flex;flex-wrap:wrap;font-size:11.5px;gap:14px;margin-top:8px}.ap-legend span{align-items:center;display:flex;gap:5px}.ap-legend i{border-radius:3px;display:block;height:10px;width:10px}.ap-meter{background:var(--ap-fill);border-radius:3px;height:6px;margin-top:8px;overflow:hidden}.ap-meter i{border-radius:3px;display:block;height:100%;transition:width .6s cubic-bezier(.2,.8,.2,1)}.ap-stat-row{border-bottom:1px solid var(--ap-sep);display:flex;font-size:13.5px;gap:12px;justify-content:space-between;padding:9px 0}.ap-stat-row:last-child{border-bottom:0}.ap-stat-row b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.ap-stat-row span:first-child{color:var(--ap-text2)}.ap-pill{align-items:center;border-radius:20px;display:inline-flex;font-size:11.5px;font-weight:600;gap:5px;padding:3px 9px;white-space:nowrap}.ap-pill:before{background:currentColor;border-radius:50%;content:"";height:6px;width:6px}.ap-pill.ok{background:color-mix(in srgb,var(--ap-green) 14%,#0000);color:var(--ap-green)}.ap-pill.ok:before{animation:ap-pulse 2s infinite}.ap-pill.warn{background:color-mix(in srgb,var(--ap-orange) 15%,#0000);color:var(--ap-orange)}.ap-pill.bad{background:color-mix(in srgb,var(--ap-red) 13%,#0000);color:var(--ap-red)}.ap-pill.info{background:color-mix(in srgb,var(--ap-blue) 13%,#0000);color:var(--ap-blue)}.ap-banner{align-items:flex-start;background:color-mix(in srgb,var(--ap-blue) 9%,#0000);border-radius:12px;display:flex;font-size:13px;gap:10px;line-height:1.5;padding:12px 14px}.ap-banner.warn{background:color-mix(in srgb,var(--ap-orange) 11%,#0000)}.ap-mono{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:12.5px}.ap-kv{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.ap-kv>div{background:var(--ap-fill2);border-radius:12px;padding:10px 12px}.ap-kv small{color:var(--ap-text2);display:block;font-size:11.5px;font-weight:500}.ap-kv b{font-feature-settings:"tnum";font-size:15px;font-variant-numeric:tabular-nums;font-weight:600}.ap .admin-section,.ap .card{background:var(--ap-card);border:0;border-radius:var(--ap-radius);box-shadow:var(--ap-shadow);color:var(--ap-text);padding:18px}.admin-section{display:flex;flex-direction:column;gap:10px}.admin-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.admin-section-title{align-items:center;display:flex;flex:1 1;font-size:17px;font-weight:600;gap:6px;letter-spacing:-.02em}.admin-subtitle{color:var(--ap-text2);font-size:12px;font-weight:600;letter-spacing:.04em;margin-top:10px;text-transform:uppercase}.admin-muted{color:var(--ap-text2);font-size:12.5px;line-height:1.45}.admin-warn{color:var(--ap-orange);font-size:12.5px;margin-top:4px}.admin-empty{padding:28px 16px!important;text-align:center}.ap .btn-danger,.ap .btn-ghost,.ap .btn-primary{align-items:center;background:var(--ap-fill);border:0;border-radius:980px;box-shadow:none;color:var(--ap-text);cursor:pointer;display:inline-flex;font:inherit;font-size:13.5px;font-weight:500;gap:6px;justify-content:center;min-height:0;padding:7px 16px;transition:transform .12s,filter .2s,opacity .2s;white-space:nowrap}.ap .btn-primary{background:var(--ap-accent);color:#fff}.ap .btn-danger{background:color-mix(in srgb,var(--ap-red) 12%,#0000);color:var(--ap-red)}.ap .btn-danger:hover,.ap .btn-ghost:hover,.ap .btn-primary:hover{filter:brightness(1.08)}.ap .btn-danger:active,.ap .btn-ghost:active,.ap .btn-primary:active{transform:scale(.96)}.ap button:disabled{cursor:default;opacity:.4;transform:none}.admin-small-btn{font-size:12.5px!important;padding:4px 12px!important}.ap .field{background:var(--ap-fill);border:1px solid #0000;border-radius:9px;color:var(--ap-text);font:inherit;font-size:13.5px;min-height:0;outline:none;padding:7px 11px;transition:border-color .15s,box-shadow .15s}.ap .field:focus{border-color:var(--ap-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ap-accent) 25%,#0000)}.ap select.field{padding-right:28px}.admin-link{background:none;border:none;color:var(--ap-accent);cursor:pointer;font-size:12.5px;margin-left:8px;padding:0}.admin-table-wrap{margin:0 -18px;max-width:calc(100% + 36px);min-width:0;overflow-x:auto}.admin-table{border-collapse:collapse;font-size:13.5px;width:100%}.admin-table th{color:var(--ap-text2);font-size:12px;font-weight:600;padding:10px 18px;text-align:left}.admin-table td,.admin-table th{border-bottom:1px solid var(--ap-sep);white-space:nowrap}.admin-table td{color:var(--ap-text);padding:11px 18px;vertical-align:middle}.admin-table tr:last-child td{border-bottom:0}.admin-table tbody tr{cursor:pointer;transition:background .15s}.admin-table tbody tr:hover{background:var(--ap-fill2)}.admin-table tbody tr.is-selected{background:color-mix(in srgb,var(--ap-accent) 11%,#0000)}.admin-table--static tbody tr{cursor:default}.admin-table--static tbody tr:hover{background:none}.admin-badge{background:color-mix(in srgb,var(--ap-accent) 13%,#0000);border-radius:20px;color:var(--ap-accent);display:inline-flex;font-size:11px;font-weight:600;margin-left:6px;padding:2px 8px}.admin-badge--off{background:color-mix(in srgb,var(--ap-red) 13%,#0000);color:var(--ap-red)}.admin-pos{color:var(--ap-green);font-weight:600}.admin-neg{color:var(--ap-red);font-weight:600}.admin-search{flex:1 1 180px;max-width:280px}.admin-create,.admin-credits,.admin-reset{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.admin-create .field,.admin-credits .field,.admin-reset .field{flex:1 1 160px}.admin-credits input[type=number]{flex:0 1 110px}.admin-check{color:var(--ap-text2);font-size:13px;gap:6px}.admin-check,.admin-pager{align-items:center;display:flex}.admin-pager{gap:12px;justify-content:center}.admin-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-row-actions{display:flex;gap:6px;justify-content:flex-end}.admin-devices{background:var(--ap-fill2);border-radius:12px;list-style:none;margin:0;overflow:hidden;padding:0}.admin-devices li{align-items:center;border-bottom:1px solid var(--ap-sep);display:flex;font-size:13.5px;gap:8px;justify-content:space-between;padding:9px 12px}.admin-devices li:last-child{border-bottom:0}.admin-device-meta{align-items:center;display:inline-flex;gap:8px}.admin-plan-form{border-top:1px solid var(--ap-sep);display:flex;flex-direction:column;gap:10px;padding-top:12px}.admin-plan-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.admin-plan-grid label{display:flex;flex-direction:column;gap:4px}.admin-plan-select{max-width:280px}.admin-credit-log{margin-top:4px}.admin-costs{grid-gap:0 20px;display:grid;gap:0 20px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.admin-cost{align-items:center;border-bottom:1px solid var(--ap-sep);display:flex;font-size:13.5px;gap:8px;justify-content:space-between;min-height:40px}.admin-cost .field{width:80px}.admin-cost b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.admin-settings{display:flex;flex-direction:column}.admin-setting{border-bottom:1px solid var(--ap-sep);padding:12px 0}.admin-setting:last-child{border-bottom:0}.admin-setting-head{align-items:center;display:flex;flex-wrap:wrap;font-size:14px;gap:12px;justify-content:space-between;margin-bottom:2px}.admin-setting-label{font-weight:600}.admin-setting-input{align-items:center;color:var(--ap-text2);display:inline-flex;font-size:13px;gap:6px}.admin-setting-input .field{width:100px}.admin-setting b{font-weight:600}.admin-ban-duration{flex:0 1 140px!important}.admin-audit-row{cursor:pointer}.admin-audit-fail{color:var(--ap-red)}.admin-audit-body{background:var(--ap-fill2);border-radius:10px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:12px;margin:6px 0 0;padding:10px 12px;white-space:pre-wrap;word-break:break-word}.traffic-live{align-items:center;background:color-mix(in srgb,var(--ap-green) 14%,#0000);border-radius:20px;color:var(--ap-green);display:inline-flex;font-size:11.5px;font-weight:600;gap:5px;letter-spacing:0;margin-left:6px;padding:3px 9px}.traffic-live:before{animation:ap-pulse 2s infinite;background:currentColor;border-radius:50%;content:"";height:6px;width:6px}.traffic-tiles{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.traffic-tile{background:var(--ap-fill2);border-radius:12px;min-width:0;padding:12px 14px}.traffic-tile-label{color:var(--ap-text2);font-size:12px;font-weight:500}.traffic-tile-value{font-feature-settings:"tnum";font-size:22px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em;margin:4px 0 2px}.traffic-tile .admin-muted{font-size:11.5px;overflow-wrap:anywhere}.traffic-chart{background:var(--ap-fill2);border-radius:12px;padding:12px 14px}.traffic-chart-head{color:var(--ap-text2);display:flex;flex-wrap:wrap;font-size:12px;gap:8px;justify-content:space-between}.traffic-chart-body{height:90px;margin-top:8px;position:relative}.traffic-chart-body>div{inset:0;position:absolute}.traffic-spark{display:block;height:100%;width:100%}.traffic-spark--rx{color:var(--ap-blue)}.traffic-spark--tx{color:var(--ap-purple)}.traffic-key{border-radius:2px;display:inline-block;height:3px;margin:0 4px 0 10px;vertical-align:middle;width:10px}.traffic-key--rx{background:var(--ap-blue)}.traffic-key--tx{background:var(--ap-purple)}@media (max-width:640px){.ap-bar{padding:10px 16px}.ap-content{padding:18px 16px 60px}.ap-hero h2{font-size:26px}.ap .admin-section,.ap .card{padding:16px}.admin-table-wrap{margin:0 -16px;max-width:calc(100% + 32px)}.admin-table td,.admin-table th{padding-left:16px;padding-right:16px}}.admin-plan-copy{display:flex;flex-direction:column;gap:10px}.admin-plan-copy label:not(.admin-check){display:flex;flex-direction:column;gap:4px}.ap textarea.field{line-height:1.45;resize:vertical}.admin-plan-access{grid-gap:6px 16px;display:grid;gap:6px 16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));margin:6px 0 12px}.ap-switch{background:var(--ap-fill);border:0;border-radius:13px;cursor:pointer;flex:none;height:26px;padding:0;position:relative;transition:background .25s;width:42px}.ap-switch:after{background:#fff;border-radius:50%;box-shadow:0 2px 5px #00000038;content:"";height:22px;left:2px;position:absolute;top:2px;transition:transform .3s cubic-bezier(.3,1.5,.6,1);width:22px}.ap-switch.on{background:var(--green-500)}.ap-switch.on:after{transform:translateX(16px)}.ap-modal-back{align-items:center;animation:ap-fade .2s;background:#00000073;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.ap-modal{background:var(--bg1);border:1px solid var(--border);border-radius:16px;border-radius:var(--ap-radius,16px);box-shadow:0 20px 60px #00000059;color:var(--text-primary);gap:14px;max-height:calc(100vh - 32px);overflow-y:auto;padding:20px;width:min(520px,100%)}.ap-modal,.ap-modes{display:flex;flex-direction:column}.ap-modes{gap:8px}.ap-mode{background:var(--bg2);border:1px solid var(--border);border-radius:12px;color:var(--text-primary);cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:3px;padding:10px 12px;text-align:left;transition:border-color .15s,background .15s}.ap-mode b{font-size:14px;font-weight:600}.ap-mode span{color:var(--text-muted);font-size:12.5px;line-height:1.4}.ap-mode:hover{border-color:var(--border-light)}.ap-mode.on{background:var(--green-dim);border-color:var(--green-500)}.ap-mode--danger.on{background:color-mix(in srgb,var(--color-danger) 10%,#0000);border-color:var(--color-danger)}.ap-modal-snap{align-items:center;background:var(--bg2);border-radius:12px;display:flex;font-size:12.5px;gap:10px;padding:10px 12px}.ap-modal-snap .btn-ghost{flex:none;margin-left:auto;white-space:nowrap}.ap-modal-type{display:flex;flex-direction:column;font-size:12.5px;gap:6px}.ap-modal-actions{display:flex;gap:8px;justify-content:flex-end}.admin-account-tools{padding-top:2px}.admin-account-tools>.admin-muted{flex:1 1;font-size:12.5px}.ap .fw-section-title,.ap .profile-section-title{color:var(--ap-text);font-size:17px;font-weight:600;letter-spacing:-.02em;margin-bottom:4px;text-transform:none}.lb-share{background:color-mix(in srgb,var(--ap-accent) 13%,#0000);border-radius:3px;display:inline-block;height:6px;margin-right:8px;overflow:hidden;vertical-align:middle;width:90px}.lb-share-fill{background:var(--ap-accent);border-radius:3px;height:100%}.device-page{gap:20px}.device-page,.page-header{display:flex;flex-direction:column}.page-header{align-items:stretch;border-bottom:1px solid var(--border);gap:10px;padding-bottom:16px}.page-header-row{gap:12px}.device-usage,.page-header-row{align-items:center;display:flex}.device-usage{color:var(--text-muted);font-size:11px;font-weight:500;gap:8px}.device-usage-bar{background:var(--bg3);border-radius:2px;height:4px;overflow:hidden;width:120px}.device-usage-fill{background:var(--color-success);height:100%;transition:width .2s ease;transition:width var(--transition-md,.2s ease)}.page-header-spacer{flex:1 1}.page-header-actions{align-items:center;display:flex;gap:10px}.page-title{color:var(--text-primary);font-family:var(--font-brand);font-size:22px;font-weight:700;letter-spacing:-.3px}.device-empty,.device-loading{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;gap:8px;padding:48px 0;text-align:center}.device-empty-icon{font-size:36px;margin-bottom:8px}.device-table-wrap{background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.device-table{border-collapse:collapse;font-size:13px;width:100%}.device-table thead tr{background:var(--bg2);border-bottom:1px solid var(--border-light)}.device-table th{color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.6px;padding:12px 16px;text-align:left;text-transform:uppercase}.device-table th.device-col-actions{text-align:right}.device-row{border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--transition)}.device-row:last-child{border-bottom:none}.device-row:hover{background:var(--bg2)}.device-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.device-table td{color:var(--text-primary);padding:12px 16px;vertical-align:middle}.device-col-name{align-items:center;display:flex;gap:12px;min-width:0}.device-row-icon{align-items:center;background:var(--green-dim);border:1px solid var(--green-glow);border-radius:var(--radius);color:var(--accent);display:flex;flex-shrink:0;font-size:14px;height:34px;justify-content:center;position:relative;width:34px}.device-row-icon:after{background:var(--text-disabled);border:2px solid var(--bg1);border-radius:50%;bottom:-2px;content:"";height:9px;position:absolute;right:-2px;width:9px}.device-row--online .device-row-icon:after{background:var(--color-success)}.device-row-identity{display:flex;flex-direction:column;gap:3px;min-width:0}.device-row-name{color:var(--text-primary);font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-table .status-badge{align-self:flex-start;border:1px solid color-mix(in srgb,currentcolor 28%,#0000);font-size:10.5px;gap:5px;letter-spacing:.2px;line-height:16px;padding:1px 8px 1px 6px;text-transform:capitalize}.status-badge-dot{background:currentColor;border-radius:50%;flex-shrink:0;height:6px;width:6px}.device-table .badge-green .status-badge-dot{box-shadow:0 0 0 2px color-mix(in srgb,currentColor 22%,#0000)}.device-cred-cell{align-items:center;display:flex;gap:6px;max-width:220px}.device-cred-cell code{color:var(--text-secondary);flex:1 1;font-family:var(--font-mono);font-size:11.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-meta-copy{align-items:center;display:inline-flex;flex-shrink:0;font-size:11px;min-height:24px;padding:3px 9px}.device-col-added{color:var(--text-muted);font-size:12px;white-space:nowrap}.device-row-actions{display:flex;gap:8px;justify-content:flex-end}.device-remove-btn.rl-button{color:var(--text-muted);flex-shrink:0}.device-remove-btn.rl-button:hover:not(.rl-button--disabled){background:color-mix(in srgb,var(--color-danger) 10%,#0000);box-shadow:none;color:var(--color-danger);transform:none}.device-edit-body{display:flex;flex-direction:column;gap:18px;padding:24px 28px}.device-edit-danger{align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;gap:16px;justify-content:space-between;padding:14px 16px}.device-edit-danger-title{color:var(--text-primary);font-size:13px;font-weight:600}.device-edit-danger-sub{color:var(--text-muted);font-size:12px;margin-top:2px;max-width:320px}.device-danger-btn{color:var(--text-muted);flex-shrink:0;white-space:nowrap}.device-danger-btn:hover{background:color-mix(in srgb,var(--color-danger) 10%,#0000);border-color:color-mix(in srgb,var(--color-danger) 30%,#0000);color:var(--color-danger)}@media (max-width:860px) and (min-width:641px){.device-table-wrap{overflow-x:auto}.device-table{min-width:720px}}@media (max-width:640px){.device-table-wrap{overflow-x:hidden}.device-table{min-width:0;table-layout:fixed;width:100%}.device-col-added,.device-col-checksum,.device-col-enckey,.device-col-token,.device-table td.device-col-added,.device-table td.device-col-checksum,.device-table td.device-col-enckey,.device-table td.device-col-token{display:none}.device-col-name{max-width:none}}.token-reveal{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:10px;padding:18px 20px}.token-reveal-label{color:var(--text-primary);font-size:13px;font-weight:600}.token-reveal-row{align-items:center;display:flex;gap:10px}.token-reveal-code{background:var(--bg0);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);flex:1 1;font-family:var(--font-mono);font-size:13.5px;min-width:0;overflow-x:auto;padding:9px 12px;white-space:nowrap}.token-copy-btn{border-radius:var(--radius-pill);flex-shrink:0;font-weight:600;padding:8px 16px;white-space:nowrap}.token-reveal-hint{color:var(--text-muted);font-size:12px;line-height:1.5}.token-reveal-hint code{color:var(--text-secondary);font-family:var(--font-mono);font-size:11.5px;word-break:break-all}.device-modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.device-modal{animation:deviceModalIn .25s cubic-bezier(.34,1.56,.64,1);background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:calc(100vh - 32px);max-width:420px;overflow-y:auto;width:100%}@keyframes deviceModalIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.device-modal--wizard{max-width:760px}.wizard-steps{border-bottom:1px solid var(--border);padding:22px 32px}.wizard-step,.wizard-steps{align-items:center;display:flex}.wizard-step{background:none;border:none;border-radius:var(--radius);cursor:default;flex-direction:row;flex-shrink:0;gap:9px;padding:2px}.wizard-step--clickable{cursor:pointer}.wizard-step--clickable:hover .wizard-step-num{box-shadow:0 0 0 3px var(--bg3)}.wizard-step--clickable:hover .wizard-step-label{color:var(--text-primary)}.wizard-step:disabled{cursor:default}.wizard-step-num{font-feature-settings:"tnum";align-items:center;background:var(--bg3);border:1.5px solid var(--border);border-radius:50%;color:var(--text-muted);display:flex;flex-shrink:0;font-size:12px;font-variant-numeric:tabular-nums;font-weight:700;height:28px;justify-content:center;transition:all var(--transition);width:28px}.wizard-step-label{color:var(--text-muted);font-size:13px;font-weight:600;white-space:nowrap}.wizard-step--active .wizard-step-num{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-dim);color:#fff}.wizard-step--active .wizard-step-label{color:var(--text-primary);font-weight:700}.wizard-step--done .wizard-step-num{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.wizard-step--done .wizard-step-label{color:var(--text-secondary)}.wizard-step-line{background:var(--border);flex:1 1;height:1.5px;margin:0 14px;min-width:16px;transition:background var(--transition)}.wizard-step-line.done{background:var(--accent)}.wizard-split{align-items:stretch;display:flex;min-height:280px}.wizard-split-main{display:flex;flex:1 1 56%;flex-direction:column;gap:18px;min-width:0;padding:24px 28px}.wizard-split-main .field{border-radius:var(--radius-lg);font-size:14px;padding:11px 14px;width:100%}.wizard-field-label{color:var(--text-secondary);display:flex;flex-direction:column;font-size:13px;font-weight:600;gap:7px}.wizard-split-side{background:var(--bg0);border-left:1px solid var(--border);display:flex;flex:1 1 44%;flex-direction:column;gap:8px;min-width:0;padding:24px 28px}.wizard-side-title{color:var(--text-primary);font-size:20px;font-weight:700;letter-spacing:-.4px;line-height:1.25}.wizard-side-sub{color:var(--text-secondary);font-size:13px;line-height:1.6}.wizard-warn-word{color:var(--color-warn);font-weight:600}@media (max-width:640px){.device-modal-backdrop{padding:10px}.device-modal--wizard{max-width:100%}.wizard-split{flex-direction:column;min-height:0}.wizard-split-side{border-left:none;border-top:1px solid var(--border)}.wizard-split-main,.wizard-split-side{padding:16px 18px}.wizard-steps{padding:14px 16px}.wizard-step-label{display:none}.wizard-step-line{margin:0 8px}}.wizard-done{align-items:flex-start;display:flex;flex-direction:column;gap:6px;padding:0 0 4px;text-align:left}.wizard-done-icon{align-items:center;background:var(--accent-dim);border-radius:50%;color:var(--accent);display:flex;font-size:22px;height:56px;justify-content:center;margin-bottom:8px;width:56px}.wizard-done-title{color:var(--text-primary);font-size:19px;font-weight:700;letter-spacing:-.3px}.wizard-done-sub{color:var(--text-muted);font-size:13px}.wizard-code{background:var(--bg0);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-secondary);font-family:var(--font-mono);font-size:12.5px;line-height:1.7;overflow-x:auto;padding:14px 16px;white-space:pre-wrap;word-break:break-all}.device-modal-header{align-items:center;display:flex;justify-content:space-between;padding:24px 28px 0}.device-modal-title{color:var(--text-primary);font-size:19px;font-weight:700;letter-spacing:-.3px}.device-modal-close{align-items:center;background:none;border:none;border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer;display:flex;height:30px;justify-content:center;transition:background var(--transition),color var(--transition);width:30px}.device-modal-close:hover{background:var(--bg3);color:var(--text-primary)}.device-modal-actions{border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;margin-top:4px;padding:16px 28px}.device-modal-actions .btn-ghost,.device-modal-actions .btn-primary{border-radius:var(--radius-pill);font-size:13.5px;font-weight:600;padding:9px 22px}.device-hero-sub:empty{display:none}.token-reveal--stacked{margin-top:14px}.sketch{background:#1e1e1e;border:1px solid var(--border);border-radius:var(--radius-lg);margin-top:12px;overflow:hidden}.sketch-tabs{background:#181818;border-bottom:1px solid #2b2b2b;display:flex}.sketch-tab{background:none;border:0;border-bottom:2px solid #0000;color:#9d9d9d;cursor:pointer;font-size:12.5px;padding:8px 14px}.sketch-tab:hover{color:#d4d4d4}.sketch-tab--active{background:#1e1e1e;border-bottom-color:#0078d4;color:#fff}.sketch-bar{align-items:center;background:#252526;border-bottom:1px solid #2b2b2b;display:flex;gap:10px;padding:6px 10px}.sketch-dots{display:flex;gap:5px}.sketch-dots i{background:#ff5f57;border-radius:50%;height:9px;width:9px}.sketch-dots i:nth-child(2){background:#febc2e}.sketch-dots i:nth-child(3){background:#28c840}.sketch-name{color:#ccc;flex:1 1;font-family:var(--font-mono);font-size:12px}.sketch-copy{background:#0078d4;border:0;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:4px 10px}.sketch-copy:hover{background:#1a8ae6}.sketch-body{align-items:flex-start;display:flex;max-height:340px;overflow-x:hidden;overflow-y:auto}.sketch-gutter{border-right:1px solid #2b2b2b;color:#6e7681;flex:none;padding:12px 10px 12px 12px;text-align:right;-webkit-user-select:none;user-select:none}.sketch-code,.sketch-gutter{font:12px/1.6 var(--font-mono)}.sketch-code{color:#d4d4d4;flex:1 1;margin:0;min-width:0;overflow-x:auto;padding:12px 14px 12px 10px;tab-size:4;white-space:pre}.sk-comment{color:#6a9955}.sk-pre{color:#c586c0}.sk-string{color:#ce9178}.sk-number{color:#b5cea8}.sk-keyword{color:#569cd6}.sk-func{color:#dcdcaa}.sk-macro{color:#4fc1ff}.st-page{display:flex;flex-direction:column;gap:16px}.st-summary{align-items:center;display:flex;gap:20px}.st-usage{display:flex;flex:1 1;flex-direction:column;gap:8px;min-width:0}.st-usage-top{align-items:baseline;display:flex;gap:8px}.st-usage-num{font-feature-settings:"tnum";font-size:22px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em}.st-usage-of{color:var(--text-muted);font-size:13px}.st-meter{background:var(--bg3);border-radius:4px;height:8px;overflow:hidden}.st-meter-fill{background:linear-gradient(90deg,var(--accent),#64d2ff);border-radius:4px;height:100%;transition:width .4s ease}.st-meter-fill.is-hot{background:linear-gradient(90deg,#ff9f0a,#ff453a)}.st-usage-drive{align-self:center;color:#1fa463;font-size:16px}.st-usage-sub{color:var(--text-muted);font-size:12px}.st-usage-sub b{color:var(--text-secondary);font-weight:600}.st-upload-btn{align-items:center;display:inline-flex;flex-shrink:0;gap:8px}.st-toolbar{display:flex;flex-wrap:wrap;gap:10px}.st-search{align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:10px;color:var(--text-muted);display:flex;gap:8px;max-width:100%;padding:7px 12px;width:280px}.st-search input{background:none;border:0;color:var(--text-primary);font:inherit;font-size:13px;outline:none;width:100%}.st-grid{grid-gap:14px;border-radius:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));min-height:160px;outline:2px dashed #0000;outline-offset:6px;transition:outline-color .15s}.st-grid.is-over{outline-color:var(--accent)}.st-empty{align-items:center;background:none;border:1.5px dashed var(--border);border-radius:14px;color:var(--text-muted);cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:6px;grid-column:1/-1;justify-content:center;padding:48px 16px}.st-empty i{font-size:28px;margin-bottom:4px}.st-empty b{color:var(--text-primary);font-size:14px}.st-empty span{font-size:12px}.st-empty:hover{border-color:var(--accent)}.st-card{background:var(--bg2);border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.st-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.st-thumb{aspect-ratio:4/3;background:repeating-conic-gradient(var(--bg3) 0 25%,#0000 0 50%) 50% /16px 16px;border:0;cursor:zoom-in;padding:0;position:relative}.st-thumb img{display:block;height:100%;object-fit:contain;width:100%}.st-tag{background:#0009;border-radius:6px;color:#fff;font-size:10px;font-weight:700;left:8px;letter-spacing:.04em;padding:2px 7px;position:absolute;top:8px}.st-tag--drive{left:auto;right:8px}.st-folder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-folder i{font-size:10px;margin-right:3px}.st-locked{align-self:center;color:var(--text-muted);font-size:11px;padding:0 6px}.st-meta{min-width:0;padding:10px 12px 4px}.st-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-rename{background:var(--bg1);border:1px solid var(--accent);border-radius:6px;color:var(--text-primary);font:inherit;font-size:13px;outline:none;padding:2px 6px;width:100%}.st-sub{font-feature-settings:"tnum";color:var(--text-muted);font-size:11.5px;font-variant-numeric:tabular-nums;margin-top:2px}.st-actions{display:flex;gap:4px;padding:6px 8px 10px}.st-actions button{background:var(--bg3);border:0;border-radius:8px;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:12px;height:28px;transition:background .15s,color .15s}.st-actions button:hover{background:var(--bg4);color:var(--text-primary)}.st-actions button.is-danger:hover{color:#ff453a}.st-lightbox{animation:stFade .18s ease;background:#0000008c;display:grid;inset:0;padding:24px;place-items:center;position:fixed;z-index:10000}.st-lightbox-card{animation:stPop .22s cubic-bezier(.2,.9,.3,1.1);background:var(--bg2);border-radius:16px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:100%;max-width:min(900px,100%);overflow:hidden}.st-lightbox-card img{background:var(--bg3);max-height:70vh;max-width:100%;object-fit:contain}.st-lightbox-bar{align-items:center;display:flex;gap:8px;padding:12px 16px}.st-lightbox-bar>div{display:flex;flex:1 1;flex-direction:column;min-width:0}.st-lightbox-bar b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-lightbox-bar span{color:var(--text-muted);font-size:12px}.st-danger{color:#ff453a!important}@keyframes stFade{0%{opacity:0}}@keyframes stPop{0%{opacity:0;transform:scale(.96)}}@media (max-width:768px),(pointer:coarse) and (max-height:540px){.st-summary{align-items:stretch;flex-direction:column;gap:14px}.st-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.st-search{width:100%}}@media (prefers-reduced-motion:reduce){.st-card,.st-lightbox,.st-lightbox-card{animation:none;transition:none}}.st-kinds{background:#7f7f7f14;background:var(--bg-secondary,#7f7f7f14);border-radius:10px;display:flex;gap:4px;padding:3px}.st-kind{background:#0000;border:0;border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:12px;font-weight:600;min-height:32px;padding:6px 12px}.st-kind.is-on{background:var(--accent);color:#fff}.st-thumb--fw{align-items:center;background:var(--accent-dim);color:var(--accent);display:flex;font-size:34px;justify-content:center}.fw-page{display:flex;flex-direction:column;gap:20px}.fw-layout{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}@media (max-width:700px){.fw-layout{grid-template-columns:1fr}}.fw-section-title{color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.5px;margin-bottom:14px;text-transform:uppercase}.fw-dropzone{align-items:center;border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;display:flex;flex-direction:column;gap:6px;margin-bottom:16px;padding:28px 16px;text-align:center;transition:all var(--transition)}.fw-dropzone--has-file,.fw-dropzone--over,.fw-dropzone:hover{background:var(--accent-dim);border-color:var(--accent)}.fw-dropzone--has-file{border-style:solid}.fw-drop-icon{color:var(--accent);font-family:var(--font-mono);font-size:24px;font-weight:700}.fw-drop-hint{color:var(--text-muted);font-size:12px}.fw-drop-name{color:var(--text-primary);font-size:13px;font-weight:600}.fw-drop-size{color:var(--text-muted);font-size:11px}.fw-form{gap:12px}.fw-form,.fw-label{display:flex;flex-direction:column}.fw-label{color:var(--text-secondary);font-size:12px;font-weight:500;gap:5px}.fw-actions{display:flex;gap:10px}.fw-progress{display:flex;flex-direction:column;gap:5px}.fw-progress-track{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.fw-progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .15s ease-out}.fw-progress-label{color:var(--text-muted);display:flex;font-family:var(--font-mono);font-size:11px;justify-content:space-between}.fw-info-list{display:flex;flex-direction:column;gap:10px}.fw-info-row{align-items:center;border-bottom:1px solid var(--border);display:flex;font-size:12px;justify-content:space-between;padding:6px 0}.fw-info-row span{color:var(--text-muted);flex-shrink:0}.fw-info-row code{color:var(--text-secondary);font-family:var(--font-mono);font-size:12px}.fw-info-token{align-items:center;display:flex;flex:1 1;gap:6px;justify-content:flex-end;min-width:0}.fw-info-token code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fw-info-token-btn{align-items:center;display:inline-flex;flex-shrink:0;font-size:11px;min-height:24px;padding:3px 9px}.fw-info-sha{display:flex;flex-direction:column;font-size:12px;gap:4px}.fw-info-sha span{color:var(--text-muted)}.fw-info-sha code{color:var(--accent);font-family:var(--font-mono);font-size:11px;word-break:break-all}.fw-info-empty{color:var(--text-muted);font-size:13px;padding:32px 0;text-align:center}.fw-ota-note{background:#7f7f7f14;background:var(--bg-secondary,#7f7f7f14);border-radius:10px;color:inherit;color:var(--text-secondary,inherit);font-size:13px;line-height:1.5;padding:10px 12px}.fw-ota-note--off{background:#ff3b301a;color:#d92d20;color:var(--danger,#d92d20)}.fw-ota-note code{font-size:12px}.fw-ota-note--plan{align-items:center;background:var(--bg2);border:1px solid var(--border);color:var(--text-secondary);display:flex;gap:8px}.fw-ota-note--plan svg{color:var(--green-500);flex:none}.fw-ota-upgrade{color:var(--green-500);font-weight:600;margin-left:auto;text-decoration:none;white-space:nowrap}.fw-ota-upgrade:hover{text-decoration:underline}.fw-mode{grid-gap:4px;background:#7f7f7f14;background:var(--bg-secondary,#7f7f7f14);border-radius:var(--radius);display:grid;gap:4px;grid-template-columns:1fr 1fr;margin-bottom:12px;padding:4px}.fw-mode-btn{background:#0000;border:0;border-radius:calc(var(--radius) - 4px);color:var(--text-secondary);cursor:pointer;font-size:12px;font-weight:600;padding:8px 6px}.fw-mode-btn--on{background:var(--accent);color:#fff}.fw-slots{display:flex;flex-direction:column;gap:8px}.fw-slot{align-items:center;border:1.5px dashed var(--border);border-radius:var(--radius);cursor:pointer;display:flex;gap:10px;min-height:48px;padding:10px 12px;transition:all var(--transition)}.fw-slot--over,.fw-slot:hover{background:var(--accent-dim);border-color:var(--accent)}.fw-slot--has{border-color:var(--accent);border-style:solid}.fw-slot-icon{color:var(--accent);font-size:18px;text-align:center;width:20px}.fw-slot-text{flex:1 1;min-width:0}.fw-slot-name{color:var(--text-primary);font-family:var(--font-mono);font-size:13px;font-weight:600}.fw-slot-hint{color:var(--text-muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fw-slot-remove{padding:6px 10px}.fw-slot-foot{color:var(--text-muted);font-size:11px;line-height:1.5;margin:8px 0 16px}.fw-actions{flex-wrap:wrap}.fw-install{border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:10px;padding:12px}.fw-install-step,.fw-install-steps{display:flex;gap:6px}.fw-install-step{align-items:center;color:var(--text-muted);flex:1 1;font-size:11px;font-weight:600}.fw-install-dot{border:2px solid var(--border);border-radius:50%;flex:none;height:10px;width:10px}.fw-install-step.is-done{color:var(--text-primary)}.fw-install-step.is-done .fw-install-dot{background:var(--accent);border-color:var(--accent)}.fw-install-step.is-current .fw-install-dot{animation:fw-pulse 1.2s ease-in-out infinite;border-color:var(--accent)}.fw-install--installed .fw-install-step .fw-install-dot{background:#34c759;border-color:#34c759}.fw-install--failed .fw-install-step.is-current{color:#d92d20;color:var(--danger,#d92d20)}.fw-install--failed .fw-install-step.is-current .fw-install-dot{animation:none;background:#d92d20;background:var(--danger,#d92d20);border-color:#d92d20;border-color:var(--danger,#d92d20)}.fw-install-text{color:var(--text-secondary);font-size:12px;line-height:1.5}.fw-install--failed .fw-install-text{color:#d92d20;color:var(--danger,#d92d20)}@keyframes fw-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.fw-install-step.is-current .fw-install-dot{animation:none}}.fw-install-track{background:var(--border);border-radius:4px;height:8px;overflow:hidden}.fw-install-fill{background:var(--accent);border-radius:4px;height:100%;transition:width .4s ease}.fw-install-fill.is-busy{animation:fw-pulse 1.2s ease-in-out infinite;opacity:.45}.fw-install--installed .fw-install-fill{background:#34c759}.fw-install--failed .fw-install-fill{background:#d92d20;background:var(--danger,#d92d20);width:100%!important}@media (prefers-reduced-motion:reduce){.fw-install-fill.is-busy{animation:none}}.fw-info-sub{color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.4px;margin-top:6px;text-transform:uppercase}.fw-usage{background:var(--border);border-radius:3px;height:6px;margin-top:-4px;overflow:hidden}.fw-usage-fill{background:var(--accent);height:100%}.fw-usage-fill.is-high{background:#d92d20;background:var(--danger,#d92d20)}.fw-history-list{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.fw-history-row{align-items:center;border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:12px;padding:10px 12px}.fw-history-row.is-active{background:var(--accent-dim);border-color:var(--accent)}.fw-history-icon{color:var(--accent);font-size:16px;text-align:center;width:18px}.fw-history-text{flex:1 1;min-width:0}.fw-history-name{align-items:center;color:var(--text-primary);display:flex;font-size:13px;font-weight:600;gap:8px}.fw-history-badge{font-size:10px}.fw-history-sub{color:var(--text-muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fw-history-btn{flex:none;min-height:32px}.ds-page{display:flex;flex-direction:column;gap:16px}.ds-device-bar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px}.ds-device-pick{display:flex;flex:1 1;flex-direction:column;gap:6px;min-width:0}.ds-device-label{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.4px;padding-left:2px;text-transform:uppercase}.ds-device-tabs{align-self:flex-start;background:var(--bg3);border-radius:10px;display:inline-flex;gap:2px;max-width:100%;overflow-x:auto;padding:3px;scrollbar-width:none}.ds-device-tabs::-webkit-scrollbar{display:none}.ds-device-tab{align-items:center;background:#0000;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:13px;font-weight:500;gap:7px;padding:6px 14px;transition:background var(--transition),color var(--transition),box-shadow var(--transition);white-space:nowrap}.ds-device-tab.active,.ds-device-tab:hover{color:var(--text-primary)}.ds-device-tab.active{background:var(--bg1);box-shadow:0 1px 3px #0000001f,0 0 0 .5px #0000000f;font-weight:600}.ds-device-tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ds-device-name{max-width:180px;overflow:hidden;text-overflow:ellipsis}.ds-device-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;height:7px;opacity:.5;width:7px}.ds-device-dot.on{background:var(--color-success);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-success) 22%,#0000);opacity:1}@media (max-width:600px){.ds-device-tabs{align-self:stretch}.ds-add-btn{width:100%}}.ds-no-device{color:var(--text-muted);font-size:12px}.ds-add-btn{flex-shrink:0}.ds-table-wrap{background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius);flex:1 1;overflow:hidden}.ds-table{border-collapse:collapse;font-size:13px;width:100%}.ds-table thead tr{background:var(--bg2);border-bottom:1px solid var(--border)}.ds-table th{color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.5px;padding:10px 14px;text-align:left;text-transform:uppercase}.ds-row{border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--transition)}.ds-row:last-child{border-bottom:none}.ds-row:hover{background:var(--bg2)}.ds-table td{color:var(--text-primary);padding:10px 14px}.ds-pin-badge{background:var(--accent-dim);border-radius:4px;color:var(--accent);display:inline-block;font-family:var(--font-mono);font-size:12px;font-weight:700;padding:2px 8px}.ds-name{font-weight:500}.ds-auto-badge{border:1px solid var(--border);border-radius:3px;color:var(--text-muted);font-size:9px;font-weight:700;letter-spacing:.5px;margin-left:8px;padding:1px 6px;vertical-align:middle}.ds-auto-badge,.ds-dtype{background:var(--bg3);display:inline-block}.ds-dtype{border-radius:4px;color:var(--text-secondary);font-size:11px;padding:2px 8px}.ds-color-dot{border:2px solid var(--border);border-radius:50%;display:inline-block;height:14px;vertical-align:middle;width:14px}.ds-hz-live{align-items:center;color:var(--accent);display:inline-flex;font-family:var(--font-mono);font-size:12px;font-weight:600;gap:5px}.ds-hz-dot{animation:ds-hz-pulse 1s ease-out infinite;background:var(--accent);border-radius:50%;box-shadow:0 0 0 0 var(--accent);height:7px;width:7px}@keyframes ds-hz-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 60%,#0000)}70%{box-shadow:0 0 0 5px #0000}to{box-shadow:0 0 0 0 #0000}}.ds-hz-idle{color:var(--text-muted);font-family:var(--font-mono);font-size:12px}.ds-del-btn{border-color:#0000;color:var(--text-muted);font-size:11px;padding:3px 8px}.ds-del-btn:hover{background:color-mix(in srgb,var(--color-danger) 10%,#0000);border-color:color-mix(in srgb,var(--color-danger) 30%,#0000);color:var(--color-danger)}.ds-empty{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;font-size:14px;gap:8px;justify-content:center;padding:60px 20px;text-align:center}.ds-empty-icon{font-size:36px;margin-bottom:4px}.ds-modal-overlay{align-items:center;background:#0000008c;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.ds-modal{background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;max-width:95vw;overflow:hidden;padding:0;width:380px}.ds-modal-title{border-bottom:1px solid var(--border);color:var(--text-primary);font-size:14px;font-weight:700;padding:16px 20px}.ds-form{gap:12px;padding:16px 20px}.ds-form,.ds-form label{display:flex;flex-direction:column}.ds-form label{color:var(--text-muted);font-size:11px;font-weight:600;gap:5px;letter-spacing:.5px;text-transform:uppercase}.ds-form-row{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.ds-color-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.ds-color-pick{border:2px solid #0000;border-radius:50%;cursor:pointer;height:24px;padding:0;transition:transform var(--transition);width:24px}.ds-color-pick:hover{transform:scale(1.15)}.ds-color-pick.active{border-color:var(--text-primary);transform:scale(1.15)}.ds-color-input{background:#0000;border:1px solid var(--border);border-radius:4px;cursor:pointer;height:24px;padding:0;width:30px}.ds-modal-footer{border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;padding:12px 20px}.ds-meta{display:none}.ds-color-dot--sm{border-width:0;flex-shrink:0;height:8px;margin-right:6px;width:8px}@media (max-width:600px){.ds-col-wide,.ds-table thead{display:none}.ds-table td{padding:9px 10px;vertical-align:middle}.ds-table td:first-child{padding-left:12px;width:1%}.ds-table td:last-child{padding-right:6px;width:1%}.ds-pin-badge{font-size:11px;padding:2px 6px}.ds-name{font-size:14px;line-height:1.25}.ds-meta{align-items:center;color:var(--text-muted);display:flex;font-size:11.5px;font-weight:400;margin-top:2px}.ds-hz-idle,.ds-hz-live{font-size:11px;white-space:nowrap}.ds-del-btn{padding:6px 8px}.ds-device-tab{font-size:12.5px;gap:6px;padding:5px 11px}.ds-device-name{max-width:120px}.ds-device-pick{gap:4px}}.ds-hint{color:var(--text-muted);font-size:12px;line-height:1.45;margin:0}@media (max-width:600px){.ds-table{table-layout:fixed}.ds-table td:first-child{width:52px}.ds-table td:nth-last-child(2){text-align:right;width:64px}.ds-table td:last-child{width:40px}.ds-name{overflow:hidden}.ds-meta,.ds-name{min-width:0;text-overflow:ellipsis;white-space:nowrap}.ds-meta{display:block;overflow:hidden}.ds-meta .ds-color-dot--sm{display:inline-block;vertical-align:middle}.ds-table-wrap{border-radius:12px;border-radius:var(--radius-lg,12px)}}.profile-grid{column-gap:16px;columns:420px 2}.profile-grid>.card{box-sizing:border-box;break-inside:avoid;margin-bottom:16px;page-break-inside:avoid;width:100%}.profile-page{display:flex;flex-direction:column;gap:16px}.profile-card{gap:16px;padding:20px}.profile-avatar,.profile-card{align-items:center;display:flex}.profile-avatar{background:var(--accent);border-radius:50%;color:#fff;flex-shrink:0;font-size:24px;font-weight:700;height:56px;justify-content:center;width:56px}.profile-username{color:var(--text-primary);font-size:18px;font-weight:600}.profile-role{color:var(--text-muted);font-size:12px;margin-top:2px}.profile-section{padding:20px}.profile-section-title{color:var(--text-muted);font-size:13px;font-weight:600;letter-spacing:.06em;margin-bottom:16px;text-transform:uppercase}.profile-form{display:flex;flex-direction:column;gap:10px}.field-label{color:var(--text-muted);font-size:12px;margin-bottom:2px}.profile-form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.profile-email-row{align-items:center;display:flex;gap:12px;justify-content:space-between}.profile-email-value{color:var(--text-primary);font-size:14px;font-weight:600;word-break:break-all}.profile-usage-row{margin-bottom:16px}.profile-usage-label{color:var(--text-muted);display:flex;font-size:12px;justify-content:space-between;margin-bottom:6px}.profile-progress{background:var(--bg3);border-radius:4px;height:8px;overflow:hidden}.profile-progress-fill{background:var(--accent);border-radius:4px;height:100%;transition:width .3s ease}.profile-usage-stats{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.profile-usage-stat{background:var(--bg2);border-radius:var(--radius);padding:10px 6px;text-align:center}.profile-usage-stat-num{color:var(--text-primary);font-size:15px;font-weight:700}.profile-usage-stat-label{color:var(--text-muted);font-size:10.5px;margin-top:2px}@media (max-width:420px){.profile-usage-stats{gap:6px;grid-template-columns:repeat(3,1fr)}.profile-usage-stat{padding:8px 4px}}.profile-credit-balance{font-size:28px;font-weight:600;margin-bottom:8px}.profile-credit-log{font-size:13px;list-style:none;margin:0;padding:0}.profile-credit-log li{border-top:1px solid var(--border-faint);display:flex;gap:12px;padding:6px 0}.profile-credit-pos{color:#2e9d5b;color:var(--success,#2e9d5b);min-width:56px}.profile-credit-neg{color:#d64545;color:var(--danger,#d64545);min-width:56px}.profile-credit-reason{flex:1 1;min-width:0;overflow-wrap:anywhere}.profile-credit-date{color:var(--text-muted);white-space:nowrap}.profile-credit-split{color:var(--text-muted);font-size:12.5px;margin-top:2px}.profile-plan-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.profile-plan-name{color:var(--text-primary);font-size:22px;font-weight:600}.profile-plan-price{color:var(--text-secondary);font-size:13px;margin-top:2px}.profile-plan-note{color:var(--text-muted);font-size:13px;margin:10px 0 14px}.profile-plan-note b{color:var(--text-primary);font-weight:600}.profile-plan-actions{display:flex;flex-wrap:wrap;gap:8px}.profile-plan-actions:empty{display:none}.profile-plan-actions a{align-items:center;display:inline-flex;text-decoration:none}.profile-plan-cancel{color:var(--color-danger)}.profile-plan-cancel:hover{background:var(--color-danger-dim);border-color:#0000}.bl .ap-content{max-width:1040px}.bl-wallet{background:var(--ap-card);border-radius:20px;border-top:3px solid var(--green-500);box-shadow:var(--ap-shadow);display:flex;flex-direction:column;gap:10px;padding:22px 24px}.bl-wallet-top{align-items:center;color:var(--ap-text2);display:flex;font-size:13px;font-weight:600;justify-content:space-between}.bl-wallet-plan{background:var(--green-dim);border-radius:20px;color:var(--green-500);font-size:12px;padding:3px 10px}.bl-wallet-bal{align-items:center;display:flex;gap:12px}.bl-wallet-bal b{font-feature-settings:"tnum";font-size:40px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.03em;line-height:1}.bl-wallet-bal span{align-self:flex-end;color:var(--ap-text2);font-size:15px;margin-bottom:4px}.bl-wallet-bal svg{color:var(--green-500)}.bl-wallet-split{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.bl-wallet-split>div{background:var(--ap-fill2);border-radius:12px;display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px}.bl-wallet-split small{color:var(--ap-text2);font-size:12px}.bl-wallet-split b{font-feature-settings:"tnum";font-size:18px;font-variant-numeric:tabular-nums;font-weight:600}.bl-wallet-split b span{color:var(--ap-text2);font-size:13px;font-weight:400}.bl-wallet-foot{color:var(--ap-text2);font-size:12.5px}.bl-seg-wrap{display:flex;justify-content:center;margin-top:6px}.bl-seg-wrap .ap-seg button{padding:7px 22px}.bl-packs{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.bl-pack{background:var(--ap-card);border:0;border-radius:20px;box-shadow:var(--ap-shadow);color:var(--ap-text);cursor:pointer;font:inherit;padding:26px 18px 20px;position:relative;text-align:center;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}.bl-pack:hover{box-shadow:0 14px 34px #00000024,var(--ap-shadow);transform:translateY(-3px)}.bl-pack:active{transform:scale(.98)}.bl-pack--best{box-shadow:0 0 0 2px var(--ap-accent),0 14px 34px -12px color-mix(in srgb,var(--ap-accent) 50%,#0000)}.bl-ribbon{background:var(--ap-accent);border-radius:20px;color:#fff;font-size:11.5px;font-weight:600;left:50%;padding:4px 12px;position:absolute;top:-11px;transform:translateX(-50%);white-space:nowrap}.bl-coins{display:flex;height:40px;justify-content:center}.bl-coins svg{color:var(--green-500)}.bl-coins svg+svg{display:none}.bl-pack-n{font-feature-settings:"tnum";font-size:34px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.03em;margin-top:12px}.bl-pack-sub{align-items:center;color:var(--ap-text2);display:flex;font-size:13px;gap:6px;justify-content:center;min-height:22px}.bl-bonus{font-size:11px;padding:2px 8px}.bl-bonus:before{display:none}.bl-price{background:var(--ap-fill);border-radius:980px;color:var(--ap-accent);display:inline-block;font-size:15px;font-weight:700;margin:16px auto 0;padding:8px 22px}.bl-pack--best .bl-price{background:var(--ap-accent);color:#fff}.bl-unit{color:var(--ap-text3);font-size:11.5px;margin-top:8px}.bl-plans{grid-gap:16px;align-items:stretch;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.bl-plan{border-radius:20px!important;display:flex;flex-direction:column;gap:12px;padding:22px!important}.bl-plan--current{box-shadow:0 0 0 2px var(--ap-accent)!important}.bl-plan-name{align-items:center;display:flex;font-size:17px;font-weight:600;gap:8px;justify-content:space-between}.bl-plan-price{font-size:34px;font-weight:700;letter-spacing:-.03em}.bl-plan-price small{color:var(--ap-text2);font-size:14px;font-weight:500;letter-spacing:0;margin-left:4px}.bl-feats{display:flex;flex:1 1;flex-direction:column;font-size:13.5px;gap:9px;list-style:none;margin:0;padding:0}.bl-feats li{align-items:center;display:flex;gap:9px}.bl-feats svg{flex:none}.bl-plan .btn-ghost,.bl-plan .btn-primary{padding:10px 16px!important;width:100%}.bl-log{display:flex;flex-direction:column}.bl-log-row{align-items:center;border-bottom:1px solid var(--ap-sep);display:flex;gap:12px;padding:10px 0}.bl-log-row:last-child{border-bottom:0}.bl-log-ico{border-radius:50%;display:grid;flex:none;font-weight:700;height:32px;place-items:center;width:32px}.bl-log-ico.pos{background:color-mix(in srgb,var(--ap-green) 15%,#0000);color:var(--ap-green)}.bl-log-ico.neg{background:color-mix(in srgb,var(--ap-orange) 15%,#0000);color:var(--ap-orange)}.bl-log-txt{display:flex;flex:1 1;flex-direction:column;min-width:0}.bl-log-txt b{font-size:13.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bl-log-txt span{color:var(--ap-text2);font-size:12px}.bl-secure{align-items:center;color:var(--ap-text3);font-size:12px;gap:6px}.bl-secure,.bl-sheet-back{display:flex;justify-content:center}.bl-sheet-back{align-items:flex-end;animation:bl-fade .25s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;inset:0;position:fixed;z-index:1000}.bl-sheet{animation:bl-up .38s cubic-bezier(.2,.9,.25,1);background:var(--ap-card);border-radius:22px 22px 0 0;box-shadow:0 -10px 40px #00000040;color:var(--ap-text);display:flex;flex-direction:column;gap:12px;padding:10px 22px calc(22px + env(safe-area-inset-bottom));width:min(440px,100%)}@media (min-width:700px){.bl-sheet-back{align-items:center}.bl-sheet{border-radius:22px}}@keyframes bl-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes bl-fade{0%{opacity:0}to{opacity:1}}.bl-grabber{background:var(--ap-fill);border-radius:3px;height:5px;margin:0 auto 6px;width:36px}.bl-sheet-head{align-items:center;border-bottom:1px solid var(--ap-sep);display:flex;gap:14px;padding-bottom:12px}.bl-sheet-head b{display:block;font-size:17px;font-weight:600}.bl-sheet-head span{color:var(--ap-text2);font-size:13px}.bl-sheet-ico{background:var(--green-dim);border-radius:14px;color:var(--green-500);display:grid;flex:none;height:52px;place-items:center;width:52px}.bl-methods{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.bl-methods button{background:var(--ap-fill2);border:0;border-radius:14px;box-shadow:inset 0 0 0 1.5px #0000;color:var(--ap-text);cursor:pointer;display:flex;flex-direction:column;font:inherit;font-size:14px;font-weight:600;gap:2px;padding:12px;text-align:left;transition:box-shadow .2s,background .2s}.bl-methods button small{color:var(--ap-text2);font-size:11.5px;font-weight:400}.bl-methods button.on{background:color-mix(in srgb,var(--ap-accent) 8%,#0000);box-shadow:inset 0 0 0 2px var(--ap-accent)}.bl-m-ico{background:var(--bg3);border-radius:8px;color:var(--text-primary);display:grid;height:32px;margin-bottom:6px;place-items:center;width:32px}.bl-methods button.on .bl-m-ico{background:var(--green-dim);color:var(--green-500)}.bl-total{background:var(--ap-fill2);border-radius:14px;padding:4px 14px}.bl-total div{color:var(--ap-text2);display:flex;font-size:14px;justify-content:space-between;padding:9px 0}.bl-total div+div{border-top:1px solid var(--ap-sep)}.bl-total-sum span{color:var(--ap-text);font-size:16px;font-weight:700}.ap .bl-pay{border-radius:14px!important;font-size:16px!important;font-weight:600!important;min-height:50px;padding:14px!important;width:100%}.bl-cancel{background:none;border:0;color:var(--ap-accent);cursor:pointer;font:inherit;font-size:15px;padding:4px}.bl-spin{animation:bl-rot .8s linear infinite;border:2.5px solid #ffffff59;border-radius:50%;border-top-color:#fff;height:20px;width:20px}@keyframes bl-rot{to{transform:rotate(1turn)}}.bl-result{align-items:center;display:flex;flex-direction:column;gap:8px;padding:18px 0 4px;text-align:center}.bl-result-ico{animation:bl-pop .45s cubic-bezier(.3,1.5,.6,1);border-radius:50%;color:#fff;display:grid;font-size:30px;font-weight:700;height:64px;place-items:center;width:64px}.bl-result-ico.ok{background:var(--green-500)}.bl-result-ico.warn{background:var(--color-warn)}@keyframes bl-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}.bl-result b{font-size:20px}.bl-result p{color:var(--ap-text2);font-size:14px;line-height:1.45;margin:0 0 10px}.bl-pitch{padding:8px 0 6px;text-align:center}.bl-pitch h3{background:linear-gradient(90deg,var(--green-500),var(--ap-teal));-webkit-background-clip:text;background-clip:text;color:#0000;font-size:30px;font-weight:700;letter-spacing:-.03em;margin:0}.bl-pitch p{color:var(--ap-text2);font-size:15px;margin:6px 0 16px}.bl-period{background:var(--ap-fill);border-radius:980px;display:inline-flex;gap:2px;padding:3px}.bl-period button{align-items:center;background:none;border:0;border-radius:980px;color:var(--ap-text);cursor:pointer;display:inline-flex;font:inherit;font-size:13.5px;font-weight:500;gap:6px;padding:7px 18px;transition:background .2s,box-shadow .2s}.bl-period button.on{background:var(--ap-seg-on);box-shadow:0 1px 3px #00000024}.bl-save{background:color-mix(in srgb,var(--ap-green) 15%,#0000);border-radius:980px;color:var(--ap-green);font-size:11px;font-weight:700;padding:2px 7px}.bl-plan{position:relative}.bl-plan--popular{box-shadow:0 0 0 2px var(--ap-accent),0 18px 40px -16px color-mix(in srgb,var(--ap-accent) 55%,#0000)!important}@media (min-width:900px){.bl-plan--popular{transform:translateY(-8px)}}.bl-plan-tag{font-size:13px;margin-top:-6px}.bl-plan-bill,.bl-plan-tag{color:var(--ap-text2);min-height:18px}.bl-plan-bill{font-size:12.5px;margin-top:-8px}.bl-feats{border-top:1px solid var(--ap-sep);padding-top:14px!important}.bl-feat-lead{font-weight:600}.bl-compare td:first-child{color:var(--ap-text2)}.bl-compare td:not(:first-child),.bl-compare th:not(:first-child){text-align:center}.bl-faq details{border-bottom:1px solid var(--ap-sep);padding:12px 0}.bl-faq details:last-child{border-bottom:0}.bl-faq summary{cursor:pointer;display:flex;font-size:14.5px;font-weight:600;justify-content:space-between;list-style:none}.bl-faq summary::-webkit-details-marker{display:none}.bl-faq summary:after{color:var(--ap-accent);content:"+";font-size:18px;font-weight:400;transition:transform .2s}.bl-faq details[open] summary:after{transform:rotate(45deg)}.bl-faq p{color:var(--ap-text2);font-size:13.5px;line-height:1.5;margin:8px 0 0}.bl-check{background:var(--green-dim);border-radius:50%;color:var(--green-500);display:inline-grid;flex:none;height:16px;place-items:center;width:16px}.bl-qr{align-items:center;display:flex;flex-direction:column;gap:6px;padding:8px 0 0;text-align:center}.bl-qr b{font-size:19px}.bl-qr>span{color:var(--ap-text2);font-size:13px}.bl-qr img{aspect-ratio:1;background:#fff;border-radius:10px;cursor:zoom-in;image-rendering:pixelated;margin:10px 0 4px;transition:opacity .2s;width:min(340px,86vw)}.bl-qr img.bl-qr-dim{opacity:.35}.bl-qr-state{align-items:center;display:flex;font-size:14px;font-weight:600;gap:8px}.bl-qr small{color:var(--ap-text2);font-size:12px;line-height:1.4;max-width:300px}.bl-spin--dark{border-color:var(--ap-fill2);border-top-color:var(--ap-text)}.bl-qr-big{align-items:center;background:#fff;cursor:zoom-out;display:flex;flex-direction:column;gap:12px;inset:0;justify-content:center;position:fixed;z-index:1000}.bl-qr-big img{aspect-ratio:1;image-rendering:pixelated;width:min(92vw,82vh)}.bl-qr-big span{color:#555;font-size:14px}.button-showcase{background:linear-gradient(135deg,#f5f5f5,#fff);min-height:100vh;padding:48px 0}.showcase-container{margin:0 auto;max-width:1200px;padding:0 24px}.showcase-title{color:#000;font-size:48px;font-weight:700;letter-spacing:-1px;margin:0 0 12px}.showcase-subtitle{color:#666;font-size:18px;font-weight:400;margin:0 0 48px}.showcase-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:32px;padding:40px}.showcase-section-title{border-bottom:2px solid #f0f0f0;color:#000;font-size:24px;font-weight:600;margin:0 0 32px;padding-bottom:16px}.showcase-group{margin-bottom:32px}.showcase-group:last-child{margin-bottom:0}.showcase-group-title{align-items:center;color:#666;display:flex;font-size:14px;font-weight:600;gap:8px;letter-spacing:.5px;margin:0 0 16px;text-transform:uppercase}.showcase-buttons{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.showcase-buttons.full-width{flex-direction:column}.showcase-buttons button{flex-shrink:0}.showcase-features{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));list-style:none;margin:0;padding:0}.showcase-features li{align-items:center;border-bottom:1px solid #f0f0f0;color:#333;display:flex;font-size:14px;gap:8px;padding:12px 0}.showcase-features li:last-child{border-bottom:none}.showcase-code{background:#1e1e1e;border-radius:8px;color:#d4d4d4;font-family:Monaco,Menlo,Consolas,monospace;font-size:13px;line-height:1.6;margin:0;overflow-x:auto;padding:20px}@media (max-width:768px),(pointer:coarse) and (max-height:540px){.showcase-container{padding:0 16px}.showcase-title{font-size:32px}.showcase-subtitle{font-size:16px}.showcase-section{padding:24px}.showcase-section-title{font-size:18px}.showcase-buttons{align-items:stretch;flex-direction:column}.showcase-buttons button{width:100%}}.app-layout{background:var(--bg0);display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100vh;overflow:hidden}.sidebar{background:var(--bg1);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;width:var(--sidebar-w);z-index:10}.sidebar-header{border-bottom:1px solid var(--border);gap:10px;padding:14px}.rail-logo,.sidebar-header{align-items:center;display:flex;flex-shrink:0}.rail-logo{background:linear-gradient(135deg,#6fb98a,#24894c);border-radius:var(--radius);color:#fff;font-size:14px;font-weight:700;height:32px;justify-content:center;letter-spacing:-.5px;width:32px}.sidebar-header-text{display:flex;flex-direction:column;min-width:0}.sidebar-title{color:var(--text-primary);font-size:13px;font-weight:600;letter-spacing:-.1px}.sidebar-user{color:var(--green-500);font-size:11px;font-weight:500;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:1px;padding:8px}.sidebar-link{align-items:center;background:#0000;border:none;border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;display:flex;font-size:13px;gap:11px;padding:9px 10px;text-align:left;text-decoration:none;transition:all var(--transition);width:100%}.sidebar-link:hover{background:var(--bg3);color:var(--text-primary)}.sidebar-link--active{background:var(--green-dim);color:var(--green-500);font-weight:500}.sidebar-link--danger:hover{color:var(--color-danger)}.sidebar-bottom{border-top:1px solid var(--border);flex-shrink:0;gap:1px;padding:8px}.app-main,.sidebar-bottom{display:flex;flex-direction:column}.app-main{background:var(--bg0);min-width:0;overflow:auto}.app-main:has(.dash-root){overflow:hidden}.mobile-nav{align-items:stretch;background:var(--bg1);border-top:1px solid var(--border);bottom:0;display:none;height:54px;left:0;position:fixed;right:0;z-index:100}.mobile-nav-item{align-items:center;background:#0000;border:none;color:var(--text-muted);cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-size:9px;font-weight:600;gap:3px;justify-content:center;letter-spacing:.3px;min-height:54px;padding:6px 4px;text-decoration:none;text-transform:uppercase;transition:color var(--transition)}.mobile-nav-item.active,.mobile-nav-item:hover{color:var(--green-500)}.mobile-nav-item span{font-size:9px}@media (max-width:1024px) and (min-width:769px) and (min-height:541px){.app-layout{grid-template-columns:180px 1fr}}@media (max-width:768px),(pointer:coarse) and (max-height:540px){.app-layout{grid-template-columns:1fr;height:100vh;height:100dvh}.sidebar{display:none}.mobile-nav{display:flex}.app-main{-webkit-overflow-scrolling:touch;height:calc(100vh - 54px);height:calc(100dvh - 54px);overflow:auto;padding-bottom:calc(16px + env(safe-area-inset-bottom, 0))}}.account{margin-top:4px;position:relative}.account-btn{align-items:center;background:#0000;border:none;border-radius:10px;border-radius:var(--radius-lg,10px);color:var(--text-primary);cursor:pointer;display:flex;gap:10px;padding:8px;text-align:left;transition:background var(--transition);width:100%}.account-btn--open,.account-btn:hover{background:var(--bg3)}.account-avatar{align-items:center;background:linear-gradient(135deg,var(--green-500),color-mix(in srgb,var(--green-500) 55%,#3b82f6));border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:12px;font-weight:600;height:32px;justify-content:center;letter-spacing:.3px;width:32px}.account-text{display:flex;flex:1 1;flex-direction:column;min-width:0}.account-name{color:var(--text-primary);font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-plan{color:var(--text-muted);font-size:11px;margin-top:1px}.account-chevron{color:var(--text-muted);flex-shrink:0}.account-menu{animation:account-in .12s ease-out;background:var(--bg1);background:var(--bg2,var(--bg1));border:1px solid var(--border);border-radius:12px;bottom:calc(100% + 6px);box-shadow:0 10px 30px #00000040;left:0;padding:6px;position:absolute;right:0;z-index:50}@keyframes account-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.account-menu-head{border-bottom:1px solid var(--border);margin-bottom:4px;padding:8px 10px 10px}.account-menu-name{color:var(--text-primary);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis}.account-menu-email{color:var(--text-muted);font-size:12px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu-item{align-items:center;background:#0000;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:13px;gap:10px;padding:8px 10px;text-align:left;width:100%}.account-menu-item:hover{background:var(--bg3);color:var(--text-primary)}.account-menu-item--danger:hover{color:var(--color-danger)}.account-menu-sep{background:var(--border);height:1px;margin:4px 2px}.shared-root{background:#1a1a1a;background:var(--bg0,#1a1a1a);display:flex;flex-direction:column;height:100vh;overflow:hidden}.shared-root *{-webkit-tap-highlight-color:transparent!important;outline:none!important}.shared-root :focus,.shared-root :focus-visible{box-shadow:none!important;outline:none!important}.shared-root--fullscreen{padding:0}.shared-root--fullscreen .grid-canvas{height:100vh;padding:0}.shared-root--fullscreen .grid-stack-item-content{background:#0000;border:none;border-radius:0;box-shadow:none}.shared-header{background:#2d2d30;background:var(--bg1,#2d2d30);border-bottom:1px solid #3e3e42;border-bottom:1px solid var(--border,#3e3e42);display:flex;flex-direction:column;flex-shrink:0;gap:12px;padding:16px 20px}.shared-header-top{align-items:center;display:flex;gap:16px;justify-content:space-between}.shared-device-info{align-items:center;display:flex;flex:1 1;gap:12px}.shared-device-status{align-items:center;color:#ccc;color:var(--text2,#ccc);display:flex;font-size:13px;gap:6px}.shared-device-status-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.shared-device-status-dot.online{background:#5a9e74;box-shadow:0 0 6px #4ec9b099}.shared-device-status-dot.offline{background:#d16969;box-shadow:0 0 6px #d1696999}.shared-device-name{display:flex;flex-direction:column;gap:2px;min-width:0}.shared-device-name-text{color:#e0e0e0;color:var(--text1,#e0e0e0);font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-device-checksum{color:#b0b0b0;color:var(--text3,#b0b0b0);font-family:Consolas,monospace;font-size:11px;letter-spacing:.5px}.shared-badges{align-items:center;display:flex;gap:8px}.shared-permission-badge{align-items:center;border-radius:4px;display:inline-flex;font-size:11px;font-weight:600;gap:6px;letter-spacing:.5px;padding:4px 10px;text-transform:uppercase;white-space:nowrap}.shared-permission-badge.control{background:#4caf5026;border:1px solid #4caf504d;color:var(--color-success)}.shared-permission-badge.view_only{background:#96969626;border:1px solid #96969666;color:silver}.shared-permission-badge-icon{font-size:10px}.shared-expiry-info{align-items:center;background:#ffa5001a;border-left:2px solid var(--color-warn);border-radius:3px;color:#b0b0b0;color:var(--text3,#b0b0b0);display:flex;font-size:12px;gap:6px;padding:8px 12px}.shared-expiry-info-icon{font-size:12px}.shared-expiry-banner{display:none}.grid-canvas{background:#1a1a1a;background:var(--bg0,#1a1a1a);flex:1 1;min-height:0;overflow:auto;padding:16px;position:relative;width:100%}.grid-canvas>.grid-stack{width:100%}.grid-canvas .grid-stack{animation:fadeIn .4s ease-in}.grid-canvas .grid-stack-item{animation:slideInUp .4s ease-out backwards}.grid-canvas .grid-stack-item:first-child{animation-delay:0s}.grid-canvas .grid-stack-item:nth-child(2){animation-delay:.1s}.grid-canvas .grid-stack-item:nth-child(3){animation-delay:.2s}.grid-canvas .grid-stack-item:nth-child(4){animation-delay:.3s}.grid-canvas .grid-stack-item:nth-child(5){animation-delay:.4s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.grid-canvas .grid-stack-item-content{-webkit-tap-highlight-color:transparent;height:100%;outline:none}.grid-canvas .grid-stack-item-content:focus{outline:none}.shared-error{align-items:center;background:#1a1a1a;background:var(--bg0,#1a1a1a);display:flex;flex-direction:column;gap:8px;justify-content:center;min-height:100vh}.ripple{overflow:hidden;position:relative}.ripple:after{background:#ffffff80;border-radius:100%;content:"";height:5px;left:50%;opacity:0;pointer-events:none;position:absolute;top:50%;transform:scale(1);transform-origin:50% 50%;width:5px}.ripple:active:after{animation:ripple .6s ease-out}@keyframes ripple{to{opacity:0;transform:scale(4)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.icon-inline{display:inline-block!important;margin-right:6px;vertical-align:middle!important}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.shared-permission-badge{animation:none!important}}@media (max-width:640px){.shared-root .grid-canvas{padding:12px 8px}.shared-root .grid-stack{width:100%!important}.shared-root .grid-stack-item-content{border-radius:12px;min-height:120px!important}}@media (max-width:400px){.shared-root{height:100vh;overflow:hidden}.shared-root .grid-canvas{padding:12px 6px}.shared-root .grid-stack-item{min-width:0!important;min-width:auto!important;width:calc(100% - 12px)!important}.shared-root .grid-stack-item-content{border-radius:12px;min-height:140px!important}.shared-expiry-banner{font-size:10px;height:auto;padding:4px 10px}}.dash-root,.shared-root,.wsm-overlay{--ap-canvas:var(--bg0);--ap-card:var(--bg2);--ap-card-2:var(--bg3);--ap-sep:var(--border);--ap-label:var(--text-primary);--ap-label-2:var(--text-secondary);--ap-label-3:var(--text-muted);--ap-fill:#7676803d;--ap-fill-2:#76768029;--ap-seg-on:#636366;--ap-material:color-mix(in srgb,var(--bg1) 78%,#0000);--ap-shadow:none;--ap-ring:color-mix(in srgb,var(--accent) 45%,#0000);--ap-ease:cubic-bezier(.25,.1,.25,1)}body.light-mode .dash-root,body.light-mode .shared-root,body.light-mode .wsm-overlay{--ap-fill:#76768033;--ap-fill-2:#76768021;--ap-seg-on:#fff;--ap-shadow:0 0 0 0.5px #3c3c4329,0 1px 3px #00000014,0 4px 14px #0000000d}body.light-mode .dash-root .widget-title,body.light-mode .shared-root .widget-title,body.light-mode .wsm-overlay .widget-title{color:var(--text-primary)}.dash-root,.dash-root .grid-canvas{background:var(--ap-canvas)}.dash-root .grid-canvas{padding:20px}body.edit-mode .dash-root .grid-canvas{background-color:var(--ap-canvas);background-image:radial-gradient(circle,var(--ap-label-3) 1px,#0000 1px)}.dash-root .dash-toolbar{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);background:var(--ap-material);border-bottom:.5px solid var(--ap-sep);height:52px}.dash-root .dash-device-name{font-size:15px;font-weight:600;letter-spacing:-.01em}.dash-root .dash-link-btn,.dash-root .mode-btn--edit,.dash-root .share-btn,.dash-root .toolbar-btn{background:var(--ap-fill-2);border:0!important;border-radius:8px;box-shadow:none;color:var(--ap-label);font-weight:500;transition:background .15s var(--ap-ease)}.dash-root .dash-link-btn:hover,.dash-root .mode-btn--edit:hover,.dash-root .share-btn:hover,.dash-root .toolbar-btn:hover{background:var(--ap-fill)}.dash-root .mode-btn{border-radius:8px;box-shadow:none;font-weight:600}.dash-root .range-toggle{background:var(--ap-fill-2);border:0;border-radius:9px;gap:0;padding:2px}.dash-root .range-toggle-btn{font-feature-settings:"tnum";border-radius:7px;color:var(--ap-label);font-variant-numeric:tabular-nums;font-weight:500}.dash-root .range-toggle-btn:hover{background:#0000}.dash-root .range-toggle-btn--active,.dash-root .range-toggle-btn--active:hover{background:var(--ap-seg-on);box-shadow:0 3px 8px #0000001f,0 3px 1px #0000000a;font-weight:600}.dash-root .grid-stack-item-content{background:var(--ap-card);border:0!important;border-radius:18px;box-shadow:var(--ap-shadow);inset:6px!important}.dash-root .grid-stack-item-content:hover{box-shadow:var(--ap-shadow);transform:none}body.edit-mode .dash-root .grid-stack-item-content:hover{box-shadow:0 0 0 1px var(--ap-sep),var(--ap-shadow)}.dash-root .widget-card,.shared-root .widget-card,.wsm-overlay .widget-card{background:var(--ap-card)}.dash-root .widget-header,.shared-root .widget-header,.wsm-overlay .widget-header{gap:8px;padding:12px 14px 0}.dash-root .widget-icon,.shared-root .widget-icon,.wsm-overlay .widget-icon{font-size:12px;opacity:1}.dash-root .widget-title,.shared-root .widget-title,.wsm-overlay .widget-title{color:var(--ap-label-2);font-size:13px;font-weight:600;letter-spacing:-.005em}.dash-root .widget-vpin-badge,.shared-root .widget-vpin-badge,.wsm-overlay .widget-vpin-badge{font-feature-settings:"tnum";background:none;border:0;color:var(--ap-label-3);font-family:var(--font);font-size:12px;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:0;padding:0}.shared-root .widget-vpin-badge,body:not(.edit-mode) .dash-root .widget-vpin-badge{display:none}.dash-root .widget-live,.shared-root .widget-live,.wsm-overlay .widget-live{align-items:center;gap:0;height:6px;width:6px}.dash-root .widget-live span,.shared-root .widget-live span,.wsm-overlay .widget-live span{display:none}.dash-root .widget-live span:first-child,.shared-root .widget-live span:first-child,.wsm-overlay .widget-live span:first-child{animation:apBreathe 2.4s var(--ap-ease) infinite;background:var(--accent);border-radius:50%;display:block;height:6px;transform:none;width:6px}@keyframes apBreathe{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.dash-root .widget-live span:first-child,.shared-root .widget-live span:first-child{animation:none;opacity:.8}}.dash-root .widget-body,.shared-root .widget-body,.wsm-overlay .widget-body{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding:8px 14px 14px}.dash-root .widget-action-btn{background:#0000;border:0;border-radius:6px;color:var(--ap-label-2)}.dash-root .widget-action-btn:hover{background:var(--ap-fill);color:var(--ap-label)}.dash-root .toolbox-chip{background:#0000;border:0;border-radius:8px;color:var(--ap-label);font-weight:500}.dash-root .toolbox-chip:hover{background:var(--ap-fill-2)}.dash-root .toolbox-chip-cost{font-feature-settings:"tnum";color:var(--ap-label-3);font-variant-numeric:tabular-nums}.wsm-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000006b}.wsm-overlay .wsm-modal{animation:apSheetIn .28s var(--ap-ease);background:var(--ap-canvas);border:.5px solid var(--ap-sep);border-radius:14px;box-shadow:0 24px 80px #00000073,0 0 0 .5px #0000004d}@keyframes apSheetIn{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}.wsm-overlay .wsm-header{background:#0000;border-bottom:.5px solid var(--ap-sep);justify-content:center;padding:14px 52px;position:relative}.wsm-overlay .wsm-title{color:var(--ap-label);font-family:var(--font);font-size:15px;font-weight:600;letter-spacing:-.01em;text-transform:none}.wsm-overlay .wsm-close{align-items:center;background:var(--ap-fill);border:0;border-radius:50%;color:var(--ap-label-2);display:inline-flex;height:26px;justify-content:center;position:absolute;right:14px;top:50%;transform:translateY(-50%);width:26px}.wsm-overlay .wsm-close:hover{background:var(--ap-seg-on);color:var(--ap-label)}.wsm-overlay .wsm-body{gap:12px;padding:16px}.wsm-overlay .wsm-section{background:var(--ap-card);border-radius:12px;border-top:0;margin-top:4px;padding:12px 14px}.wsm-overlay .wsm-section-title{color:var(--ap-label);font-family:var(--font);font-size:13px;font-weight:600;letter-spacing:-.005em;text-transform:none}.wsm-overlay .wsm-label,.wsm-overlay .wsm-preview-label{color:var(--ap-label-2);font-family:var(--font);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}.wsm-overlay .wsm-field,.wsm-overlay input.field,.wsm-overlay textarea.wsm-field{background:var(--ap-fill-2);border:0;border-radius:8px;box-shadow:none;color:var(--ap-label);font-size:14px;min-height:34px;padding:7px 10px;transition:box-shadow .15s var(--ap-ease),background .15s var(--ap-ease)}.wsm-overlay .wsm-field:hover{background:var(--ap-fill)}.wsm-overlay .wsm-field:focus,.wsm-overlay .wsm-field:focus-visible{background:var(--ap-fill-2);box-shadow:0 0 0 3px var(--ap-ring);outline:none}.wsm-overlay .wsm-field::placeholder{color:var(--ap-label-3)}.wsm-overlay .wsm-hint{color:var(--ap-label-2);font-size:12px;line-height:1.45}.wsm-overlay .wsm-check-label{align-items:flex-start;color:var(--ap-label);font-size:13px;gap:12px}.wsm-overlay .wsm-check-label input[type=checkbox],.wsm-overlay .wsm-sim-switch input[type=checkbox]{-webkit-appearance:none;appearance:none;background:var(--ap-fill);border-radius:11px;cursor:pointer;flex:none;height:22px;margin:0 0 0 auto;order:2;position:relative;transition:background .2s var(--ap-ease);width:38px}.wsm-overlay .wsm-check-label input[type=checkbox]:after,.wsm-overlay .wsm-sim-switch input[type=checkbox]:after{background:#fff;border-radius:50%;box-shadow:0 2px 4px #0003,0 0 1px #0003;content:"";height:18px;left:2px;position:absolute;top:2px;transition:transform .22s var(--ap-ease);width:18px}.wsm-overlay .wsm-check-label input[type=checkbox]:checked,.wsm-overlay .wsm-sim-switch input[type=checkbox]:checked{background:var(--accent)}.wsm-overlay .wsm-check-label input[type=checkbox]:checked:after,.wsm-overlay .wsm-sim-switch input[type=checkbox]:checked:after{transform:translateX(16px)}.wsm-overlay .wsm-check-label input[type=checkbox]:focus-visible,.wsm-overlay .wsm-sim-switch input[type=checkbox]:focus-visible{box-shadow:0 0 0 3px var(--ap-ring)}.wsm-overlay .wsm-check-label input[type=checkbox]:disabled{cursor:default;opacity:.4}.wsm-overlay .wsm-sim-switch{align-items:center;color:var(--ap-label-2);display:inline-flex;gap:8px}.wsm-overlay .wsm-sim-switch input[type=checkbox]{margin:0;order:2}.wsm-overlay .wsm-seg{background:var(--ap-fill-2);border-radius:9px;display:flex;padding:2px}.wsm-overlay .wsm-seg button{background:#0000;border:0;border-radius:7px;color:var(--ap-label);cursor:pointer;flex:1 1;font:500 13px var(--font);padding:5px 0;transition:background .15s var(--ap-ease)}.wsm-overlay .wsm-seg button.on{background:var(--ap-seg-on);box-shadow:0 3px 8px #0000001f,0 3px 1px #0000000a;font-weight:600}.wsm-overlay .wsm-seg button:focus-visible{box-shadow:0 0 0 3px var(--ap-ring);outline:none}.wsm-overlay .wsm-color-swatch{border:0!important;border-radius:50%;box-shadow:inset 0 0 0 .5px #0003;height:24px;width:24px}.wsm-overlay .wsm-preview-pane{background:var(--ap-card-2);border-left:.5px solid var(--ap-sep)}.wsm-overlay .wsm-preview-hint{color:var(--ap-label-3)}.wsm-overlay .wsm-footer{background:#0000;border-top:.5px solid var(--ap-sep);gap:10px;padding:12px 16px}.wsm-overlay .wsm-footer .btn-ghost,.wsm-overlay .wsm-footer .btn-primary{border-radius:8px;box-shadow:none;font:600 13px var(--font);height:32px;min-width:84px}.wsm-overlay .wsm-footer .btn-ghost{background:var(--ap-fill-2);border:0;color:var(--ap-label)}.wsm-overlay .wsm-footer .btn-ghost:hover{background:var(--ap-fill)}.wsm-overlay .wsm-footer .btn-primary{border:0;color:#fff}.wsm-overlay .rl-select-trigger{background:var(--ap-fill-2);border:0;border-radius:8px;box-shadow:none;color:var(--ap-label);font-size:14px;min-height:34px}.wsm-overlay .rl-select-trigger:hover{background:var(--ap-fill)}.wsm-overlay .rl-select-trigger:focus-visible{box-shadow:0 0 0 3px var(--ap-ring);outline:none}.wsm-overlay .rl-select-chevron{color:var(--ap-label-3)}.wsm-overlay .rl-select-panel{border:.5px solid var(--ap-sep);border-radius:10px;box-shadow:0 10px 30px #0000004d}.wsm-overlay .wsm-color-swatch.active{border-radius:50%;box-shadow:0 0 0 2px var(--ap-canvas),0 0 0 4px var(--ap-label-2);transform:none}body.light-mode .dash-root .dash-toolbar .mode-btn--run{background:var(--accent);color:#fff}body.light-mode .dash-root .dash-toolbar .mode-btn--run:hover{background:var(--green-400)}