:root{--p:#4f46e5;--p2:#7c3aed;--bg:#f5f6fa;--card:#fff;--tx:#1f2937;--mu:#6b7280;--bd:#e5e7eb;--side:220px}
*{box-sizing:border-box}body{margin:0;font:15px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--tx)}
a{color:inherit;text-decoration:none}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;height:60px;padding:0 20px;background:#fff;border-bottom:1px solid var(--bd)}
.brand{font-weight:700;font-size:18px;display:flex;align-items:center;gap:8px;white-space:nowrap}.dot{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;font-size:15px}
.mainnav{display:flex;gap:4px;flex:1;overflow-x:auto}.mainnav a{padding:6px 12px;border-radius:8px;color:#374151;white-space:nowrap}.mainnav a:hover,.mainnav a.on{background:#eef2ff;color:var(--p)}
.submit-btn{padding:7px 14px;border-radius:8px;background:var(--p);color:#fff;white-space:nowrap}.menu{display:none;border:0;background:none;font-size:22px}
.wrap{display:flex;max-width:1440px;margin:0 auto}
.side{position:sticky;top:60px;align-self:flex-start;width:var(--side);height:calc(100vh - 60px);overflow-y:auto;padding:16px 12px;background:#fff;border-right:1px solid var(--bd);flex-shrink:0}
.side-title{font-size:12px;color:var(--mu);margin:12px 10px 6px}.side a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:#374151}.side a:hover,.side a.on{background:#eef2ff;color:var(--p)}.side a em{margin-left:auto;font-style:normal;font-size:12px;color:var(--mu)}
.main{flex:1;min-width:0;padding:24px}
.hero{text-align:center;padding:36px 16px 28px;background:linear-gradient(135deg,#eef2ff,#faf5ff);border-radius:16px;margin-bottom:24px}.hero h1{margin:0 0 6px;font-size:28px}.hero p{color:var(--mu);margin:0 0 18px}
.search{position:relative;max-width:620px;margin:0 auto 12px}.search input{width:100%;padding:13px 18px;border:2px solid #c7d2fe;border-radius:12px;font-size:16px;outline:none;background:#fff}.search input:focus{border-color:var(--p)}
#results{position:absolute;left:0;right:0;top:100%;background:#fff;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.12);z-index:10;text-align:left;max-height:360px;overflow:auto}#results a{display:block;padding:10px 16px;border-bottom:1px solid #f3f4f6}#results a:hover{background:#f9fafb}#results small{color:var(--mu);margin-left:8px}
.hot{font-size:13px;color:var(--mu)}.hot a{margin:0 6px;color:var(--p)}
.block{background:var(--card);border-radius:14px;padding:18px 20px;margin-bottom:20px;border:1px solid var(--bd)}.block h2{font-size:17px;margin:0 0 14px;display:flex;align-items:center;gap:6px}.more{margin-left:auto;font-size:13px;font-weight:400;color:var(--mu)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.card{display:flex;gap:12px;align-items:center;padding:14px;border:1px solid var(--bd);border-radius:12px;background:#fff;transition:.15s}.card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(79,70,229,.12);border-color:#c7d2fe}
.card.rec{background:linear-gradient(135deg,#fff,#f5f3ff);border-color:#ddd6fe}
.logo{width:40px;height:40px;border-radius:10px;object-fit:contain;flex-shrink:0;background:#f3f4f6}.logo.ph{display:grid;place-items:center;background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;font-weight:700}.logo.big{width:72px;height:72px;border-radius:16px;font-size:28px}
.ci{min-width:0}.ci strong{display:flex;align-items:center;gap:6px;font-size:15px}.ci p{margin:2px 0 0;font-size:13px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.badge{font-style:normal;font-size:11px;padding:1px 6px;border-radius:6px;background:#fef3c7;color:#b45309;font-weight:500;margin-left:6px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.list{list-style:none;margin:0;padding:0}.list-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.list li{display:flex;gap:10px;padding:7px 0;border-bottom:1px dashed var(--bd)}.list a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list a:hover{color:var(--p)}.list time{color:var(--mu);font-size:13px}
.crumb{font-size:13px;color:var(--mu);margin-bottom:12px}.crumb a:hover{color:var(--p)}.ph1{margin:0 0 6px;font-size:24px}.lead{color:var(--mu);margin:0 0 18px}
.tool-head{display:flex;gap:20px;background:#fff;border:1px solid var(--bd);border-radius:14px;padding:24px;margin-bottom:20px}.tool-head h1{margin:0;font-size:24px;display:flex;align-items:center}
.meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.pill{background:#eef2ff;color:var(--p);padding:2px 10px;border-radius:20px;font-size:13px}.tag{color:var(--mu);font-size:13px;margin-right:6px}
.go{display:inline-block;padding:10px 22px;border-radius:10px;background:linear-gradient(135deg,var(--p),var(--p2));color:#fff!important;font-weight:600}
.prose{background:#fff;border:1px solid var(--bd);border-radius:14px;padding:24px 28px;margin-bottom:20px;max-width:860px}.prose h1{font-size:24px;margin-top:0}.prose h2{font-size:18px;margin-top:24px}.prose a{color:var(--p)}.prose blockquote{margin:0;padding:10px 16px;background:#f9fafb;border-left:4px solid #c7d2fe;color:#374151}
.summary{background:#f5f3ff;padding:12px 16px;border-radius:10px}.meta2{color:var(--mu);font-size:13px}.note{color:var(--mu);font-size:13px}
.feed{display:grid;gap:12px}.feed-item{display:block;background:#fff;border:1px solid var(--bd);border-radius:12px;padding:16px 20px}.feed-item:hover{border-color:#c7d2fe}.feed-item h3{margin:0 0 6px;font-size:17px;display:flex;align-items:center}.feed-item p{margin:0 0 6px;color:#4b5563}.feed-item small{color:var(--mu)}
.foot{border-top:1px solid var(--bd);background:#fff;text-align:center;padding:20px;font-size:13px;color:var(--mu)}.foot a{color:var(--p)}
@media(max-width:900px){.mainnav{display:none}.menu{display:block}.side{position:fixed;left:0;top:60px;z-index:30;transform:translateX(-100%);transition:.2s;box-shadow:4px 0 20px rgba(0,0,0,.1)}.nav-open .side{transform:none}.main{padding:14px}.two{grid-template-columns:1fr}.list-cols{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr;gap:8px}.card{padding:10px;gap:8px}.card .logo{width:34px;height:34px}.hero h1{font-size:21px}.tool-head{flex-direction:column;padding:18px}.prose{padding:18px}.brand{font-size:16px}.submit-btn{padding:6px 10px;font-size:13px;margin-left:auto}}
@media(max-width:420px){.ci p{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}
