* { margin:0; padding:0; box-sizing:border-box; font-family: system-ui, -apple-system, sans-serif; }
body { background: #f4f7fc; min-height:100vh; padding: 2rem 1rem; display:flex; justify-content:center; }
.container { max-width:800px; width:100%; background:#fff; border-radius:32px; box-shadow:0 20px 40px -12px rgba(0,20,30,0.2); padding:2rem; }

.header { display:flex; align-items:center; gap:0.75rem; margin-bottom:2rem; flex-wrap:wrap; }
.header i { font-size:2rem; color:#2563eb; background:#e8edff; padding:0.6rem; border-radius:18px; }
.header h1 { font-size:1.8rem; color:#0b1d33; flex:1; }

.loading { text-align:center; padding:2rem 0; }
.spinner { display:inline-block; width:28px; height:28px; border:3px solid #e0e7ef; border-top-color:#2563eb; border-radius:50%; animation:spin 0.7s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.hidden { display:none !important; }

.project-list { display:flex; flex-direction:column; gap:1rem; }
.project-item { background:#f8fbff; border:1px solid #e2ecf9; border-radius:16px; padding:1.2rem 1.5rem; display:flex; justify-content:space-between; align-items:center; transition:0.15s; cursor:pointer; }
.project-item:hover { background:#f0f6fe; border-color:#2563eb; box-shadow:0 2px 8px rgba(37,99,235,0.08); }
.project-info { display:flex; flex-direction:column; gap:0.3rem; }
.project-name { font-size:1.2rem; font-weight:600; color:#0b1d33; }
.project-meta { font-size:0.85rem; color:#6c86a6; display:flex; gap:1rem; flex-wrap:wrap; }
.project-meta span { display:inline-flex; align-items:center; gap:0.3rem; }
.project-meta i { color:#2563eb; }
.project-link { color:#2563eb; font-weight:500; display:flex; align-items:center; gap:0.4rem; }
.project-link i { font-size:0.9rem; }

.no-projects { text-align:center; color:#9ab0cc; padding:3rem 0; }

@media (max-width:600px) {
    .container { padding:1.2rem; }
    .header { flex-direction:column; align-items:flex-start; }
    .project-item { flex-direction:column; align-items:flex-start; gap:0.5rem; }
}

body {
            user-select: none; /* 禁止文本选中 */
            -webkit-user-select: none; /* Safari/Chrome */
            -moz-user-select: none; /* Firefox */
            -ms-user-select: none; /* IE/Edge */
        }
