:root{--bg: #0b0b0d;--panel: #111115;--border: rgba(255,255,255,.1);--text: rgba(255,255,255,.88);--muted: rgba(255,255,255,.6);--accent: #7c5cff;--danger: #ff4d4d;--ok: #2dd4bf;--shadow: 0 18px 60px rgba(0,0,0,.55);--radius: 14px;--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--sans);background:radial-gradient(1200px 900px at 30% 20%,#12121a 0%,var(--bg) 55%,#070709 100%);color:var(--text)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}hr{border:0;border-top:1px solid var(--border)}kbd{font-family:var(--mono);font-size:12px;padding:2px 6px;border:1px solid var(--border);border-bottom-color:#ffffff2e;border-radius:8px;background:#ffffff0a;color:#ffffffd1}.app{height:100vh;display:grid;grid-template-rows:56px 1fr 136px;gap:12px;padding:12px}.header{display:flex;align-items:center;justify-content:space-between;padding:0 14px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg,#ffffff0f,#ffffff08);box-shadow:var(--shadow)}.header .title{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.3px}.pill{font-family:var(--mono);font-size:12px;padding:3px 8px;border-radius:999px;border:1px solid var(--border);background:#ffffff08;color:var(--muted)}.layout{display:grid;grid-template-columns:340px 1fr 420px;gap:12px;min-height:0}.panel{display:flex;flex-direction:column;min-height:0;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg,#ffffff0b,#ffffff05);box-shadow:var(--shadow);overflow:hidden}.panelHeader{padding:12px 12px 10px;border-bottom:1px solid var(--border);background:#00000029;display:flex;align-items:center;justify-content:space-between;gap:10px}.panelHeader h3{margin:0;font-size:13px;letter-spacing:.24px;color:#fffc}.panelBody{padding:12px;flex:1;padding-bottom:calc(24px + env(safe-area-inset-bottom));overflow:auto;min-height:0}.viewerCell{position:relative;min-height:0}.viewerCanvasRoot{position:relative;width:100%;height:100%;min-height:0}.viewerInner{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:#060608;box-shadow:var(--shadow)}.viewerOverlayTop{position:absolute;top:12px;left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;pointer-events:none;z-index:5}.viewerOverlayTop>*{pointer-events:auto}.chip{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;border:1px solid var(--border);background:#00000073;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#ffffffc7;font-size:12px}.badge{font-family:var(--mono);font-size:11px;padding:2px 6px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff0d;color:#ffffffb8}.row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.label{font-size:12px;color:#ffffffb8}.help{font-size:12px;color:#ffffff8f;line-height:1.45}.small{font-size:12px;color:#ffffffa8}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:#ffffffdb;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .06s ease,background .15s ease,border-color .15s ease}.btn:hover{background:#ffffff14;border-color:#fff3}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:#7c5cff29;border-color:#7c5cff59}.btn.primary:hover{background:#7c5cff33;border-color:#7c5cff73}.btn.danger{background:#ff4d4d1f;border-color:#ff4d4d59}.btn.small{padding:7px 10px;border-radius:10px;font-size:12px}.input,select,textarea{width:100%;padding:8px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#00000059;color:#ffffffdb;outline:none}textarea{min-height:74px;resize:vertical}.input:focus,select:focus,textarea:focus{border-color:#7c5cff8c;box-shadow:0 0 0 3px #7c5cff26}.range{width:100%}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dropzone{border:1px dashed rgba(255,255,255,.22);border-radius:16px;padding:14px;background:#ffffff08;transition:border-color .15s ease,background .15s ease;cursor:pointer;-webkit-user-select:none;user-select:none}.dropzone:hover{border-color:#7c5cff8c;background:#7c5cff14}.dropzone.dragover{border-color:#2dd4bfa6;background:#2dd4bf14}.fileList{margin-top:10px;border-top:1px solid var(--border);padding-top:10px;display:flex;flex-direction:column;gap:6px}.fileItem{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#ffffff08}.fileItem .name{font-family:var(--mono);font-size:12px;color:#ffffffd1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fileItem .meta{font-family:var(--mono);font-size:11px;color:#ffffff8c;flex-shrink:0}.bottomBar{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg,#ffffff0b,#ffffff05);box-shadow:var(--shadow);padding:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.bottomLeft,.bottomRight{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.divider{width:1px;height:28px;background:var(--border)}.toast{position:fixed;right:16px;bottom:156px;max-width:520px;z-index:50;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:#0000008c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:10px 12px;color:#ffffffe0;box-shadow:var(--shadow);font-size:12px;line-height:1.45}.toast b{color:#fffffff2}.toast .muted{color:#ffffffa3}.tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tab{border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#ffffffc7;padding:6px 10px;border-radius:999px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px}.tab.active{border-color:#7c5cff73;background:#7c5cff29;color:#ffffffe0}.treeNode{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:10px;border:1px solid transparent;cursor:pointer;-webkit-user-select:none;user-select:none}.treeNode:hover{background:#ffffff0a;border-color:#ffffff14}.treeNode.selected{background:#7c5cff1f;border-color:#7c5cff40}.treeName{font-family:var(--mono);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iconBtn{border:1px solid rgba(255,255,255,.14);background:#ffffff0a;color:#fffc;border-radius:10px;padding:4px 8px;cursor:pointer;font-size:12px}.iconBtn:hover{background:#ffffff0f}.kv{display:grid;grid-template-columns:120px 1fr;gap:8px;font-size:12px;color:#ffffffc7}.kv .k{color:#ffffff94;font-family:var(--mono)}.kv .v{font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 1250px){.layout{grid-template-columns:320px 1fr}.layout>.right{display:none}}@media (max-width: 900px){.app{grid-template-rows:56px 1fr 180px}.layout{grid-template-columns:1fr}}.panelBody{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) rgba(0,0,0,0)}.panelBody::-webkit-scrollbar{width:6px;height:6px}.panelBody::-webkit-scrollbar-track{background:transparent}.panelBody::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:999px}.panelBody::-webkit-scrollbar-thumb:hover{background:#ffffff38}.mouseHelp{margin-top:10px;border:1px solid var(--border);background:#ffffff08;border-radius:12px;padding:10px 10px 12px}.mouseHelpTitle{font-weight:800;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.mouseHelpGrid{display:grid;grid-template-columns:1fr;gap:6px}.mouseHelpItem{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:10px;background:#00000038;border:1px solid rgba(255,255,255,.06)}.mouseHelpItem .k{font-weight:700;color:#ffffffd1;font-size:12px}.mouseHelpItem .v{color:#ffffff9e;font-size:12px}.mouseHelpNote{margin-top:8px;color:#ffffff8c;font-size:11px;line-height:1.3}.viewerEmptyOverlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;pointer-events:none;text-align:center;padding:20px}.viewerEmptyTitle{font-weight:900;font-size:16px;letter-spacing:.2px;color:#ffffffe6;background:#00000073;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:10px 14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.viewerEmptyText{max-width:520px;color:#ffffffb8;font-size:12px;line-height:1.45;background:#00000052;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:10px 12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.siteFooter{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-top:1px solid rgba(255,255,255,.08);background:#0000004d}.siteFooterLeft{display:flex;align-items:center;gap:10px;min-width:0}.siteFooterBrand{font-weight:800;font-size:12px;color:#ffffffe0;white-space:nowrap}.siteFooterTag{font-size:11px;color:#ffffff94;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.siteFooterRight{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.siteFooterRight a{font-size:11px;color:#a7c5ffeb;text-decoration:none;padding:4px 6px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a}.siteFooterRight a:hover{background:#ffffff12}@media (max-width: 720px){.siteFooter{padding:8px 10px}.siteFooterRight{gap:8px}}
