.ops-tool{--ts-kw:#ff7b72;--ts-tp:#79c0ff;--ts-str:#a5d6ff;--ts-fn:#d2a8ff;--ts-cm:#8b949e;--ts-num:#eab308;--ts-pk:#ec4899}.ops-tool .ts-app{max-width:940px;margin:0 auto;padding:24px 20px 60px}.ops-tool .ts-search{margin-bottom:14px}.ops-tool .ts-search input{background:var(--bg2);border:1px solid var(--bdr);width:100%;color:var(--tx);border-radius:10px;outline:none;padding:12px 16px;font-family:JetBrains Mono,monospace;font-size:14px;transition:border-color .12s,box-shadow .12s}.ops-tool .ts-search input:focus{border-color:var(--bdr-hi);box-shadow:0 0 0 3px var(--acg)}.ops-tool .ts-search input::placeholder{color:var(--tx3)}.ops-tool .ts-filters{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:18px;display:flex}.ops-tool .ts-f-btn{background:var(--bg3);border:1px solid var(--bdr);color:var(--tx3);cursor:pointer;border-radius:16px;padding:5px 14px;font-family:inherit;font-size:11px;transition:all .12s}.ops-tool .ts-f-btn:hover{border-color:var(--bdr-hi);color:var(--tx)}.ops-tool .ts-f-btn.is-active{background:var(--ac);border-color:var(--ac);color:#fff}.ops-tool .ts-f-count{color:var(--tx3);margin-left:auto;font-family:JetBrains Mono,monospace;font-size:11px}.ops-tool .ts-card{background:var(--bg3);border:1px solid var(--bdr);border-radius:12px;margin-bottom:14px;scroll-margin-top:80px;transition:border-color .15s;overflow:hidden}.ops-tool .ts-card:hover{border-color:var(--bdr-hi)}.ops-tool .ts-card-head{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:14px 18px;font-family:inherit;display:flex}.ops-tool .ts-arrow{color:var(--tx3);flex-shrink:0;font-size:11px;transition:transform .2s}.ops-tool .ts-arrow.is-open{transform:rotate(90deg)}.ops-tool .ts-name{color:var(--ts-tp);font-family:JetBrains Mono,monospace;font-size:16px;font-weight:700}.ops-tool .ts-cat{background:var(--bg4);color:var(--tx3);border-radius:10px;padding:2px 8px;font-size:10px}.ops-tool .ts-sig{color:var(--tx3);text-overflow:ellipsis;white-space:nowrap;max-width:50%;margin-left:auto;font-family:JetBrains Mono,monospace;font-size:11px;overflow:hidden}.ops-tool .ts-card-body{padding:0 18px 18px}.ops-tool .ts-desc{color:var(--tx2);margin:0 0 14px;font-size:13px;line-height:1.8}.ops-tool .ts-code-pair{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.ops-tool .ts-code-box{background:var(--bg2);border:1px solid var(--bdr);border-radius:8px;overflow:hidden}.ops-tool .ts-code-label{color:var(--tx3);border-bottom:1px solid var(--bdr);justify-content:space-between;align-items:center;padding:6px 12px;font-size:10px;display:flex}.ops-tool .ts-code-lang{color:var(--ts-tp);font-family:JetBrains Mono,monospace}.ops-tool .ts-copy{border:1px solid var(--bdr);color:var(--tx3);cursor:pointer;background:0 0;border-radius:3px;padding:1px 8px;font-family:JetBrains Mono,monospace;font-size:9px;transition:all .1s}.ops-tool .ts-copy:hover{border-color:var(--ac);color:var(--ac)}.ops-tool .ts-copy.is-copied{border-color:var(--ok);color:var(--ok)}.ops-tool .ts-code-content{color:var(--tx);margin:0;padding:12px;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.8;overflow-x:auto}.ops-tool .ts-code-content code{font-family:inherit;font-size:inherit}.ops-tool .ts-tk-k{color:var(--ts-kw)}.ops-tool .ts-tk-t{color:var(--ts-tp)}.ops-tool .ts-tk-s{color:var(--ts-str)}.ops-tool .ts-tk-f{color:var(--ts-fn)}.ops-tool .ts-tk-c{color:var(--ts-cm);font-style:italic}.ops-tool .ts-tk-n{color:var(--ts-num)}.ops-tool .ts-tk-p{color:var(--ts-pk)}.ops-tool .ts-related{flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;display:flex}.ops-tool .ts-related-lbl{color:var(--tx3);font-size:11px}.ops-tool .ts-related-tag{background:var(--bg2);border:1px solid var(--bdr);color:var(--ts-tp);cursor:pointer;border-radius:5px;padding:3px 10px;font-family:JetBrains Mono,monospace;font-size:11px;transition:all .12s}.ops-tool .ts-related-tag:hover{border-color:var(--ac);color:var(--ac)}.ops-tool .ts-empty{text-align:center;color:var(--tx3);padding:40px;font-size:13px}@media (max-width:700px){.ops-tool .ts-code-pair{grid-template-columns:1fr}.ops-tool .ts-sig{display:none}}
