*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f7fa;min-height:100vh;padding:40px 20px}.container{max-width:900px;margin:0 auto}h1{text-align:center;color:#333;margin-bottom:30px;font-size:28px}.card{background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 8px rgba(0,0,0,.08)}.card,.card-title{margin-bottom:20px}.card-title{font-size:18px;font-weight:600;color:#333}.upload-area{border:2px dashed #ddd;border-radius:8px;padding:40px;text-align:center;cursor:pointer;transition:border-color .2s}.upload-area:hover{border-color:#4a90e2}.upload-icon{font-size:40px;margin-bottom:10px}.upload-text{color:#666;margin-bottom:5px}.upload-hint{font-size:13px;color:#999}.btn{display:block;width:100%;padding:14px;margin-top:20px;background:#4a90e2;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s}.btn:hover{background:#357abd}.btn:disabled{background:#ccc;cursor:not-allowed}.loading{display:none;text-align:center;padding:20px;color:#666}.loading.show{display:block}table{width:100%;border-collapse:collapse}td,th{padding:2px;text-align:center;border:1px solid #ccc}th{background:#f8f9fa;font-weight:600;color:#333}tr:last-child td{background:#f0f7ff;font-weight:600}.result-card{display:none}.result-card.show{display:block}.message{padding:12px;border-radius:8px;margin-bottom:15px;text-align:center}.message.success{background:#e8f5e9;color:#2e7d32}.message.error{background:#ffebee;color:#c62828}