.wrap{max-width:1060px;margin:0 auto;padding:1.25rem 1.25rem 3rem}.bk a{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--text-muted);font-size:.75rem;text-decoration:none;margin-bottom:1rem}.hero{text-align:center;padding:.5rem 0 .75rem}.hero h1{font-size:1.5rem;font-weight:800;letter-spacing:-.04em;margin-bottom:.15rem}.hero h1 span{color:var(--accent)}.hero p{color:var(--text-muted);font-size:.82rem;max-width:540px;margin:0 auto}.cd{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:10px;animation:fadeUp .2s ease backwards}.ct{font-size:.85rem;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:6px;justify-content:space-between;flex-wrap:wrap}.st{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:12px}.sc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;text-align:center}.sv{font-size:1.2rem;font-weight:800;font-family:var(--mono)}.sl{font-size:.58rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}table.dt{width:100%;border-collapse:collapse;font-size:.78rem}.dt th{padding:7px 10px;text-align:left;border-bottom:2px solid var(--border);color:var(--text-dim);font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;cursor:pointer;user-select:none;white-space:nowrap}.dt th:hover{color:var(--accent)}.dt th .sort-arrow{font-size:.5rem;margin-left:3px;opacity:.4}.dt th.sorted .sort-arrow{opacity:1;color:var(--accent)}.dt td{padding:6px 10px;border-bottom:1px solid var(--border);color:var(--text-muted)}.dt tr:hover td{background:var(--card)}.tg{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.6rem;font-weight:600}.tg-g{background:#47e88a1a;color:var(--accent)}.tg-r{background:#f26b5e1a;color:var(--coral)}.tg-a{background:#f5c5421a;color:var(--amber)}.tg-b{background:#4a9cf51a;color:#4a9cf5}.tg-p{background:#8f7af51a;color:var(--accent2)}.tg-t{background:#2ae8b514;color:var(--accent)}.pill-row{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:10px}.pill{padding:5px 12px;border-radius:8px;border:1px solid var(--border);background:0 0;color:var(--text-dim);font-size:.72rem;cursor:pointer;font-family:var(--font);transition:.12s}.pill:hover{border-color:var(--border);color:var(--text-muted)}.pill.on{border-color:var(--accent-soft);background:var(--accent-soft);color:var(--accent)}.inp{padding:9px 13px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:.82rem;outline:0;width:100%}.inp:focus{border-color:var(--accent)}.inp::placeholder{color:var(--text-dim)}.btn{padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);color:var(--text-muted);font-size:.75rem;cursor:pointer;font-family:var(--font);transition:.12s;display:inline-flex;align-items:center;gap:5px}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:700}.btn-primary:hover{filter:brightness(1.1)}.btn:disabled,.btn-primary:disabled{opacity:.5;cursor:not-allowed;filter:none}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.scroll-x::-webkit-scrollbar{height:4px}.scroll-x::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.obj-search-wrap{position:relative;margin-bottom:10px}.obj-dropdown{position:absolute;top:100%;left:0;right:0;max-height:280px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);z-index:20;display:none}.obj-dropdown.open{display:block}.obj-dropdown::-webkit-scrollbar{width:4px}.obj-dropdown::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.obj-opt{padding:8px 14px;font-size:.82rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:.1s}.obj-opt:hover{background:var(--card)}.obj-opt.selected{background:var(--accent-soft)}.obj-opt .obj-api{font-family:var(--mono);font-size:.72rem;color:var(--text-muted)}.obj-opt .obj-lbl{color:var(--text)}.obj-opt .obj-prefix{font-family:var(--mono);font-size:.6rem;color:var(--text-dim);margin-left:8px}.obj-opt .obj-custom{font-size:.55rem;padding:1px 5px;border-radius:3px;background:#8f7af51a;color:var(--accent2);font-weight:600;margin-left:6px}.sel-chips{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px;min-height:30px}.sel-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;background:var(--accent-soft);border:1px solid rgba(0,221,179,.15);color:var(--accent);font-size:.72rem;font-weight:600}.sel-chip button{background:0 0;border:0;color:var(--accent);cursor:pointer;font-size:.85rem;padding:0 2px;line-height:1;opacity:.7}.sel-chip button:hover{opacity:1}.vtabs{display:flex;gap:3px;margin-bottom:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}.vtabs::-webkit-scrollbar{display:none}.vtab{padding:7px 14px;border-radius:8px;border:1px solid var(--border);background:0 0;color:var(--text-dim);font-size:.72rem;cursor:pointer;font-family:var(--font);transition:.12s;white-space:nowrap;flex-shrink:0}.vtab:hover{border-color:var(--border);color:var(--text-muted)}.vtab.on{border-color:var(--accent-soft);background:var(--accent-soft);color:var(--accent)}.vpane{display:none}.vpane.show{display:block}.rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.rel-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px}.rel-dir{font-size:.58rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;margin-bottom:4px}.rel-dir.parent{color:var(--accent2)}.rel-dir.child{color:var(--amber)}.rel-name{font-size:.85rem;font-weight:700;color:var(--text);margin-bottom:2px}.rel-detail{font-size:.72rem;color:var(--text-muted);font-family:var(--mono)}.dist-row{display:flex;align-items:center;gap:10px;margin-bottom:6px;font-size:.78rem}.dist-label{width:100px;flex-shrink:0;color:var(--text-muted);text-align:right;font-size:.72rem}.dist-bar-wrap{flex:1;height:18px;background:var(--border);border-radius:4px;overflow:hidden;position:relative}.dist-bar{height:100%;border-radius:4px;min-width:2px;transition:width .3s}.dist-count{width:40px;flex-shrink:0;font-family:var(--mono);font-size:.72rem;color:var(--text-dim);text-align:right}.obj-section{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:10px;overflow:hidden}.obj-header{padding:12px 16px;background:var(--card);display:flex;align-items:center;gap:10px;cursor:pointer;transition:.12s;font-size:.85rem;font-weight:700}.obj-header:hover{background:var(--border)}.obj-header .obj-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.obj-header .field-count{margin-left:auto;font-size:.65rem;color:var(--text-dim);font-weight:400}.obj-header .toggle-icon{color:var(--text-dim);font-size:.7rem;transition:.2s}.obj-header.open .toggle-icon{transform:rotate(90deg);color:var(--accent)}.obj-body{display:none;padding:0}.obj-body.show{display:block}.obj-meta{padding:10px 16px;font-size:.78rem;color:var(--text-dim);border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px}.obj-meta strong{color:var(--text)}.sum-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin-bottom:10px}.sum-item{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border);font-size:.78rem}.sum-item:last-child{border:0}.sum-key{color:var(--text-dim)}.sum-val{color:var(--text);font-weight:600;font-family:var(--mono);font-size:.72rem}.gen-progress{margin:20px 0;text-align:center}.gen-bar-wrap{width:100%;max-width:400px;height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin:8px auto}.gen-bar{height:100%;background:var(--accent);border-radius:3px;transition:width .3s}.gen-status{font-size:.78rem;color:var(--text-muted);margin-top:6px}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (max-width:600px){.st{grid-template-columns:1fr 1fr}.hero h1{font-size:1.3rem}.rel-grid{grid-template-columns:1fr}}