:root{--canvas:#ededed;--island:#fafafa;--well:#e4e4e4;--line:#dcdcdc;--text:#0f0f0f;--dim:#6e6e6e;--ink:#1e1e1e;--dark:#151515;--mint:#00ffd0;--sun:#f6d84d;--bad:#e5484d;--warn:#b7791f;--ok:#128a6e;--r:16px;--shadow:0 1px 2px #0000000a, 0 8px 24px #00000010;--font:"Inter Tight", "SF Pro Display", -apple-system, "Segoe UI Variable Display", "Segoe UI", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--canvas);height:100%;color:var(--text);font:14px/1.4 var(--font);letter-spacing:-.005em;-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}.lc{stroke-width:1.75px;flex:none}button{cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:7px 12px;transition:background .15s,transform .1s;display:inline-flex}button:hover{background:var(--well)}button:active{transform:scale(.97)}button:disabled{opacity:.35;cursor:default;background:0 0;transform:none}button.primary{background:var(--ink);color:#fafafa;padding:7px 16px}button.primary:hover{background:#000}button.danger{color:var(--bad)}button.ic{padding:7px 10px;font-size:15px}button.mini{background:var(--well);border-radius:8px;width:26px;height:26px;padding:0}button.mini:hover{background:var(--line)}input,select,textarea{background:var(--well);border:1px solid #0000;border-radius:10px;min-width:0;padding:6px 9px}input:focus,select:focus,textarea:focus{border-color:var(--text);background:#fff;outline:none}input[type=color]{cursor:pointer;background:0 0;border-radius:8px;width:36px;height:28px;padding:0;overflow:hidden}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:none;border-radius:8px}input[type=checkbox]{accent-color:var(--ink);width:15px;height:15px}input[type=range]{accent-color:var(--ink);background:0 0;padding:0}.spacer{flex:1}#app{grid-template:"top top top top"52px"rail left view right"1fr"status status status status"18px/68px 272px 1fr 292px;gap:10px;height:100vh;padding:10px;display:grid}#top{grid-area:top;align-items:center;gap:10px;display:flex}.island{background:var(--island);border-radius:var(--r);height:52px;box-shadow:var(--shadow);align-items:center;gap:2px;padding:0 8px;display:flex}.brand{letter-spacing:-.03em;align-items:center;gap:8px;padding:0 8px 0 4px;font-size:17px;font-weight:600;display:flex}.brand img{border-radius:6px}.pname{background:0 0;width:190px;margin-right:4px;font-weight:500}.pname:hover{background:var(--well)}.seg{gap:2px;padding:0 6px}.seg button.on{background:var(--ink);color:#fafafa}#playBtn.on{background:var(--mint);color:var(--text);font-weight:600}#left,#right{background:var(--island);border-radius:var(--r);box-shadow:var(--shadow);overflow-y:auto}#left{flex-direction:column;grid-area:left;display:flex}#right{grid-area:right}#left section{border-bottom:1px solid var(--well);padding:14px}#left section:last-child{border:none}#left section.grow{flex:1;overflow-y:auto}h3{color:var(--dim);letter-spacing:0;justify-content:space-between;align-items:center;margin:0 0 10px;font-size:12px;font-weight:500;display:flex}.list{flex-direction:column;gap:2px;display:flex}.item{cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:7px 8px;transition:background .12s;display:flex}.item:hover{background:var(--well)}.item.on{background:var(--ink);color:#fafafa}.item.on .muted,.item.on .stars{color:#fafafaaa}.item .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.item .ic{opacity:.8;justify-content:center;width:18px;display:flex}.item img{object-fit:cover;background:var(--well);border-radius:8px;width:38px;height:38px}.item .x{opacity:0;border-radius:6px;padding:4px}.item:hover .x{opacity:.7}.item .x:hover{opacity:1;background:#0000000f}.item.on .x:hover{background:#fff2}.item .eye{opacity:.6;padding:4px}.item .eye:hover{opacity:1;background:0 0}.item.off .nm{opacity:.4}.stars{color:#c9a400;letter-spacing:1px;font-size:11px}.muted{color:var(--dim);font-size:12.5px}.muted.warn{color:var(--warn)}.sec .muted+.muted,.f+.muted{margin-top:6px}.addgrid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.addgrid button{background:var(--well);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:10px 2px 8px;font-size:11.5px;display:flex}.addgrid button:hover{background:var(--ink);color:#fafafa}.addgrid button .lc{stroke-width:1.5px}#view{background:var(--dark);border-radius:22px;grid-area:view;position:relative;overflow:hidden;box-shadow:0 2px 4px #00000014,0 24px 60px -12px #00000040}#view canvas{outline:none;width:100%;height:100%;display:block}.empty{text-align:center;z-index:2;background:var(--dark);color:#fafafa;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex;position:absolute;inset:0}.empty h2{letter-spacing:-.045em;margin:0;font-size:clamp(30px,4vw,52px);font-weight:500;line-height:1.02}.empty p{color:#a3a3a3;max-width:460px;margin:0;font-size:16px}.empty .row{gap:10px;margin:18px 0 8px;display:flex}.empty button{color:#fafafa;background:#2e2e2e;border-radius:12px;padding:11px 20px}.empty button:hover{background:#3a3a3a}.empty button.primary{background:var(--mint);color:var(--text);font-weight:600}.empty button.primary:hover{filter:brightness(1.05);background:var(--mint)}.hint{color:#7a7a7a!important;font-size:13px!important}.badge{background:var(--mint);color:var(--text);z-index:3;border-radius:99px;align-items:center;gap:6px;padding:6px 14px;font-size:12.5px;font-weight:600;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.drop{border:2px dashed var(--mint);color:#fafafa;z-index:4;pointer-events:none;background:#00ffd014;border-radius:16px;justify-content:center;align-items:center;font-size:20px;display:flex;position:absolute;inset:14px}#inspector{padding:6px 14px}.sec{border-bottom:1px solid var(--well);padding:12px 0 14px}.sec:last-child{border:none}.sec h4{color:var(--dim);justify-content:space-between;align-items:center;margin:0 0 10px;font-size:12px;font-weight:500;display:flex}.sec h4:first-child:has(.rowb){color:var(--text);letter-spacing:-.02em;font-size:15px;font-weight:600}.f{grid-template-columns:76px 1fr;align-items:center;gap:8px;margin-bottom:7px;display:grid}.f>label{color:var(--dim);font-size:12.5px}.v3{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.v3 input{text-align:right;font-variant-numeric:tabular-nums;width:100%;padding:5px 7px}.v3 input:first-child{box-shadow:inset 3px 0 #ff5d6c}.v3 input:nth-child(2){box-shadow:inset 3px 0 #1fbf8f}.v3 input:nth-child(3){box-shadow:inset 3px 0 #4f8cff}.chk{cursor:pointer;align-items:center;gap:7px;font-size:13px;display:flex}.act{grid-template-columns:1fr 1fr auto;gap:4px;margin-bottom:4px;display:grid}.act input,.act select{width:100%}.rowb{flex-wrap:wrap;align-items:center;gap:6px;display:flex}textarea{resize:vertical;width:100%;min-height:60px}#status{color:var(--dim);grid-area:status;align-items:center;gap:10px;padding:0 6px;font-size:12px;display:flex}#status .ok{color:var(--ok)}#status .warn{color:var(--warn)}#status .bad{color:var(--bad)}.modal{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;background:#0f0f0f55;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.card{background:var(--island);border-radius:24px;width:min(540px,94vw);max-height:90vh;padding:24px;overflow-y:auto;box-shadow:0 30px 80px -10px #00000040}.card h2{letter-spacing:-.035em;align-items:center;gap:10px;margin:0 0 14px;font-size:26px;font-weight:500;display:flex}.card .foot{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.card .foot button:not(.primary){background:var(--well)}.bar{background:var(--well);border-radius:9px;height:6px;margin:10px 0;overflow:hidden}.bar>i{background:var(--ink);width:0;height:100%;transition:width .2s;display:block}.qr{align-items:center;gap:18px;display:flex}.qr p{margin:0 0 8px}.qr .q{box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:10px;line-height:0}.qr .q img{width:164px;height:164px;image-rendering:pixelated}.qr .rowb button{background:var(--well)}.link{word-break:break-all;background:var(--well);border-radius:10px;margin-bottom:8px;padding:8px 10px;font-family:ui-monospace,SF Mono,monospace;font-size:12px}.plist .item{padding:10px}.kv{grid-template-columns:1fr auto;gap:6px 14px;font-size:13px;display:grid}@media (max-width:900px){#app{grid-template:"top""view"60vh"left""right""status"18px/1fr;height:auto;min-height:100vh;overflow-y:auto}html,body{overflow:auto}#top{flex-wrap:wrap}.pname{width:120px}}.card h2 .lc{color:var(--ok)}.acc span{text-overflow:ellipsis;align-items:center;gap:6px;max-width:130px;display:flex;overflow:hidden}.plan-badge{background:var(--mint);color:var(--text);border-radius:99px;padding:1px 7px;font-size:11px;font-style:normal;font-weight:600}.authform{flex-direction:column;gap:8px;margin-top:6px;display:flex}.authform input{padding:10px 12px}.authform button.primary{margin-top:4px;padding:11px}.tabs2{background:var(--well);border-radius:12px;gap:4px;margin-bottom:4px;padding:4px;display:flex}.tabs2 button{flex:1}.tabs2 button.on{background:var(--island);box-shadow:var(--shadow)}.form-err{color:var(--bad);min-height:0;margin:0;font-size:13px}.form-err:empty{display:none}@media (max-width:1300px){.pname{width:130px}#gizmoSeg button{gap:0;font-size:0}#gizmoSeg button .lc{font-size:14px}}.geoic{background:var(--well);border-radius:8px;flex:none;place-items:center;width:38px;height:38px;display:grid}.item.on .geoic{color:var(--mint);background:#ffffff1f}.minimap{background:var(--well);z-index:0;border-radius:12px;height:210px;margin:4px 0 2px;overflow:hidden}button.mini.wide{gap:6px;width:auto;padding:0 10px;font-size:12.5px}.card.wide{width:min(1100px,96vw)}.bigmap{z-index:0;border-radius:14px;height:min(64vh,640px);margin:10px 0;overflow:hidden}.maphead{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.maphead h2{margin:0!important}.leaflet-container{font:inherit}.f .rowb{flex-wrap:nowrap}.f .rowb input[type=number]{flex:1;width:0}.addgrid button.magic{background:var(--ink);color:#fafafa;grid-column:span 2}.addgrid button.magic .lc{color:var(--mint)}.addgrid button.magic:hover{background:#000}.i3{grid-template-columns:1fr 1fr;gap:10px;display:grid}.i3-col{flex-direction:column;gap:6px;min-width:0;display:flex}.i3-cap{color:var(--dim);font-size:12px}.i3-mask{object-fit:contain;background:var(--well);border-radius:14px;width:100%;height:300px}.i3-view{background:var(--dark);cursor:grab;touch-action:none;border-radius:14px;width:100%;height:300px}.i3-ctl{grid-template-columns:1fr 1fr;gap:4px 18px;margin:14px 0 6px;display:grid}.i3-seg{background:var(--well);border-radius:10px;gap:4px;padding:3px;display:flex}.i3-seg button{flex:1;padding:6px 8px}.i3-seg button.on{background:var(--ink);color:#fafafa}@media (max-width:760px){.i3,.i3-ctl{grid-template-columns:1fr}}.i3-engines{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:14px;display:grid}.i3-engines button{background:var(--well);text-align:left;border-radius:14px;justify-content:flex-start;gap:10px;padding:10px 12px}.i3-engines button span{flex-direction:column;line-height:1.2;display:flex}.i3-engines button small{color:var(--dim);font-size:11.5px}.i3-engines button.on{background:var(--ink);color:#fafafa}.i3-engines button.on small{color:#a3a3a3}.i3-engines button.on .lc{color:var(--mint)}.i3-box{position:relative}.i3-empty{color:#8a8a8a;pointer-events:none;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.i3-ai{justify-content:space-between;align-items:center;gap:12px;margin:14px 0 4px;display:flex}.i3-quota{background:var(--well);white-space:nowrap;border-radius:10px;padding:6px 10px;font-size:12.5px}.i3-auth{max-width:380px;margin-top:8px}img.i3-mask{object-fit:contain}@media (max-width:760px){.i3-engines{grid-template-columns:1fr}}.i3-ai~.muted{margin:6px 0 10px}#rail{background:var(--island);border-radius:var(--r);box-shadow:var(--shadow);flex-direction:column;grid-area:rail;gap:2px;padding:6px;display:flex;overflow-y:auto}#rail button{text-align:center;background:0 0;border-radius:12px;flex-direction:column;gap:3px;height:auto;padding:8px 2px;font-size:10.5px;line-height:1.1}#rail button:hover{background:var(--well)}#rail button.on{background:var(--ink);color:#fafafa}#rail button.on .lc{color:var(--mint)}#rail .spacer{flex:1;min-height:8px}#rail .pub{background:var(--mint);color:#0f0f0f}.hidden{display:none!important}.studio{flex-direction:column;gap:8px;display:flex}.studio .phead h3{text-transform:none;letter-spacing:-.01em;color:var(--text);justify-content:space-between;align-items:center;margin:0 0 2px;font-size:16px;display:flex}.studio .phead p{margin:0 0 6px}.studio .full{width:100%}.studio button.full,.studio button.primary.full{justify-content:center}.studio .pad{padding:10px 0}.studio .item small{color:var(--dim);font-size:11.5px;display:block}.studio .item .nm{flex-direction:column;display:flex}.scard{background:var(--canvas,var(--well));border-radius:12px;flex-direction:column;gap:6px;padding:10px;display:flex}.scard.off{opacity:.55}.scard p{margin:0;font-size:12.5px}.scard .rowb b{flex:1}.chipc{background:var(--ink);color:#fafafa;white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:11px}.chipx{background:var(--well);cursor:pointer;border:none;border-radius:8px;margin:2px 4px 0 0;padding:3px 8px;font-size:11.5px;display:inline-block}.chipx.f{background:#c9f7ea}.chipx.on{background:var(--ink);color:#fafafa}.ix{cursor:pointer;border:1px solid var(--well);border-radius:10px;padding:8px 10px}.ix.on{border-color:var(--ink)}.ix:hover{background:var(--well)}.tips{background:var(--well);border-radius:12px;flex-direction:column;gap:6px;padding:10px;font-size:12.5px;display:flex}.tips p{color:var(--dim);margin:0}.recipes{flex-wrap:wrap;gap:4px;display:flex}.stackf{flex-direction:column;gap:6px;display:flex}.stackf .rowb select{flex:1}.iotout pre{color:#d6d6d6;background:#0f0f0f;border-radius:8px;max-height:140px;margin:0 0 6px;padding:8px;font-size:11px;overflow:auto}.paths{flex-wrap:wrap;display:flex}input.num{width:52px}.grow{flex:1;min-width:0}.quota .bar,.bar{background:var(--well);border-radius:9px;height:6px;margin-top:4px;overflow:hidden}.quota .bar i,.bar i{background:var(--ink);height:100%;display:block}.quota{font-size:12.5px}.row{align-items:center;display:flex}.row.between{justify-content:space-between;gap:8px}.mcard{background:var(--well);border-radius:12px;overflow:hidden}.mcard img,.mthumb{aspect-ratio:16/9;object-fit:cover;background:#ddd;place-items:center;width:100%;display:grid}.mcard .mb{flex-direction:column;gap:4px;padding:8px 10px 10px;display:flex}.mcard small{color:var(--dim);font-size:11px}.mcard p{margin:0;font-size:12px}.chips{flex-wrap:wrap;display:flex}.kpis{grid-template-columns:1fr 1fr;gap:6px;display:grid}.kpis>div{background:var(--well);border-radius:10px;flex-direction:column;padding:8px 10px;display:flex}.kpis b{letter-spacing:-.02em;font-size:20px}.kpis small{color:var(--dim);font-size:11px}.bars{align-items:flex-end;gap:3px;height:70px;display:flex}.barc{flex:1;align-items:flex-end;height:100%;display:flex}.barc i{background:var(--ink);border-radius:3px 3px 1px 1px;width:100%;min-height:2px}.li{border-top:1px solid #0000000d;padding:4px 0}.ell{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.authbox{max-width:260px}textarea.persona{resize:vertical;width:100%;font:inherit;font-size:13px}button.mini.full{justify-content:center;width:100%;margin:4px 0}.actbody{width:100%;margin:-2px 0 6px;font-size:12px}.cond{grid-template-columns:64px 1fr;gap:4px;display:grid}@media (max-width:900px){#app{grid-template:"top""rail""view"60vh"left""right""status"18px/1fr}#rail{flex-direction:row;overflow-x:auto}#rail button{min-width:64px}#rail .spacer{display:none}}.studio .mini.primary{background:var(--ink);color:#fafafa}.studio a.mini{color:inherit;align-self:flex-start;text-decoration:none}.mimg{position:relative}.mbadge{background:var(--mint);color:#0f0f0f;border-radius:99px;padding:2px 8px;font-size:11px;font-weight:600;position:absolute;top:8px;left:8px}.mthumb{color:var(--mint);background:var(--ink)!important}.gate{z-index:200;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:radial-gradient(1200px 600px at 20% 10%,#00ffd033,#0000 60%),radial-gradient(900px 500px at 90% 90%,#4f8cff33,#0000 60%),#ededede6;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.gate-card{background:var(--island);border-radius:24px;flex-direction:column;gap:10px;width:min(400px,100%);padding:28px;display:flex;box-shadow:0 30px 80px #0003}.gate-card .brand{align-items:center;gap:8px;font-size:18px;font-weight:600;display:flex}.gate-card h2{letter-spacing:-.02em;margin:6px 0 0;font-size:24px}.gate-card p{margin:0 0 6px}.gate-card>a{text-align:center;margin-top:4px;font-size:13px;text-decoration:none}.rule{background:var(--well);border-radius:10px;flex-direction:column;gap:4px;margin-bottom:6px;padding:8px;display:flex}.rule textarea,.rule input{width:100%;font:inherit;font-size:12.5px}.rule select{flex:1;min-width:0}.lbl{color:var(--dim);margin:8px 0 4px;font-size:12px;display:block}
