:root{
  --green:#68c30c;
  --green-dark:#57a60a;
  --blue:#0089dc;
  --bg:#f2f2f2;
  --card:#fff;
  --text:#333;
  --muted:#999;
  --border:#e5e5e5;
  --dark:#101318;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:-apple-system,BlinkMacSystemFont,"Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;border:0;}
.container{width:1200px;max-width:96%;margin:0 auto;}
/* header */
.site-header{background:var(--dark);}
.header-inner{display:flex;align-items:center;min-height:60px;flex-wrap:wrap;}
.logo{color:#fff;font-size:22px;font-weight:bold;margin-right:24px;white-space:nowrap;}
.nav{display:flex;flex-wrap:wrap;align-items:center;flex:1;}
.nav a{color:#cfcfcf;padding:0 11px;line-height:60px;font-size:14px;white-space:nowrap;}
.nav a:hover,.nav a.active{color:#fff;}
.search{display:flex;margin-left:auto;}
.search input{width:190px;height:34px;border:0;padding:0 12px;border-radius:4px 0 0 4px;outline:none;}
.search button{height:34px;border:0;background:var(--green);color:#fff;padding:0 16px;border-radius:0 4px 4px 0;cursor:pointer;}
/* layout */
.site-main{display:flex;gap:20px;padding:20px 0;align-items:flex-start;}
.main-col{flex:1;min-width:0;}
.side-col{width:300px;flex:none;}
/* banner */
.banner{height:140px;background:linear-gradient(135deg,var(--green),#8fd83a);border-radius:8px;margin-bottom:20px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;font-weight:bold;box-shadow:0 4px 12px rgba(104,195,12,.25);}
/* cat entry */
.cat-entry{background:var(--card);border-radius:8px;padding:20px;margin-bottom:20px;}
.cat-entry h2{font-size:16px;margin-bottom:14px;}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;}
.cat-grid a{display:block;text-align:center;padding:10px 6px;background:#fafafa;border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;}
.cat-grid a:hover{background:var(--green);color:#fff;border-color:var(--green);}
/* block */
.block{background:var(--card);border-radius:8px;padding:18px;margin-bottom:20px;}
.block h2{font-size:16px;margin-bottom:14px;border-left:4px solid var(--green);padding-left:10px;}
/* app card */
.app-card{display:flex;align-items:center;padding:12px 4px;border-bottom:1px solid var(--border);}
.app-card:last-child{border-bottom:0;}
.app-icon{width:60px;height:60px;border-radius:12px;flex:none;background:#eee;object-fit:cover;}
.app-info{flex:1;min-width:0;padding:0 14px;}
.app-name{font-size:15px;font-weight:bold;margin-bottom:4px;}
.app-name a:hover{color:var(--green);}
.app-meta{color:var(--muted);font-size:12px;margin-bottom:6px;}
.app-desc{color:#666;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.app-down{flex:none;}
.btn-down{display:inline-block;background:var(--green);color:#fff;padding:8px 18px;border-radius:4px;font-size:13px;white-space:nowrap;}
.btn-down:hover{background:var(--green-dark);}
/* side rank */
.rank-list{background:var(--card);border-radius:8px;padding:16px;margin-bottom:20px;}
.rank-list h3{font-size:15px;margin-bottom:10px;border-left:4px solid var(--green);padding-left:10px;}
.rank-list ol{list-style:none;counter-reset:r;padding:0;margin:0;}
.rank-list li{counter-increment:r;display:flex;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;}
.rank-list li:last-child{border-bottom:0;}
.rank-list li::before{content:counter(r);width:20px;height:20px;line-height:20px;text-align:center;background:var(--green);color:#fff;border-radius:4px;margin-right:10px;font-size:12px;flex:none;}
.rank-list li a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* cat grid2 (category listing) */
.cat-grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
/* single app */
.app-detail{background:var(--card);border-radius:8px;padding:24px;}
.app-head{display:flex;gap:20px;align-items:center;margin-bottom:18px;}
.app-head .app-icon{width:92px;height:92px;}
.app-head h1{font-size:22px;margin-bottom:8px;}
.app-dl{margin-top:14px;}
.app-dl .btn-down{padding:12px 32px;font-size:16px;}
.content{font-size:14px;color:#444;line-height:1.9;}
.content img{max-width:100%;}
/* page */
.page,.single-article{background:var(--card);border-radius:8px;padding:24px;}
.page h1,.single-article h1{font-size:22px;margin-bottom:16px;}
/* footer */
.site-footer{background:var(--dark);color:#9aa0a6;padding:30px 0;margin-top:20px;text-align:center;font-size:13px;}
.site-footer a{color:#c5cad0;}
.site-footer p{margin:4px 0;}
/* responsive */
@media(max-width:768px){
  .site-main{flex-direction:column;}
  .side-col{width:100%;}
  .search{width:100%;margin:8px 0 0;}
  .search input{flex:1;width:auto;}
}
