:root {
    --bg-dark: #0a0a0a;
    --card-bg-dark: rgba(20, 20, 30, 0.85);
    --text-dark: #e0e0e0;
    --accent: #00ff88;
    --accent2: #ff0055;
    --border-dark: rgba(255, 255, 255, 0.08);
    --radius: 18px;
    --shadow-dark: 0 0 20px rgba(0,255,136,0.1);
}

* { margin:0; padding:0; box-sizing:border-box; }
body {
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    background: var(--bg-dark);
    background-image: 
        radial-gradient(circle at 20% 30%, rgba(0,255,136,0.03) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(255,0,85,0.03) 0%, transparent 50%);
    color: var(--text-dark); line-height:1.6; min-height:100vh;
}
.container { max-width:1200px; margin:0 auto; padding:0 20px; }

.nav {
    position:sticky; top:0; z-index:100;
    backdrop-filter:blur(30px) saturate(200%);
    background:rgba(10,10,10,0.7);
    border-bottom:1px solid var(--border-dark);
    box-shadow:0 4px 20px rgba(0,0,0,0.3);
}
.nav .container { display:flex; justify-content:space-between; align-items:center; height:64px; }
.nav a { text-decoration:none; color:var(--text-dark); font-weight:500; font-size:17px; transition:color 0.2s; }
.nav .logo {
    font-size:22px; font-weight:700; letter-spacing:1px;
    background:linear-gradient(135deg, var(--accent), var(--accent2));
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
}
.nav-links a { margin-left:28px; color:#aaa; }
.nav-links a:hover { color:var(--accent); }

.hero { text-align:center; padding:80px 0 50px; }
.hero h1 {
    font-size:52px; font-weight:800;
    background:linear-gradient(to right, var(--accent), #00ccff);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    letter-spacing:-1px;
}
.hero p { font-size:20px; color:#888; margin-top:12px; }

.search-box { display:flex; justify-content:center; margin-bottom:40px; }
.search-box input {
    width:100%; max-width:500px; padding:14px 20px;
    background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1);
    border-radius:30px; font-size:16px; color:#fff;
    backdrop-filter:blur(10px); outline:none; transition:all 0.3s;
}
.search-box input:focus {
    background:rgba(255,255,255,0.1); border-color:var(--accent);
    box-shadow:0 0 15px rgba(0,255,136,0.3);
}

.categories { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:30px; }
.category-tag {
    padding:8px 18px; border-radius:20px;
    background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08);
    font-size:14px; color:#aaa; cursor:pointer; transition:all 0.2s;
}
.category-tag.active, .category-tag:hover {
    background:var(--accent); color:#000; border-color:var(--accent);
    box-shadow:0 0 15px rgba(0,255,136,0.5);
}

.file-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:24px; margin-bottom:50px; }
.file-card {
    background:var(--card-bg-dark); backdrop-filter:blur(20px);
    border-radius:var(--radius); padding:28px; border:1px solid var(--border-dark);
    box-shadow:var(--shadow-dark); transition:all 0.3s ease;
    position:relative; overflow:hidden;
}
.file-card::before {
    content:''; position:absolute; top:0; left:0; width:100%; height:2px;
    background:linear-gradient(90deg, transparent, var(--accent), transparent);
    opacity:0; transition:opacity 0.3s;
}
.file-card:hover { transform:translateY(-6px); border-color:var(--accent); box-shadow:0 0 30px rgba(0,255,136,0.2); }
.file-card:hover::before { opacity:1; }
.file-icon { font-size:40px; margin-bottom:20px; filter:drop-shadow(0 0 8px rgba(0,255,136,0.5)); }
.file-card h3 { font-size:20px; font-weight:600; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.file-card .desc { color:#999; font-size:14px; flex-grow:1; margin-bottom:16px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.file-meta { display:flex; justify-content:space-between; color:#666; font-size:13px; margin-bottom:16px; }
.download-btn {
    display:inline-block; background:linear-gradient(135deg, var(--accent), #00cc88);
    color:#000; padding:10px 20px; border-radius:25px; text-decoration:none;
    font-weight:600; font-size:15px; text-align:center;
    box-shadow:0 0 15px rgba(0,255,136,0.3); transition:all 0.3s;
}
.download-btn:hover { background:linear-gradient(135deg, #00ffaa, #00dd77); box-shadow:0 0 25px rgba(0,255,136,0.6); transform:scale(1.02); }

.footer { text-align:center; padding:40px 0; color:#555; font-size:14px; }

@media (max-width:640px) {
    .hero h1 { font-size:38px; }
    .file-grid { grid-template-columns:1fr; }
    .nav .container { height:50px; }
}

/* 管理后台黑暗模式适配 */
.admin-header { background:#111; }
.login-form { background:#1a1a2e; color:#fff; border:1px solid var(--border-dark); }
.login-form input, .login-form textarea, .login-form select { background:#222; color:#fff; border-color:#333; }
.admin-table { background:#1a1a2e; }
.admin-table th { background:#222; }
.admin-table td { border-color:#333; color:#ddd; }
.btn-small { background:#ff3b30; }
.btn-upload { background:linear-gradient(135deg, var(--accent), #00cc88); color:#000; }