:root{--bg:#fff;--panel:#f7f7f8;--panel2:#efeff1;--border:#e3e3e6;--text:#1f1f1f;--muted:#6b6f76;--accent:#1a73e8;--accent-bg:#e8f0fe;--ok:#1e8e3e;--ok-bg:#e6f4ea;--warn:#b05a00;--warn-bg:#fef3e0;--err:#d93025;--err-bg:#fce8e6;--shadow:0 8px 28px #00000024, 0 1px 3px #00000014;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--top:48px;--status:28px;--side:280px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#161616;--panel:#1d1e20;--panel2:#26272a;--border:#303135;--text:#e7e7e7;--muted:#9aa1ab;--accent:#4f9dff;--accent-bg:#1c2b44;--ok:#5cc77a;--ok-bg:#18301f;--warn:#f0a04b;--warn-bg:#3a2a14;--err:#ff6b5e;--err-bg:#3d1d1a;--shadow:0 8px 28px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font:13px/1.45 var(--font);-webkit-text-size-adjust:100%;margin:0;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.hidden,[hidden]{display:none!important}kbd{font:11px var(--mono);border:1px solid var(--border);background:var(--panel);border-bottom-width:2px;border-radius:4px;padding:1px 5px}#app{grid-template-rows:var(--top) auto 1fr var(--status);display:grid;position:fixed;inset:0}.top{border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:8px;min-width:0;padding:0 10px;display:flex}.brand{white-space:nowrap;align-items:center;gap:8px;margin-right:4px;font-size:14px;font-weight:650;display:flex}.brand svg{flex:none}.btn{white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:6px;height:32px;padding:0 10px;display:inline-flex}.btn:hover:not(:disabled){background:var(--panel2)}.btn:disabled{opacity:.45;cursor:default}.btn.outline{border-color:var(--border)}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover:not(:disabled){filter:brightness(1.07);background:var(--accent)}.btn.icon{width:32px;padding:0}.btn.danger{color:var(--err)}.btn .spin{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.file-btn{text-overflow:ellipsis;max-width:260px;font-weight:500;overflow:hidden}.file-btn span{text-overflow:ellipsis;overflow:hidden}.seg{background:var(--panel2);border-radius:8px;flex:none;padding:2px;display:inline-flex}.seg button{height:28px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:0 12px}.seg button[aria-pressed=true]{background:var(--bg);color:var(--text);font-weight:550;box-shadow:0 1px 2px #0000001f}.spacer{flex:1;min-width:4px}.menu-wrap{position:relative}.menu{background:var(--bg);border:1px solid var(--border);min-width:230px;box-shadow:var(--shadow);z-index:50;border-radius:10px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.menu.left{left:0;right:auto}.menu button{text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.menu button:hover,.menu button:focus-visible{background:var(--panel2);outline:none}.menu button small{color:var(--muted);margin-left:auto}.menu hr{border:0;border-top:1px solid var(--border);margin:6px 4px}.menu .sub{color:var(--muted);padding:4px 10px 2px;font-size:11px}.banner{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:6px 12px;font-size:12.5px;display:flex}.banner.warn{background:var(--warn-bg);color:var(--warn)}.banner.err{background:var(--err-bg);color:var(--err)}.banner.info{background:var(--accent-bg);color:var(--accent)}.banner .btn{height:24px;color:inherit;padding:0 8px}.banner .msg{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.main{grid-template-columns:var(--side) 1fr;min-height:0;display:grid;position:relative}.side{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;min-height:0;display:flex}.search{padding:10px 10px 6px;position:relative}.search input{border:1px solid var(--border);background:var(--bg);border-radius:8px;width:100%;height:32px;padding:0 30px}.search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.search .ico{color:var(--muted);pointer-events:none;position:absolute;top:18px;left:20px}.search .clear{width:24px;height:24px;color:var(--muted);background:0 0;border:0;border-radius:5px;position:absolute;top:14px;right:14px}.results{border-bottom:1px solid var(--border);max-height:50%;padding:0 6px 6px;overflow:auto}.results button{text-align:left;background:0 0;border:0;border-radius:6px;align-items:baseline;gap:8px;width:100%;padding:6px 8px;display:flex}.results button:hover,.results button.active{background:var(--panel2)}.results .k{color:var(--muted);flex:none;width:34px;font-size:11px}.results .where{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:45%;margin-left:auto;font-size:11px;overflow:hidden}.results .none{color:var(--muted);padding:8px}.section-h{letter-spacing:.04em;color:var(--muted);text-transform:uppercase;align-items:center;gap:6px;padding:8px 12px 4px;font-size:11px;font-weight:600;display:flex}.section-h .btn{text-transform:none;letter-spacing:0;height:22px;padding:0 6px;font-weight:500}.tree{-webkit-user-select:none;user-select:none;flex:1;min-height:80px;padding:0 6px 8px;overflow:auto}.row{cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:4px;height:30px;padding:0 6px;display:flex}.row:hover{background:var(--panel2)}.row.current{background:var(--accent-bg);color:var(--accent);font-weight:550}.row.sel{box-shadow:inset 0 0 0 1.5px var(--accent)}.row .tw{width:16px;height:16px;color:var(--muted);background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.row .tw.leaf{visibility:hidden}.row .chk{width:16px;height:16px;accent-color:var(--accent);flex:none}.row .nm{text-overflow:ellipsis;overflow:hidden}.row .ct{color:var(--muted);margin-left:auto;padding-left:8px;font-size:11px;font-weight:400}.row .dot{border-radius:50%;flex:none;width:8px;height:8px}.row input.rename{border:1px solid var(--accent);background:var(--bg);border-radius:5px;flex:1;min-width:0;height:24px;padding:0 6px}.batch{border-top:1px solid var(--border);background:var(--accent-bg);color:var(--accent);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;display:flex}.batch .btn{height:28px;color:inherit;border-color:currentColor}.batch .n{margin-right:auto;font-weight:600}.info{border-top:1px solid var(--border);background:var(--bg);max-height:42%;padding:10px 12px 12px;overflow:auto}.info h3{word-break:break-all;flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin:0 0 2px;font-size:14px;display:flex}.info h3 small{color:var(--muted);font-size:11.5px;font-weight:400}.info .meta{color:var(--muted);margin-bottom:6px;font-size:12px}.info table{border-collapse:collapse;width:100%;font-size:12px}.info td{border-top:1px solid var(--border);vertical-align:top;padding:3px 4px}.info td:first-child{color:var(--muted);width:38%}.info .netlink{color:var(--accent);text-align:left;background:0 0;border:0;padding:0}.info .netlink:hover{text-decoration:underline}.info .acts{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.info .acts .btn{height:28px}.info .newblk{flex-wrap:wrap;gap:6px;width:100%;display:flex}.info .newblk input{min-width:0;height:28px;font:inherit;text-align:left;cursor:text;flex:120px}.info .empty{color:var(--muted);font-size:12px}.stage{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.crumbs{border-bottom:1px solid var(--border);background:var(--bg);white-space:nowrap;scrollbar-width:none;align-items:center;gap:2px;min-height:38px;padding:6px 10px;display:flex;overflow-x:auto}.crumbs::-webkit-scrollbar{display:none}.crumbs button.c{color:var(--muted);background:0 0;border:0;border-radius:5px;padding:3px 6px}.crumbs button.c:hover{background:var(--panel2);color:var(--text)}.crumbs button.c.last{color:var(--text);font-weight:600}.crumbs .sep{color:var(--muted)}.crumbs .up{margin-left:auto}.canvas{flex:1;min-height:0;position:relative}.viewer{touch-action:none;cursor:grab;outline:none;position:absolute;inset:0;overflow:hidden}.viewer.panning{cursor:grabbing}.viewer svg{display:block}.zoombar{background:var(--bg);border:1px solid var(--border);border-radius:9px;gap:2px;padding:3px;display:flex;position:absolute;bottom:12px;right:12px;box-shadow:0 2px 8px #00000014}.zoombar .btn{min-width:30px;height:30px;padding:0 6px}.legend{color:var(--muted);background:color-mix(in srgb, var(--bg) 90%, transparent);border:1px solid var(--border);border-radius:8px;max-width:calc(100% - 200px);padding:6px 10px;font-size:11.5px;position:absolute;bottom:12px;left:12px}.hoverinfo{background:var(--bg);border:1px solid var(--border);pointer-events:none;text-overflow:ellipsis;white-space:nowrap;border-radius:7px;max-width:70%;padding:4px 9px;font-size:12px;position:absolute;top:10px;left:12px;overflow:hidden;box-shadow:0 2px 8px #00000014}.status{border-top:1px solid var(--border);background:var(--panel);color:var(--muted);white-space:nowrap;align-items:center;gap:14px;padding:0 12px;font-size:12px;display:flex;overflow:hidden}.status .dot{background:var(--ok);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.status .dot.warn{background:var(--warn)}.status .dot.err{background:var(--err)}.status .ok{color:var(--ok)}.status .bad{color:var(--err)}.status button{color:inherit;background:0 0;border:0;padding:0}.status button:hover{color:var(--text);text-decoration:underline}.status .r{margin-left:auto}.welcome{background:var(--bg);flex-direction:column;align-items:center;padding:6vh 20px 40px;display:flex;position:absolute;inset:0;overflow:auto}.drop{border:2px dashed var(--border);text-align:center;background:var(--panel);border-radius:16px;width:min(620px,100%);padding:38px 24px;transition:border-color .15s,background .15s}.drop h1{margin:10px 0 6px;font-size:20px;font-weight:650}.drop p{color:var(--muted);margin:0 0 18px}.drop .acts{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.drop .acts .btn{height:38px;padding:0 16px}.drop .lock{color:var(--muted);justify-content:center;align-items:center;gap:6px;margin-top:18px;font-size:12px;display:flex}.iopts{text-align:left;border:0;max-width:420px;margin:20px auto 0;padding:0}.iopts legend{letter-spacing:.04em;color:var(--muted);margin:0 0 4px 2px;padding:0;font-size:11px;font-weight:600}.modal .iopts{max-width:none;margin:12px 0 0}.sw{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:9px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;padding:8px 10px;display:grid}.sw:hover{background:var(--panel2)}.sw input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.sw .knob{background:var(--border);border-radius:10px;grid-row:1/span 2;width:34px;height:20px;transition:background .15s;position:relative}.sw .knob:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.sw input:checked+.knob{background:var(--accent)}.sw input:checked+.knob:after{transform:translate(14px)}.sw input:focus-visible+.knob{outline:2px solid var(--accent);outline-offset:2px}.sw .tx{font-weight:550}.sw .ex{color:var(--muted);font:11.5px var(--mono);grid-column:2}.menu button .ck{border:1.5px solid var(--muted);border-radius:4px;flex:none;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.menu button[aria-checked=true] .ck{background:var(--accent);border-color:var(--accent)}.menu button[aria-checked=true] .ck:after{content:"";border-top:0;border-bottom:2px solid #fff;border-left:2px solid #fff;border-right:0;width:8px;height:4px;transform:translateY(-1px)rotate(-45deg)}.menu button:disabled{color:var(--muted);opacity:.6}.menu button[aria-busy=true] .ck{border-color:var(--accent);background:0 0;border-top-color:#0000;border-radius:50%;animation:.7s linear infinite spin}.menu button[aria-busy=true] .ck:after{display:none}.menu .note{color:var(--warn,#b26a00);margin:0 10px 4px 36px;font-size:11.5px;line-height:1.4}.recent{width:min(620px,100%);margin-top:26px}.recent h2{color:var(--muted);margin:0 0 6px 4px;font-size:12px;font-weight:600}.recent .item{cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:9px 10px;display:flex}.recent .item:hover{background:var(--panel2)}.recent .item .nm{text-overflow:ellipsis;white-space:nowrap;font-weight:550;overflow:hidden}.recent .item .sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.recent .item .tx{flex:1;min-width:0}.recent .item .when{color:var(--muted);white-space:nowrap;font-size:12px}.recent .item .x{opacity:0}.recent .item:hover .x,.recent .item:focus-within .x{opacity:1}.dropping .drop-overlay{display:flex}.drop-overlay{z-index:80;background:color-mix(in srgb, var(--accent) 12%, transparent);border:3px dashed var(--accent);pointer-events:none;color:var(--accent);justify-content:center;align-items:center;font-size:18px;font-weight:600;display:none;position:fixed;inset:0}.overlay{z-index:30;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.card{background:var(--bg);border:1px solid var(--border);width:min(440px,100% - 32px);box-shadow:var(--shadow);border-radius:14px;padding:22px}.card h2{margin:0 0 6px;font-size:15px}.card p{color:var(--muted);word-break:break-word;margin:0 0 12px}.bar{background:var(--panel2);border-radius:3px;height:6px;margin:12px 0 8px;overflow:hidden}.bar i{background:var(--accent);width:0;height:100%;transition:width .2s;display:block}.card .row2{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.card .acts{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.card.err h2{color:var(--err)}.modal-bg{z-index:90;background:#00000059;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--bg);width:min(720px,100%);max-height:calc(100% - 32px);box-shadow:var(--shadow);border:1px solid var(--border);border-radius:14px;flex-direction:column;display:flex}.modal header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:12px 14px;font-weight:600;display:flex}.modal header .btn{margin-left:auto}.modal .body{padding:14px;overflow:auto}.modal footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.modal textarea{resize:vertical;width:100%;height:320px;font:12px/1.5 var(--mono);border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:10px}.modal textarea:focus{border-color:var(--accent);outline:none}.src{font:12px/1.6 var(--mono);white-space:pre;background:var(--panel);border-radius:8px;padding:8px 0;overflow:auto}.src div{padding:0 12px}.src .ln{width:52px;color:var(--muted);-webkit-user-select:none;user-select:none;display:inline-block}.src .hit{background:var(--warn-bg)}.warnlist button{text-align:left;background:0 0;border:0;border-radius:6px;gap:10px;width:100%;padding:7px 8px;display:flex}.warnlist button:hover{background:var(--panel2)}.warnlist .ln{color:var(--muted);font:12px var(--mono);flex:none;width:56px}.warnlist .e{color:var(--err)}.keys td{padding:4px 10px 4px 0}.keys h4{color:var(--muted);margin:12px 0 4px;font-size:12px}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field label{color:var(--muted);font-size:12px}.field input{border:1px solid var(--border);background:var(--panel);border-radius:7px;height:32px;padding:0 8px}.toasts{left:50%;bottom:calc(var(--status) + 14px);z-index:95;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 24px);display:flex;position:fixed;transform:translate(-50%)}.toast{pointer-events:auto;color:#f1f1f1;box-shadow:var(--shadow);background:#2b2c2f;border-radius:10px;align-items:center;gap:12px;padding:9px 14px;font-size:13px;animation:.18s ease-out tin;display:flex}.toast.err{background:#b3261e}.toast.ok{background:#1e6e35}.toast button{color:inherit;background:#ffffff29;border:0;border-radius:6px;padding:4px 10px;font-weight:600}@keyframes tin{0%{opacity:0;transform:translateY(6px)}}.only-mobile{display:none!important}.scrim{display:none}@media (width<=760px){:root{--top:52px;--status:30px}.only-mobile{display:inline-flex!important}.only-desktop{display:none!important}.brand .bt{display:none}.top{gap:4px;padding:0 6px}.file-btn{max-width:34vw}.main{grid-template-columns:1fr}.side{z-index:60;width:min(86vw,340px);box-shadow:var(--shadow);padding-top:env(safe-area-inset-top);transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-102%)}body.drawer .side{transform:none}body.drawer .scrim{z-index:55;background:#00000059;display:block;position:fixed;inset:0}.btn,.seg button{min-height:40px}.btn.icon{width:40px}.seg button{padding:0 10px}.row{height:40px}.results button{padding:10px 8px}.zoombar{bottom:calc(12px + env(safe-area-inset-bottom))}.zoombar .btn{min-width:40px;height:40px}.legend,.status .hide-m{display:none}.sheet{left:0;right:0;bottom:var(--status);z-index:40;background:var(--bg);border-top:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px 14px 0 0;max-height:60vh;padding:4px 14px 14px;position:fixed;overflow:auto}.sheet .grab{background:var(--border);border-radius:2px;width:36px;height:4px;margin:6px auto 8px}.sheet.min .full{display:none}.menu{top:auto;bottom:calc(var(--status) + 8px);min-width:0;padding-bottom:calc(6px + env(safe-area-inset-bottom));position:fixed;left:8px!important;right:8px!important}.menu button{padding:12px 10px}.sw{padding:11px 10px}.menu{max-height:calc(100% - var(--top) - var(--status) - 24px);overflow:auto}.toasts{bottom:calc(var(--status) + 70px)}}.only-mobile[hidden],.only-desktop[hidden],.sheet[hidden]{display:none!important}@media (width<=760px){.sheet[hidden]{display:none!important}.sheet:not([hidden]){display:block!important}.sheet .info{background:0 0;border:0;max-height:none;padding:0}.sheet.min .info table,.sheet.min .info .empty{display:none}.toasts{top:calc(var(--top) + 8px + env(safe-area-inset-top));bottom:auto}}
