*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,sans-serif;background:#f5f7fa;color:#333}.container{max-width:1200px;margin:0 auto;padding:20px}.card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px rgba(0,0,0,.06)}.card,.card h2{margin-bottom:16px}.card h2{font-size:18px;color:#1a1a1a}.btn{padding:8px 20px;border-radius:8px;border:none;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-primary{background:#1677ff;color:#fff}.btn-primary:hover{background:#0958d9}.btn-success{background:#52c41a;color:#fff}.btn-success:hover{background:#389e0d}.btn-danger{background:#ff4d4f;color:#fff}.btn-danger:hover{background:#cf1322}.btn-sm{padding:4px 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}input,select{padding:8px 12px;border:1px solid #d9d9d9;border-radius:8px;font-size:14px;outline:none;transition:border-color .2s}input:focus,select:focus{border-color:#1677ff}table{width:100%;border-collapse:collapse}td,th{padding:10px 12px;text-align:left;border-bottom:1px solid #f0f0f0;font-size:14px}th{font-weight:600;color:#666}th,tr:hover{background:#fafafa}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.badge-green{background:#f6ffed;color:#52c41a;border:1px solid #b7eb8f}.badge-blue{background:#e6f4ff;color:#1677ff;border:1px solid #91caff}.badge-orange{background:#fff7e6;color:#fa8c16;border:1px solid #ffd591}.badge-purple{background:#f9f0ff;color:#722ed1;border:1px solid #d3adf7}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh}.login-box{background:#fff;border-radius:16px;padding:40px;box-shadow:0 4px 24px rgba(0,0,0,.1);width:380px}.login-box h1{text-align:center;margin-bottom:8px;font-size:24px}.login-box p{text-align:center;color:#999;margin-bottom:32px;font-size:14px}.login-box .field{margin-bottom:16px}.login-box label{display:block;margin-bottom:6px;font-size:14px;color:#666}.login-box input{width:100%;padding:10px 14px}.login-box .btn{width:100%;padding:12px;font-size:16px;margin-top:8px}.error-msg{color:#ff4d4f;font-size:13px;margin-top:8px;text-align:center}.header{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid #f0f0f0;margin-bottom:20px}.header h1{font-size:20px}.header .user-info{display:flex;align-items:center;gap:12px;font-size:14px;color:#666}.tabs{display:flex;gap:8px;margin-bottom:20px}.tab{padding:8px 16px;border-radius:8px;border:1px solid #d9d9d9;background:#fff;cursor:pointer;font-size:14px;transition:all .2s}.tab.active{background:#1677ff;color:#fff;border-color:#1677ff}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:16px;gap:16px;margin-bottom:20px}.stat-card{background:#fff;border-radius:12px;padding:20px;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.06)}.stat-card .number{font-size:32px;font-weight:700;color:#1677ff}.stat-card .label{font-size:14px;color:#999;margin-top:4px}.user-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:16px;gap:16px}.user-stat-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px rgba(0,0,0,.06)}.user-stat-card .name{font-size:16px;font-weight:600;margin-bottom:8px}.user-stat-card .detail{font-size:13px;color:#666;line-height:1.8}.upload-area{border:2px dashed #d9d9d9;border-radius:12px;padding:40px;text-align:center;margin-bottom:16px}.upload-area textarea{width:100%;min-height:120px;padding:12px;border:1px solid #d9d9d9;border-radius:8px;font-size:13px;font-family:monospace;resize:vertical}.data-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:12px;gap:12px}.data-card{background:#fff;border-radius:10px;padding:16px;border:1px solid #f0f0f0;transition:all .2s}.data-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}.data-card .type-tag{margin-bottom:8px}.data-card .info-row{display:flex;justify-content:space-between;font-size:13px;color:#666;margin:4px 0}.data-card .info-row .value{color:#333;font-weight:500}.data-card .claim-btn{margin-top:12px;width:100%}.nav-links{display:flex;gap:12px}.nav-links a{color:#1677ff;text-decoration:none;font-size:14px}.nav-links a:hover{text-decoration:underline}@media (max-width:768px){.container{padding:12px}.login-box{width:90%;padding:24px}.stats-grid{grid-template-columns:repeat(2,1fr)}.data-cards{grid-template-columns:1fr}}