:root{--bg:#fff;--bg2:#f7f6f3;--bg-hover:#37352f0a;--bg-active:#37352f0f;--border:#e9e9e7;--text:#37352f;--text2:#787774;--text3:#b4b4b0;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Helvetica, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font:14px/1.6 var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:0;outline:none}button:focus-visible{outline:2px solid var(--text3);outline-offset:1px;border-radius:3px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#00000014;border-radius:3px}::selection{background:#37352f14}.app{flex-direction:column;min-height:100vh;display:flex}.header{z-index:100;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#fffffff5;position:sticky;top:0}.header-inner{align-items:center;gap:20px;max-width:1100px;height:48px;margin:0 auto;padding:0 32px;display:flex}.logo{flex-shrink:0;align-items:center;gap:6px;display:flex}.logo-text{color:var(--text);letter-spacing:-.2px;font-size:14px;font-weight:600}.search-bar{background:var(--bg2);border:1px solid #0000;border-radius:4px;flex:1;align-items:center;gap:6px;max-width:340px;height:30px;padding:0 8px;transition:all .15s;display:flex}.search-bar:focus-within{background:var(--bg);border-color:var(--border)}.search-icon{color:var(--text3);flex-shrink:0}.search-bar input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:13px}.search-bar input::placeholder{color:var(--text3)}.search-clear{color:var(--text3);padding:0;font-size:15px;line-height:1}.search-clear:hover{color:var(--text2)}.search-kbd{color:var(--text3);border:1px solid var(--border);background:var(--bg);border-radius:3px;padding:0 4px;font-size:10px;line-height:1.5}.header-meta{margin-left:auto}.meta-count{color:var(--text3);font-size:12px}.container{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:0 32px}.cat-bar{border-bottom:1px solid var(--border);scrollbar-width:none;align-items:center;gap:0;padding:0;display:flex;overflow-x:auto}.cat-bar::-webkit-scrollbar{display:none}.cb-item{color:var(--text2);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:4px;margin-bottom:-1px;padding:8px 12px;font-size:13px;transition:color .1s;display:flex}.cb-item:hover{color:var(--text)}.cb-item.active{color:var(--text);border-bottom-color:var(--text);font-weight:500}.cb-num{color:var(--text3);font-size:11px}.cb-arrow{color:var(--text3);margin-left:1px;font-size:11px;transition:transform .15s;display:inline-block}.cb-arrow.open{transform:rotate(90deg)}.cb-group{position:relative}.cb-dropdown{background:var(--bg);border:1px solid var(--border);z-index:50;border-radius:4px;min-width:150px;padding:4px 0;animation:.12s dropIn;position:absolute;top:calc(100% + 1px);left:0;box-shadow:0 4px 12px #00000014,0 0 0 1px #00000005}@keyframes dropIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cb-sub{width:100%;color:var(--text2);justify-content:space-between;align-items:center;padding:5px 12px;font-size:13px;transition:background 80ms;display:flex}.cb-sub:hover{background:var(--bg-hover);color:var(--text)}.cb-sub.active{color:var(--text);font-weight:500}.cb-sub .cb-num{margin-left:auto;padding-left:10px}.main{padding:16px 0 48px}.controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.controls-left{align-items:baseline;gap:8px;display:flex}.controls-right{align-items:center;gap:6px;display:flex}.page-title{color:var(--text);font-size:16px;font-weight:600}.result-count{color:var(--text3);font-size:13px}.sort-group{gap:1px;display:flex}.sort-btn{color:var(--text3);border-radius:3px;padding:3px 8px;font-size:12px;transition:all .1s}.sort-btn:hover{color:var(--text2);background:var(--bg-hover)}.sort-btn.active{color:var(--text);background:var(--bg-active)}.view-toggle{gap:1px;display:flex}.vt-btn{color:var(--text3);border-radius:3px;align-items:center;padding:4px 6px;transition:all .1s;display:flex}.vt-btn:hover{color:var(--text2);background:var(--bg-hover)}.vt-btn.active{color:var(--text)}.loading,.empty{text-align:center;color:var(--text3);padding:80px 20px;font-size:13px}.cat-overview{flex-direction:column;gap:28px;display:flex}.co-header{margin-bottom:8px}.co-title{color:var(--text3);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.co-grid{background:var(--border);border:1px solid var(--border);border-radius:4px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1px;display:grid;overflow:hidden}.co-cat{background:var(--bg);cursor:pointer;padding:14px 16px;transition:background .1s}.co-cat:hover{background:var(--bg2)}.co-cat-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.co-cat-name{color:var(--text);font-size:13px;font-weight:500}.co-cat-count{color:var(--text3);font-size:11px}.co-cat-tools{flex-wrap:wrap;gap:4px;display:flex}.co-tool{color:var(--text2);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;overflow:hidden}.co-tool:not(:last-child):after{content:"·";color:var(--text3);margin-left:4px}.tool-grid{background:var(--border);border:1px solid var(--border);border-radius:4px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1px;display:grid;overflow:hidden}.tool-card{background:var(--bg);flex-direction:column;padding:14px 16px;transition:background .1s;display:flex}.tool-card:hover{background:var(--bg2)}.card-link{flex:1;display:block}.card-header{align-items:center;gap:8px;margin-bottom:5px;display:flex}.tool-initial{background:var(--bg2);width:24px;height:24px;color:var(--text2);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.tool-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;transition:color .1s;overflow:hidden}.card-link:hover .tool-name{text-decoration:underline}.badge{color:var(--text3);background:var(--bg-active);border-radius:3px;flex-shrink:0;padding:0 4px;font-size:10px;font-weight:500;line-height:16px}.tool-desc{color:var(--text2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.6;display:-webkit-box;overflow:hidden}.card-footer{justify-content:space-between;align-items:center;gap:6px;margin-top:8px;display:flex}.card-right{align-items:center;gap:6px;display:flex}.tool-tags{gap:4px;display:flex}.tag{color:var(--text3);font-size:11px}.tag:before{content:"#"}.tool-score{color:var(--text2);font-size:11px}.tool-list{border:1px solid var(--border);border-radius:4px;overflow:hidden}.tool-row{border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:10px;padding:8px 14px;transition:background 80ms;display:flex}.tool-row:last-child{border-bottom:0}.tool-row:hover{background:var(--bg2)}.tool-link{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.tool-link:hover .tool-name{text-decoration:underline}.tool-initial.sm{border-radius:3px;width:20px;height:20px;font-size:9px}.tool-info{flex:1;min-width:0}.tool-info .tool-desc{-webkit-line-clamp:1}.tool-name-line{align-items:center;gap:5px;display:flex}.tool-meta{flex-shrink:0;align-items:center;gap:10px;display:flex}.footer{border-top:1px solid var(--border);text-align:center;color:var(--text3);flex-wrap:wrap;justify-content:center;gap:6px;padding:16px 32px;font-size:12px;display:flex}.footer a{color:var(--text2);transition:color .1s}.footer a:hover{color:var(--text);text-decoration:underline}.footer-sep{color:var(--border)}.aimap-wrapper{padding:0}.aimap-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:6px;padding:0 0 8px;display:flex}.aimap-title{color:var(--text2);font-size:13px;font-weight:500}.aimap-hint{color:var(--text3);font-size:11px}.aimap-back{color:var(--text2);background:var(--bg2);border:1px solid var(--border);border-radius:3px;padding:2px 10px;font-size:11px;transition:all .1s}.aimap-back:hover{color:var(--text);background:var(--bg-active)}.aimap-viewport{border:1px solid var(--border);background:var(--bg);background-image:radial-gradient(circle, var(--border) 1px, transparent 1px);background-size:28px 28px;border-radius:4px;height:520px;position:relative;overflow:hidden}.aimap-canvas{transform-origin:0 0;will-change:transform;transition:transform .7s cubic-bezier(.16,1,.3,1);position:relative}.aimap-svg{pointer-events:none;position:absolute;top:0;left:0}.map-node{background:var(--bg);border:1px solid var(--border);cursor:pointer;text-align:center;white-space:nowrap;z-index:1;border-radius:4px;padding:8px 16px;transition:all .2s;position:absolute;transform:translate(-50%,-50%)}.map-node:hover{background:var(--bg2)}.map-root{z-index:2;font-weight:500}.map-cat{animation:ease-in-out infinite mapFloat}.map-cat:hover{transform:translate(-50%,-50%)scale(1.04)}.map-cat.map-dim{opacity:.1;pointer-events:none}.map-cat.map-active{background:var(--bg2);z-index:2;animation:none}@keyframes mapFloat{0%,to{transform:translate(-50%,-50%)translateY(0)}50%{transform:translate(-50%,-50%)translateY(-3px)}}.mn-label{font-size:13px;font-weight:500;display:block}.mn-count{color:var(--text3);margin-top:1px;font-size:10px;display:block}.map-panel{background:var(--bg);border:1px solid var(--border);z-index:3;border-radius:4px;min-width:150px;padding:4px 0;position:absolute;transform:translate(-50%);box-shadow:0 4px 12px #00000014}.map-panel-row{cursor:pointer;opacity:0;align-items:center;gap:8px;padding:5px 12px;transition:background 80ms;animation:.3s forwards mapSlideIn;display:flex}.map-panel-row:hover{background:var(--bg-hover)}.mpr-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.mpr-name{color:var(--text2);flex:1;font-size:12px;transition:color .1s}.map-panel-row:hover .mpr-name{color:var(--text)}.mpr-count{color:var(--text3);text-align:right;min-width:28px;font-size:10px}@keyframes mapSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.header-inner,.container{padding:0 14px}.header{height:44px}.header-meta{display:none}.search-bar{max-width:none}.cat-bar{gap:0}.cb-item{padding:7px 8px;font-size:12px}.tool-grid,.co-grid{grid-template-columns:1fr 1fr}.main{padding:12px 0 28px}.page-title{font-size:15px}.tool-meta{display:none}.aimap-viewport{height:380px}.footer{padding:14px}}@media (width<=480px){.tool-grid,.co-grid{grid-template-columns:1fr}.tool-card{padding:12px}.cb-dropdown{left:-20px}}
