.tools-catalog{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;width:100%;max-width:1120px;margin:0 auto;display:grid}.tool-entry{border:1px solid var(--color-base-300);background:var(--color-base-100);border-radius:14px;flex-direction:column;gap:10px;min-width:0;padding:20px;transition:border-color .15s,box-shadow .15s;display:flex;&:hover{border-color:var(--color-brand-line);box-shadow:var(--shadow-2)}& h2{font-size:16px;font-weight:700;line-height:1.5}&>p{color:var(--color-muted);font-size:13px;line-height:1.75}&>.tool-entry-risk{color:var(--color-warning);font-size:12px}}.tool-entry-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.tool-entry-icon{width:38px;height:38px;color:var(--color-primary);background:var(--color-brand-soft);border-radius:11px;place-items:center;display:grid;& svg{width:21px;height:21px}}.tool-entry-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:auto;padding-top:6px;display:flex}.tool-entry-host{color:var(--color-muted);font-size:11px}@media (width<=960px){.tools-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.tools-catalog{grid-template-columns:minmax(0,1fr);gap:12px}.tool-entry{padding:16px}}.tool-tablist-wrap{overflow-x:auto}.tool-tab-badge{color:var(--color-muted);background:var(--color-surface-soft);border-radius:5px;margin-left:8px;padding:2px 6px;font-size:11px;font-weight:600}.session-converter-grid{&>.card{box-shadow:none;border-radius:12px}&>.card>.bg-base-200{background:var(--color-base-100);padding:16px 20px}& .tool-json-textarea{border-radius:8px}}@media (width>=1280px){.session-converter-grid{height:clamp(460px,100vh - 22rem,620px);min-height:0;& .card{flex-direction:column;min-height:0;display:flex}& .card-body{flex-direction:column;flex:auto;min-height:0;display:flex}}.session-converter-textarea{resize:none;flex:auto;min-height:0}.session-account-table{flex:none;&>div{max-height:140px}}}.ip-purity-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.ip-purity-fact-card,.ip-purity-signal-card,.ip-purity-source-card{border:1px solid var(--color-base-300);background:var(--color-surface-soft);border-radius:10px}.ip-purity-fact-card{padding:12px 16px;& dt{color:var(--color-muted);font-size:12px}& dd{overflow-wrap:anywhere;margin-top:6px;font-size:13px;font-weight:600;line-height:1.7}}.ip-purity-signal-card,.ip-purity-source-card{padding:14px 16px}.ip-purity-signals,.ip-purity-sources{gap:12px;display:grid}.ip-purity-map-card{border:1px solid var(--color-base-300);background:var(--color-surface-soft);border-radius:14px;padding:16px}.ip-purity-map{border:1px solid var(--color-base-300);background:var(--color-base-100);border-radius:10px;min-height:250px;margin-top:12px;overflow:hidden;& .maplibregl-ctrl-attrib,& .maplibregl-ctrl-attrib a{color:var(--color-muted);font-size:10px}& .maplibregl-popup-content{border:1px solid var(--color-base-300);background:var(--color-base-100);box-shadow:var(--shadow-2);border-radius:10px;padding:8px 12px}}.ip-purity-map-empty{height:100%;min-height:250px;color:var(--color-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;font-size:13px;display:flex}.ip-purity-map-popup{flex-direction:column;gap:4px;font-size:12px;display:flex;& strong{font-weight:600}& span{color:var(--color-muted)}}@media (width<=640px){.ip-purity-facts-grid{grid-template-columns:minmax(0,1fr)}}
