*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a0f;--bg-secondary: #12121a;--bg-card: #1a1a24;--border: #2a2a3a;--text: #e0e0e0;--text-muted: #888;--accent: #7c8aff;--card-width: 176px;--card-img-height: 176px}html,body{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#444}.app{display:flex;flex-direction:column;height:100vh}.topbar{height:50px;background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:12px}.topbar-left{display:flex;align-items:center;gap:10px}.topbar-center{flex:1;display:flex;justify-content:center;gap:16px}.topbar-right{display:flex;align-items:center;gap:10px}.logo{font-weight:700;font-size:1.2em;color:var(--accent);letter-spacing:1px}.btn{padding:7px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;font-size:.8em;font-weight:500;transition:all .15s ease}.btn:hover{border-color:var(--accent);color:var(--text)}.btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.btn-sm{padding:5px 10px;font-size:.75em}.search-input{width:300px;padding:9px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.9em}.search-input:focus{outline:none;border-color:var(--accent)}.search-input::placeholder{color:var(--text-muted)}.base-buttons{display:flex;gap:2px;background:var(--bg-card);border-radius:6px;padding:3px}.base-btn{padding:6px 14px;background:transparent;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:.8em;font-weight:600;transition:all .15s ease}.base-btn:hover{color:var(--text)}.base-btn.active{background:var(--accent);color:#fff}.view-bar{height:40px;background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px}.view-bar-spacer{width:120px}.sel-group{display:flex;align-items:center;gap:2px;background:var(--bg-card);border-radius:6px;padding:3px}.sel-btn{padding:5px 12px;background:transparent;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:.75em;font-weight:600;transition:all .15s ease}.sel-btn:hover{color:var(--text);background:#ffffff0d}.sel-btn.active{background:var(--accent);color:#fff}#sel-count{font-size:.7em;color:var(--accent);margin-left:6px;font-weight:600}.groups-bar{height:44px;background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:8px;overflow-x:auto}.group-btn{padding:6px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;color:var(--text-muted);cursor:pointer;font-size:.75em;font-weight:500;white-space:nowrap;flex-shrink:0;transition:all .15s ease}.group-btn:hover{border-color:var(--accent);color:var(--text)}.group-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.main-layout{display:flex;flex:1;overflow:hidden}.left-panel{width:84px;background:var(--bg-secondary);border-right:1px solid var(--border);overflow-y:auto;padding:10px 6px;flex-shrink:0}.lib-icon{width:68px;height:68px;margin:6px auto;border-radius:10px;background:var(--bg-card);border:2px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:all .15s ease;overflow:hidden}.lib-icon:hover{border-color:var(--accent)}.lib-icon.active{border-color:var(--accent);background:#7c8aff26}.lib-icon img{width:42px;height:42px;object-fit:cover;border-radius:6px}.lib-icon span{font-size:.6em;color:var(--text-muted);margin-top:4px;text-align:center;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center-panel{flex:1;display:flex;flex-direction:column;overflow:hidden}.view-tabs{display:flex;gap:6px}.view-tab{padding:7px 20px;background:transparent;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;font-size:.85em;font-weight:500;transition:all .15s ease}.view-tab:hover{color:var(--text);background:var(--bg-card)}.view-tab.active{background:var(--accent);color:#fff}.content-area{flex:1;overflow:hidden;position:relative}.grid-view{display:flex;flex-wrap:wrap;align-content:flex-start;gap:16px;padding:20px;overflow-y:auto;height:100%}.card{width:var(--card-width);flex-shrink:0;flex-grow:0;background:var(--bg-card);border-radius:10px;border:1px solid var(--border);overflow:hidden;cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;position:relative}.card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 20px #0000004d}.card.selected{border-color:var(--accent);box-shadow:0 0 0 3px #7c8aff66}.card-checkbox{position:absolute;top:10px;left:10px;width:24px;height:24px;border-radius:6px;background:#000000b3;border:2px solid var(--border);display:none;align-items:center;justify-content:center;z-index:5;transition:all .15s ease}.card-checkbox.visible{display:flex}.card-checkbox.checked{background:var(--accent);border-color:var(--accent)}.card-checkbox.checked:after{content:"✓";color:#fff;font-size:14px;font-weight:700}.card-image{width:var(--card-width);height:var(--card-img-height);background:linear-gradient(145deg,#1a1a24,#0a0a0f);position:relative;overflow:hidden}.card-placeholder{width:var(--card-width);height:var(--card-img-height);display:flex;align-items:center;justify-content:center;font-size:2.5em;font-weight:700;color:var(--accent);opacity:.5;text-transform:uppercase;background:linear-gradient(145deg,#1a1a24,#0a0a0f)}.card-img{width:var(--card-width);height:var(--card-img-height);object-fit:cover}.card-body{padding:12px}.card-ref{font-size:.75em;color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.card-name{font-size:.85em;color:var(--text);margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.tree-view{padding:20px;overflow-y:auto;height:100%}.tree-group{margin-bottom:12px}.tree-header{display:flex;align-items:center;padding:10px 12px;cursor:pointer;border-radius:8px;background:var(--bg-card);transition:background .15s ease}.tree-header:hover{background:var(--bg-secondary)}.tree-toggle{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:1em;font-weight:700;flex-shrink:0}.tree-group-name{flex:1;font-weight:500}.tree-count{font-size:.75em;color:var(--text-muted);background:var(--bg-secondary);padding:4px 10px;border-radius:12px}.tree-items{display:none;margin-left:28px;margin-top:4px}.tree-items.expanded{display:block}.tree-item{display:flex;align-items:center;padding:8px 12px;cursor:pointer;border-radius:6px;margin:3px 0;gap:10px;transition:background .15s ease}.tree-item:hover{background:var(--bg-card)}.tree-item.selected{background:#7c8aff26}.tree-img{width:32px;height:32px;border-radius:6px;object-fit:cover;flex-shrink:0;background:var(--bg-card)}.tree-placeholder{width:32px;height:32px;border-radius:6px;background:var(--bg-card);display:flex;align-items:center;justify-content:center;font-size:.9em;font-weight:600;color:var(--accent)}.tree-name{font-size:.9em}.graph-view{width:100%;height:100%;position:relative}.graph-view svg{width:100%;height:100%;display:block;background:var(--bg)}.node{cursor:pointer}.node text{fill:var(--text-muted);pointer-events:none;font-size:11px}.node.selected circle{stroke:var(--accent);stroke-width:4}.link{stroke-opacity:.5}.detail-panel{width:0;background:var(--bg-secondary);border-left:1px solid var(--border);overflow-y:auto;overflow-x:hidden;transition:width .3s ease;flex-shrink:0}.detail-panel.open{width:360px}.detail-header{position:relative;width:100%;height:220px;background:linear-gradient(145deg,var(--bg-card) 0%,var(--bg) 100%);overflow:hidden}.detail-placeholder{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:5em;font-weight:700;color:var(--accent);opacity:.4;text-transform:uppercase}.detail-img{width:100%;height:100%;object-fit:cover}.detail-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:#000000b3;border:none;color:#fff;cursor:pointer;font-size:20px;z-index:5;transition:background .15s ease}.detail-close:hover{background:#000000e6}.detail-body{padding:20px}.detail-ref{font-size:1.2em;color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:1px}.detail-mrf{font-size:.7em;color:var(--text-muted);margin-top:8px;font-family:monospace;word-break:break-all;cursor:pointer;padding:8px 10px;background:var(--bg-card);border-radius:6px;transition:color .15s ease}.detail-mrf:hover{color:var(--accent)}.detail-name{font-size:1.3em;color:var(--text);margin-top:16px;font-weight:500}.detail-desc{font-size:.9em;color:var(--text-muted);margin-top:12px;line-height:1.7}.detail-section{margin-top:24px}.detail-section h4{font-size:.75em;color:var(--text-muted);text-transform:uppercase;margin-bottom:12px;font-weight:600;letter-spacing:.5px}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.tag-chip{padding:7px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;font-size:.8em;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.tag-chip:hover{border-color:var(--accent);color:var(--text)}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%);background:var(--accent);color:#fff;padding:14px 28px;border-radius:10px;font-size:.9em;font-weight:500;opacity:0;transition:opacity .3s ease;z-index:1000;pointer-events:none}.toast.show{opacity:1}.modal{position:fixed;inset:0;background:#000000d9;display:none;align-items:center;justify-content:center;z-index:100}.modal.open{display:flex}.modal-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:14px;width:90%;max-width:620px;max-height:80vh;overflow:hidden}.modal-header{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-header h3{font-size:1.15em;color:var(--text);font-weight:600}.modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1.5em;padding:4px 8px}.modal-close:hover{color:var(--text)}.modal-body{padding:22px;overflow-y:auto;max-height:calc(80vh - 65px)}.api-item{margin-bottom:18px}.api-endpoint{font-family:monospace;font-size:.9em;color:var(--accent);background:var(--bg-card);padding:12px 14px;border-radius:8px}.api-desc{font-size:.85em;color:var(--text-muted);margin-top:8px}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted);gap:16px;padding:40px}.loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);gap:14px;font-size:1em}.loading:after{content:"";width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}select{padding:6px 12px;border:1px solid var(--border);border-radius:4px;background:var(--bg-card);color:var(--text);font-size:.8em;cursor:pointer}select:focus{outline:none;border-color:var(--accent)}.graph-options{padding:10px;overflow-y:auto;width:180px}.graph-section{margin-bottom:16px}.graph-section-title{font-size:.7em;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border)}.graph-stat{display:flex;justify-content:space-between;font-size:.75em;color:var(--text-muted);margin-bottom:4px}.graph-stat-value{color:var(--text);font-weight:600}.graph-checkbox{display:flex;align-items:center;gap:8px;font-size:.75em;color:var(--text-muted);margin-bottom:6px;cursor:pointer}.graph-checkbox:hover{color:var(--text)}.graph-checkbox input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.graph-checkbox .color-dot{width:10px;height:10px;border-radius:50%;margin-right:4px}.graph-slider{margin-bottom:12px}.graph-slider-label{display:flex;justify-content:space-between;font-size:.7em;color:var(--text-muted);margin-bottom:4px}.graph-slider-value{color:var(--text);font-weight:600}.graph-slider input[type=range]{width:100%;height:4px;background:var(--border);border-radius:2px;-webkit-appearance:none;cursor:pointer}.graph-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:var(--accent);border-radius:50%;cursor:pointer}.left-panel.graph-mode{width:180px}
