*{box-sizing:border-box;margin:0}html,body,#app{height:100%}body{color:var(--figma-color-text);background:var(--figma-color-bg);font:12px/1.4 Inter,system-ui,sans-serif;overflow:hidden}button{font:inherit;color:inherit;transition:background-color .15s,color .15s,transform .1s}button:not(:disabled):active{transform:scale(.98)}.root{height:100%;display:flex}.preview{border-right:1px solid var(--figma-color-border);background:var(--figma-color-bg-secondary);flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.canvas{cursor:grab;flex:1;min-height:0;overflow:hidden}.canvas:active{cursor:grabbing}.overlay{color:var(--figma-color-text-secondary);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0 0 48px}.overlay .btn{pointer-events:auto;padding:0 16px}.pulse{animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.4}}.controls{color:var(--figma-color-text-secondary);pointer-events:none;align-self:flex-start;gap:16px;margin:0 0 12px;padding:0 12px;font-size:11px;display:flex}.controls span{align-items:center;gap:2px;display:flex}.glyph{fill:none;stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;width:30px;height:24px}.glyph .lit{fill:var(--figma-color-bg-brand,#0d99ff);stroke:none}.glyph text{fill:currentColor;stroke:none;font-size:10px;font-weight:700}.sidebar{flex-direction:column;width:280px;display:flex}.sidebar section{border-bottom:1px solid var(--figma-color-border);padding:10px 12px 12px}.sidebar h2{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.sidebar h2 small{color:var(--figma-color-text-secondary);font-size:11px;font-weight:400}.devices{flex-direction:column;flex:1;min-height:0;display:flex}.list{flex:1;min-height:0;margin:0 -4px;padding:0 4px;overflow:auto}.group{cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:6px;width:100%;height:26px;padding:0 4px;font-weight:500;display:flex}.group:hover{background:var(--figma-color-bg-hover)}.group svg{fill:none;width:16px;height:16px;stroke:var(--figma-color-text-secondary);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;margin-left:-8px;transition:transform .15s}.group.open svg{transform:rotate(90deg)}.device{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:6px;width:100%;height:26px;padding:0 8px 0 20px;display:flex}.device span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.device small{color:var(--figma-color-text-tertiary,var(--figma-color-text-secondary));font-variant-numeric:tabular-nums;flex:none;margin-left:auto;font-size:11px}.device:hover{background:var(--figma-color-bg-hover)}.device.active{background:var(--figma-color-bg-selected)}.device svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;visibility:hidden;flex:none;width:16px;height:16px}.device.active svg{visibility:visible}.selection{height:20px;color:var(--figma-color-text-secondary);align-items:center;gap:8px;margin-bottom:8px;display:flex}.selection span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.selection i{background:var(--figma-color-border);border-radius:50%;flex:none;width:6px;height:6px}.selection.on{color:var(--figma-color-text)}.selection.on i{background:var(--figma-color-bg-success,#14ae5c)}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatches>button,.swatches>label{cursor:pointer;border:1px solid var(--figma-color-border-strong,#0003);background:var(--swatch);border-radius:50%;width:22px;height:22px;padding:0;position:relative;box-shadow:inset 0 0 0 1px #ffffff40}.swatches>.active{outline:2px solid var(--figma-color-bg-brand);outline-offset:2px}.swatches .custom{background:conic-gradient(#f44,#fd4,#4d6,#4bf,#84f,#f4b,#f44)}.swatches .custom input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.presets{grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:10px;display:grid}.presets button{cursor:pointer;border:1px solid var(--figma-color-border);background:var(--figma-color-bg);border-radius:6px;place-items:center;height:28px;display:grid}.presets button:hover{background:var(--figma-color-bg-hover)}.presets i{border:1.5px solid var(--figma-color-icon,currentColor);border-radius:3px;width:12px;height:20px}.sliders{flex-direction:column;gap:4px;display:flex}.slider{align-items:center;gap:8px;display:flex}.slider span{width:24px;color:var(--figma-color-text-secondary);font-size:11px}.slider input[type=range]{appearance:none;cursor:pointer;background:0 0;flex:1;min-width:0;height:16px;margin:0}.slider input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--figma-color-bg-brand) var(--fill), var(--figma-color-border) var(--fill));border-radius:1px;height:2px}.slider input[type=range]::-moz-range-track{background:var(--figma-color-border);border-radius:1px;height:2px}.slider input[type=range]::-moz-range-progress{background:var(--figma-color-bg-brand);border-radius:1px;height:2px}.slider input[type=range]::-webkit-slider-thumb{appearance:none;border:1px solid var(--figma-color-border-strong,#0003);background:#fff;border-radius:50%;width:12px;height:12px;margin-top:-5px;box-shadow:0 1px 2px #00000026}.slider input[type=range]::-moz-range-thumb{border:1px solid var(--figma-color-border-strong,#0003);background:#fff;border-radius:50%;width:12px;height:12px;box-shadow:0 1px 2px #00000026}.slider input[type=number],.swatches>input.hex{width:48px;height:22px;font:inherit;color:inherit;text-align:right;background:var(--figma-color-bg);border:1px solid var(--figma-color-border);border-radius:4px;padding:0 4px}.swatches>input.hex{text-transform:uppercase;width:72px;margin-left:auto}footer{flex-direction:column;gap:8px;padding:12px;display:flex}.actions{gap:8px;display:flex}.meta{color:var(--figma-color-text-secondary);white-space:nowrap;justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.meta .links{gap:12px;margin-left:auto;display:flex}button.btn{cursor:pointer;border:1px solid var(--figma-color-border);background:var(--figma-color-bg);border-radius:6px;width:100%;height:32px;font-weight:500}button.btn:hover:not(:disabled){background:var(--figma-color-bg-hover)}button.btn.primary{background:var(--figma-color-bg-brand);color:var(--figma-color-text-onbrand);border-color:#0000}button.btn.primary:hover:not(:disabled){background:var(--figma-color-bg-brand-hover,var(--figma-color-bg-brand))}button.btn:disabled{cursor:not-allowed;opacity:.4}button.link{cursor:pointer;color:var(--figma-color-text-secondary);text-underline-offset:2px;background:0 0;border:0;padding:0;font-size:11px;font-weight:400;text-decoration:underline}button.link:hover{color:var(--figma-color-text)}button.link.accent{color:var(--figma-color-text-brand,#0d99ff);font-weight:500;text-decoration:none}.page{background:var(--figma-color-bg);padding:16px 24px 24px;position:absolute;inset:0;overflow:auto}.page header{align-items:center;gap:16px;margin-bottom:16px;display:flex}.page h1{font-size:14px;font-weight:600}.page p{max-width:640px;color:var(--figma-color-text-secondary);margin:12px 0}.page a{color:var(--figma-color-text-brand,#0d99ff)}.page table{border-collapse:collapse;width:100%}.page th,.page td{text-align:left;border-bottom:1px solid var(--figma-color-border);padding:8px 8px 8px 0}.page th{color:var(--figma-color-text-secondary);font-size:11px;font-weight:600}.dev{color:#f24822;align-items:center;gap:4px;font-size:10px;display:flex;position:absolute;top:12px;right:12px}.dev button{color:inherit;cursor:pointer;background:0 0;border:1px solid #f24822;border-radius:4px;padding:2px 6px}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--figma-color-bg:var(--lightningcss-light,#fff)var(--lightningcss-dark,#0e121b);--figma-color-bg-secondary:var(--lightningcss-light,#f4f5f7)var(--lightningcss-dark,#151a26);--figma-color-bg-hover:var(--lightningcss-light,#eef0f4)var(--lightningcss-dark,#1d2433);--figma-color-bg-selected:var(--lightningcss-light,#e3ebf7)var(--lightningcss-dark,#1c2b47);--figma-color-bg-brand:var(--lightningcss-light,#003c88)var(--lightningcss-dark,#8fb2ec);--figma-color-bg-brand-hover:var(--lightningcss-light,#00306d)var(--lightningcss-dark,#a8c4f1);--figma-color-bg-success:#14ae5c;--figma-color-text:var(--lightningcss-light,#1c1d21)var(--lightningcss-dark,#e7e8ec);--figma-color-text-secondary:var(--lightningcss-light,#5d6170)var(--lightningcss-dark,#9a9fae);--figma-color-text-tertiary:var(--lightningcss-light,#8a8e9b)var(--lightningcss-dark,#6f7484);--figma-color-text-brand:var(--lightningcss-light,#003c88)var(--lightningcss-dark,#8fb2ec);--figma-color-text-onbrand:var(--lightningcss-light,#fff)var(--lightningcss-dark,#0e121b);--figma-color-icon:currentColor;--figma-color-border:var(--lightningcss-light,#e3e5ea)var(--lightningcss-dark,#262d3d);--figma-color-border-strong:var(--lightningcss-light,#c4c8d0)var(--lightningcss-dark,#3a4356)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body{font-size:13px}.canvas{touch-action:none}.sidebar{width:300px}.license{gap:6px;display:flex}.license input{min-width:0;height:32px;font:inherit;color:inherit;background:var(--figma-color-bg);border:1px solid var(--figma-color-border);border-radius:6px;flex:1;padding:0 8px}.license .btn{width:auto;padding:0 12px}.toast{background:var(--figma-color-text);max-width:calc(100% - 32px);color:var(--figma-color-bg);border-radius:8px;padding:8px 14px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0003}@media (width<=700px){body{overflow:auto}.root{flex-direction:column;height:auto}.preview{border-right:0;border-bottom:1px solid var(--figma-color-border);flex:none;height:60vh}.sidebar{width:auto}.devices .list{max-height:240px}.controls{display:none}}.hint{color:var(--figma-color-text-secondary);margin:8px 0 0;font-size:11px;line-height:1.4}
