:root{
  --bg:#f3f7fb; --bg2:#ffffff; --card:#ffffff; --card2:#eef3f8;
  --txt:#233043; --mut:#64748b; --acc:#0ea5e9; --acc2:#6366f1;
  --ok:#16a34a; --warn:#f59e0b; --danger:#ef4444;
  --radius:14px; --shadow:0 8px 26px rgba(30,64,175,.10); --border:rgba(30,64,120,.10);
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;background:linear-gradient(160deg,#f0f6ff,#f6f9fd 50%,#eef4fb);color:var(--txt);min-height:100vh;display:flex;flex-direction:column}
.container{width:100%;max-width:1140px;margin:0 auto;padding:0 20px}
.main{flex:1;padding:30px 20px 30px}

/* 顶栏 */
.topbar{background:rgba(255,255,255,.82);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:62px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--txt)}
.brand-icon{font-size:26px}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-weight:800;font-size:17px;letter-spacing:.5px}
.brand-sub{font-size:11px;color:var(--mut)}
.nav{display:flex;gap:6px}
.nav-link{padding:8px 14px;border-radius:9px;text-decoration:none;color:var(--mut);font-size:14px;transition:.2s}
.nav-link:hover{color:var(--acc);background:rgba(14,165,233,.10)}
.nav-link.active{color:var(--acc);background:rgba(14,165,233,.14);font-weight:600}
.nav-ic{margin-right:4px}
.nav-toggle{display:none}
/* 导航搜索框 */
.nav-search{display:flex;align-items:center;margin-left:4px}
.nav-search-ic{margin-right:6px;font-size:13px}
.nav-search-input{background:#fff;border:1px solid var(--border);border-radius:20px;padding:6px 14px 6px 6px;font-size:13px;color:var(--txt);outline:none;width:150px;transition:.2s}
.nav-search-input:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(14,165,233,.12);width:190px}
.nav-search-input::placeholder{color:#94a3b8}
.home-search{justify-content:center;margin:0 0 18px;max-width:460px;margin-left:auto;margin-right:auto}
.home-search .nav-search-input{width:100%;padding:10px 16px;font-size:14px;border-radius:20px 0 0 20px}
.home-search .nav-search-input:focus{width:100%}
.home-search-btn{background:var(--acc,#0ea5e9);color:#fff;border:none;border-radius:0 20px 20px 0;padding:0 20px;font-size:14px;cursor:pointer;height:34px;transition:.2s;flex-shrink:0}
.home-search-btn:hover{background:#0284c7}

/* Hero */
.hero{text-align:center;padding:1px 0 30px}
.hero-title{font-size:36px;font-weight:800;background:linear-gradient(90deg,var(--acc),var(--acc2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:12px}
.hero-sub{color:var(--mut);font-size:16px;margin-bottom:28px}
.hero-stats{display:flex;gap:26px;justify-content:center;margin-top:18px;color:var(--mut);font-size:14px;flex-wrap:wrap}
.hero-stats strong{color:var(--acc)}

/* 搜索 */
.search{display:flex;max-width:580px;margin:0 auto;background:#fff;border-radius:50px;padding:5px;box-shadow:var(--shadow);border:1px solid var(--border)}
.search-input{flex:1;background:transparent;border:none;outline:none;color:var(--txt);font-size:15px;padding:11px 18px}
.search-input::placeholder{color:#94a3b8}
.search-btn{background:linear-gradient(90deg,var(--acc),var(--acc2));border:none;color:#fff;font-weight:700;padding:11px 28px;border-radius:50px;cursor:pointer;font-size:15px;transition:.2s}
.search-btn:hover{filter:brightness(1.08);box-shadow:0 4px 14px rgba(14,165,233,.35)}

/* 筛选 */
.filter-bar{display:flex;gap:10px;justify-content:center;margin:20px 0}
.chip{padding:7px 18px;border-radius:30px;background:#fff;color:var(--mut);text-decoration:none;font-size:13px;border:1px solid var(--border)}
.chip:hover{color:var(--acc);border-color:var(--acc)}
.chip.on{background:linear-gradient(90deg,var(--acc),var(--acc2));color:#fff;font-weight:600;border-color:transparent}

/* 卡片网格(九宫格 5 列) */
.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:8px}
.card{background:var(--card);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:var(--txt);border:1px solid var(--border);box-shadow:0 2px 10px rgba(30,64,120,.05);transition:.25s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(14,165,233,.45)}
.card-thumb{position:relative;aspect-ratio:16/10;background:var(--card2);overflow:hidden}
.card-thumb img{width:100%;height:100%;object-fit:cover;object-position:top}
.thumb-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--mut);font-size:13px}
.card-status{position:absolute;top:10px;left:10px;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;color:#fff}
.st-normal{background:var(--ok)}.st-error{background:var(--danger)}.st-redirect{background:var(--warn)}
.card-body{padding:14px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.card-name{font-size:16px;font-weight:700}
.card-domain{color:var(--acc);font-size:13px}
.card-desc{color:var(--mut);font-size:13px;line-height:1.5}
.card-meta{display:flex;justify-content:space-between;color:var(--mut);font-size:12px;margin-top:auto;padding-top:8px}

/* 侵权举报选项卡 */
.rtabs{display:flex;margin:20px 0;border-bottom:2px solid var(--border)}
.rtab{flex:1;padding:13px;border:none;background:transparent;font-size:15px;font-weight:600;color:var(--mut);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:.2s}
.rtab:hover{color:var(--acc)}
.rtab.on{color:var(--acc);border-bottom-color:var(--acc)}
.rpanel{display:none}
.rpanel.on{display:block}
.radio-group{display:flex;gap:22px;flex-wrap:wrap;padding-top:6px}
.radio{display:flex;align-items:center;gap:6px;cursor:pointer;margin:0!important}
.radio input{width:auto;margin:0}
.stop-note{background:var(--card2);border:1px dashed var(--border);padding:10px 14px;border-radius:8px;color:var(--mut);font-size:13px;margin:0 0 14px}
.stop-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--txt)}
.stop-check input{width:auto;margin:0}
.stop-tip{margin-top:18px;background:rgba(14,165,233,.08);border:1px dashed rgba(14,165,233,.4);border-radius:10px;padding:12px 16px;font-size:13px;line-height:1.8;color:var(--mut)}
.stop-tip b{color:var(--acc)}

/* 停抓验证框 */
.verify-box{margin-top:22px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;box-shadow:0 2px 10px rgba(30,64,120,.05)}
.verify-title{font-size:16px;font-weight:700;color:var(--txt);margin-bottom:10px}
.verify-box p{color:var(--mut);line-height:1.8;font-size:14px;margin:0 0 10px}
.verify-box .vf{color:var(--acc);font-family:monospace;background:var(--card2);padding:2px 8px;border-radius:4px;font-size:15px}
.verify-form{margin-top:8px}
.st-stop{background:rgba(139,92,246,.14);color:#7c3aed}

/* 申请须知 */
.apply-notice{margin-top:18px;background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:14px 16px;font-size:13px;color:var(--mut);line-height:2}
.apply-notice p{margin:0}

/* 抓取逻辑详解 */
.sub-title{font-size:18px;margin:26px 0 12px;color:var(--txt)}
.grab-flow{margin:0;padding-left:22px;color:var(--mut);line-height:1.9;font-size:14px}
.grab-flow li{margin-bottom:6px}
.grab-flow strong{color:var(--txt)}

/* 温馨提示 */
.tip{background:rgba(14,165,233,.08);border:1px dashed rgba(14,165,233,.4);color:var(--mut);border-radius:10px;padding:12px 16px;font-size:13px;line-height:1.6;margin:16px 0}

/* 详情页 */
.site-head{display:flex;gap:28px;justify-content:space-between;flex-wrap:wrap;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px;margin-bottom:28px;box-shadow:0 2px 10px rgba(30,64,120,.05)}
.site-head-left{flex:1;min-width:280px}
.site-title{font-size:30px;font-weight:800;margin-bottom:8px}
.site-domain{display:flex;align-items:center;gap:10px;font-size:15px;margin-bottom:10px}
.site-domain a{color:var(--acc);text-decoration:none}
.site-domain a:hover{text-decoration:underline}
.site-desc{color:var(--mut);line-height:1.7;margin-bottom:12px}
.site-alert{background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.35);color:#b45309;padding:9px 14px;border-radius:8px;font-size:13px;margin-bottom:12px}
.site-meta{display:flex;gap:18px;color:var(--mut);font-size:13px;flex-wrap:wrap}
.site-head-right{min-width:260px}
.badge-box{background:var(--card2);border-radius:10px;padding:16px}
.badge-label{font-size:12px;color:var(--mut);margin-bottom:10px}
.badge-code{width:100%;background:#1e293b;color:#a7f3d0;border:none;border-radius:6px;padding:9px;font-size:11px;font-family:monospace;margin-top:10px;resize:vertical;min-height:70px}
.badge-info{list-style:none;margin:0;padding:0;font-size:12px;color:var(--txt);line-height:1.9}
.badge-info li{word-break:break-all}
.log-time{color:var(--mut);margin-right:6px}
.badge-empty{font-size:12px;color:var(--mut);margin:0}

/* 详情页截图九宫格 */
.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.shot{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 10px rgba(30,64,120,.05)}
.shot-meta{display:flex;justify-content:space-between;padding:8px 12px;color:var(--mut);font-size:12px;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px}
.shot-date{color:var(--acc);font-weight:600}
.shot-img-wrap{display:block;cursor:zoom-in;overflow:hidden;aspect-ratio:16/10;background:var(--card2);border-radius:10px}
.shot-img-wrap img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}

/* 灯箱 */
.lightbox{position:fixed;inset:0;background:rgba(8,10,18,.92);display:none;align-items:center;justify-content:center;z-index:999;cursor:zoom-out;padding:20px}
.lightbox.show{display:flex}
.lightbox img{max-width:94vw;max-height:92vh;border-radius:8px;box-shadow:0 12px 50px rgba(0,0,0,.7);cursor:zoom-in;transition:transform .25s ease}
.lightbox img.zoomed{transform:scale(1.7);cursor:zoom-out}
.lightbox .lb-hint{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:#94a3b8;font-size:12px;background:rgba(0,0,0,.5);padding:4px 12px;border-radius:20px;pointer-events:none}
.lightbox-caption{position:fixed;bottom:24px;left:0;right:0;text-align:center;color:#cbd5e1;font-size:13px}

/* 通用页 */
.page{max-width:820px;margin:0 auto}
.page-title{font-size:30px;font-weight:800;margin-bottom:8px}
.page-lead{color:var(--mut);margin-bottom:28px;line-height:1.7}
.sec-title{font-size:21px;font-weight:700;margin:32px 0 16px}
.tech-list{display:flex;flex-direction:column;gap:10px}
.tech-item{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px 18px;display:flex;gap:16px;align-items:baseline;box-shadow:0 2px 8px rgba(30,64,120,.04)}
.tech-name{font-weight:700;color:var(--acc);min-width:70px}

/* 查询/申请 */
.check-result{display:flex;gap:18px;align-items:flex-start;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-top:28px;box-shadow:0 2px 10px rgba(30,64,120,.05)}
.check-icon{font-size:30px}
.check-line{color:var(--mut);margin-bottom:6px;line-height:1.6}
.check-line strong{color:var(--txt)}
.btn{display:inline-block;background:linear-gradient(90deg,var(--acc),var(--acc2));color:#fff;font-weight:700;padding:10px 24px;border-radius:9px;text-decoration:none;border:none;cursor:pointer;font-size:14px;margin-top:8px;transition:.2s}
.btn:hover{filter:brightness(1.08);box-shadow:0 4px 14px rgba(14,165,233,.3)}
.form{display:flex;flex-direction:column;gap:18px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:0 2px 10px rgba(30,64,120,.05)}
.form label{display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--mut)}
.form input,.form textarea,.form select{background:var(--card2);border:1px solid var(--border);border-radius:8px;padding:11px 14px;color:var(--txt);font-size:14px;outline:none;font-family:inherit}
.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.flash{padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}
.flash.ok{background:rgba(34,197,94,.12);color:#15803d;border:1px solid rgba(34,197,94,.3)}
.flash.err{background:rgba(239,68,68,.12);color:#dc2626;border:1px solid rgba(239,68,68,.3)}

/* 空状态 */
.empty{text-align:center;color:var(--mut);padding:60px 20px;font-size:15px}

/* 页脚(固定贴底) */
.footer{background:rgba(255,255,255,.95);backdrop-filter:blur(6px);border-top:1px solid var(--border);padding:18px 0;margin-top:30px}
.footer-inner{text-align:center}
.footer-copy{color:var(--mut);font-size:13px;margin-bottom:6px}
.footer-meta{color:var(--mut);font-size:12px;opacity:.75}
.footer-meta strong{color:var(--acc)}

@media(max-width:1024px){
  .grid,.timeline{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:900px){
  .grid,.timeline{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:720px){
  .grid,.timeline{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .topbar{position:relative}
  .topbar-inner{flex-wrap:wrap;justify-content:space-between;height:auto;padding:10px 0 8px;gap:8px}
  .nav-toggle{display:block;background:none;border:none;font-size:24px;color:var(--txt);cursor:pointer;line-height:1;padding:4px 6px}
  .nav{position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;gap:0;box-shadow:0 10px 24px rgba(30,64,120,.12);border-bottom:1px solid var(--border);display:none;z-index:60}
  .nav.open{display:flex}
  .nav-link{padding:13px 20px;font-size:14px;border-radius:0;border-bottom:1px solid var(--border)}
  .nav-link:last-child{border-bottom:none}
  .hero-title{font-size:27px}
  .brand-sub{display:none}
  .hero-stats{gap:8px 16px;font-size:13px}
  .site-head{flex-direction:column}
  .grid,.timeline{grid-template-columns:1fr}
  .donate-card,.donate-list{padding:18px}
  .donate-qr-item{width:200px}
  .donate-qr-img,.donate-qr-none{width:160px;height:160px}
}

/* 赞助页 */
.donate-page{max-width:860px;margin:0 auto}
.donate-hero{text-align:center;padding:26px 0 8px}
.donate-hero h1{font-size:26px;margin:0 0 6px}
.donate-sub{color:#7a8599;margin:0}
.donate-card{background:#fff;border:1px solid #e7ebf2;border-radius:14px;padding:24px 26px;margin:18px 0;line-height:1.9;color:#3a4356}
.donate-card h2{font-size:18px;margin:0 0 12px;color:#1f2937}
.donate-card p{margin:0 0 12px}
.donate-note{background:#f6f4ff;border-left:3px solid #7c6cf0;padding:10px 14px;border-radius:0 8px 8px 0;color:#5b5578}
.donate-note em{font-style:normal;color:#7c6cf0;font-weight:600}
.donate-qr{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin:20px 0}
.donate-qr-item{background:#fff;border:1px solid #e7ebf2;border-radius:14px;padding:18px;text-align:center;width:230px}
.donate-qr-label{font-weight:600;margin-bottom:12px;color:#1f2937}
.donate-qr-img{width:180px;height:180px;object-fit:contain;border-radius:8px}
.donate-qr-hint{color:#9aa3b2;font-size:12px;margin-top:8px}
.donate-qr-none{width:180px;height:180px;display:flex;align-items:center;justify-content:center;background:#f4f6fa;border-radius:8px;color:#aab;font-size:13px}
.donate-list{background:#fff;border:1px solid #e7ebf2;border-radius:14px;padding:22px 26px;margin:18px 0}
.donate-list h2{font-size:18px;margin:0 0 14px;color:#1f2937}
.donate-items{list-style:none;margin:0;padding:0}
.donate-item{display:flex;align-items:center;gap:12px;padding:10px 2px;border-bottom:1px dashed #eef1f6;flex-wrap:wrap}
.donate-item:last-child{border-bottom:none}
.donate-item-name{font-weight:600;color:#1f2937}
.donate-item-msg{color:#7a8599;font-size:13px;flex:1;min-width:120px}
.donate-item-amt{color:#7c6cf0;font-weight:700}
.donate-item-time{color:#a5aeba;font-size:12px}
.donate-empty{color:#9aa3b2;text-align:center;padding:20px 0}
.pager{display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap;margin:22px 0}
.pager-btn{display:inline-block;padding:6px 12px;border:1px solid var(--line,#e2e8f0);border-radius:8px;font-size:13px;color:var(--txt,#233043);background:#fff;text-decoration:none}
.pager-btn:hover{border-color:var(--acc,#0ea5e9);color:var(--acc,#0ea5e9)}
.pager-btn.on{background:var(--acc,#0ea5e9);border-color:var(--acc,#0ea5e9);color:#fff;font-weight:600}
.pager-gap{color:#9aa3b2;padding:0 2px}
