:root {
    --bg: #f5f5f7;
    --card-bg: rgba(255,255,255,0.8);
    --text: #1d1d1f;
    --secondary: #86868b;
    --blue: #0071e3;
    --border: rgba(0,0,0,0.08);
    --radius: 18px;
    --shadow: 0 4px 20px rgba(0,0,0,0.05);
}

* { margin:0; padding:0; box-sizing:border-box; }
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: var(--bg); color: var(--text); line-height:1.5; -webkit-font-smoothing:antialiased;
}
.container { max-width:1100px; margin:0 auto; padding:0 20px; }

.nav {
    position:sticky; top:0; z-index:100;
    backdrop-filter:blur(20px) saturate(180%);
    background:rgba(245,245,247,0.8);
    border-bottom:1px solid var(--border);
}
.nav .container { display:flex; justify-content:space-between; align-items:center; height:56px; }
.nav a { text-decoration:none; color:var(--text); font-weight:500; font-size:17px; }
.nav .logo { font-size:20px; font-weight:600; letter-spacing:-0.5px; }
.nav-links a { margin-left:24px; color:var(--secondary); transition:color 0.2s; }
.nav-links a:hover { color:var(--text); }

.hero { text-align:center; padding:60px 0 40px; }
.hero h1 { font-size:48px; font-weight:700; letter-spacing:-1px; }
.hero p { font-size:19px; color:var(--secondary); margin-top:8px; }

.search-box { display:flex; justify-content:center; margin-bottom:40px; }
.search-box input {
    width:100%; max-width:500px; padding:14px 20px;
    border:1px solid var(--border); border-radius:30px; font-size:16px;
    background:rgba(255,255,255,0.6); backdrop-filter:blur(10px);
    outline:none; transition:background 0.3s, box-shadow 0.3s;
}
.search-box input:focus { background:rgba(255,255,255,0.9); box-shadow:0 0 0 4px rgba(0,113,227,0.2); }

.categories { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:30px; }
.category-tag {
    padding:8px 18px; border-radius:20px; background:white;
    border:1px solid var(--border); font-size:14px; color:var(--secondary);
    cursor:pointer; transition:all 0.2s;
}
.category-tag.active, .category-tag:hover { background:var(--blue); color:white; border-color:var(--blue); }

.file-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:20px; margin-bottom:40px; }
.file-card {
    background:var(--card-bg); backdrop-filter:blur(20px);
    border-radius:var(--radius); padding:24px; border:1px solid var(--border);
    box-shadow:var(--shadow); transition:transform 0.2s ease, box-shadow 0.3s;
    display:flex; flex-direction:column;
}
.file-card:hover { transform:translateY(-4px); box-shadow:0 12px 30px rgba(0,0,0,0.1); }
.file-icon { font-size:36px; margin-bottom:16px; }
.file-card h3 { font-size:18px; font-weight:600; margin-bottom:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.file-card .desc { font-size:14px; color:var(--secondary); 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; align-items:center; font-size:13px; color:var(--secondary); margin-bottom:16px; }
.download-btn {
    display:inline-block; background:var(--blue); color:white;
    padding:10px 20px; border-radius:25px; text-decoration:none;
    font-weight:500; font-size:15px; text-align:center; transition:background 0.2s;
}
.download-btn:hover { background:#005bbf; }

.footer { text-align:center; padding:40px 0; color:var(--secondary); font-size:14px; }

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

/* 管理后台复用 */
.admin-header { background:white; border-bottom:1px solid var(--border); }
.login-form {
    max-width:400px; margin:100px auto; background:white;
    border-radius:var(--radius); padding:40px; box-shadow:var(--shadow);
}
.login-form h2 { margin-bottom:24px; }
.login-form input, .login-form textarea, .login-form select {
    width:100%; margin-bottom:16px; padding:12px 16px;
    border:1px solid var(--border); border-radius:12px; font-size:16px;
}
.login-form button {
    width:100%; padding:12px; background:var(--blue); color:white;
    border:none; border-radius:12px; font-size:16px; cursor:pointer;
}
.admin-table { width:100%; background:white; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
.admin-table th, .admin-table td { padding:14px 16px; text-align:left; border-bottom:1px solid var(--border); }
.admin-table th { background:#f9f9fb; font-weight:600; }
.btn-small { padding:6px 14px; border-radius:16px; font-size:13px; border:none; cursor:pointer; color:white; background:#ff3b30; }
.btn-upload { background:var(--blue); padding:10px 24px; border-radius:25px; color:white; text-decoration:none; display:inline-block; margin-bottom:20px; }