/* ===== 极简分发系统 - 下载/上传页样式 ===== */
*{box-sizing:border-box;-webkit-box-sizing:border-box}
body,html{margin:0;padding:0;height:100%;min-height:100%}
body{
	font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue","Microsoft YaHei",Arial,sans-serif;
	-webkit-font-smoothing:antialiased;
	text-align:center;
	color:#3d3d3d;
	background:#f5f7fb;
}
/* 装饰渐变放独立固定层：
   避免 body 上 background-attachment:fixed + 径向渐变在部分
   Chrome/Edge(特定 GPU/驱动) 触发整页白屏的渲染 bug */
body::before{
	content:'';
	position:fixed;
	left:0;top:0;right:0;bottom:0;
	z-index:-1;
	pointer-events:none;
	background:
		radial-gradient(1200px 600px at 100% -10%, rgba(124,92,255,.12), transparent 60%),
		radial-gradient(1000px 500px at -10% 110%, rgba(79,110,247,.14), transparent 60%),
		#f5f7fb;
}
a{text-decoration:none}
img{border:0}
button{cursor:pointer}

.page-wrap{
	min-height:100%;
	display:flex;
	flex-direction:column;
	justify-content:center;
	justify-content:safe center;
	align-items:center;
	padding:24px 16px 40px;
	gap:20px;
}

/* 主卡片 */
.app-card{
	width:100%;
	max-width:420px;
	background:#fff;
	border-radius:24px;
	padding:40px 28px 32px;
	box-shadow:0 20px 60px rgba(50,80,180,.12);
	position:relative;
}

.app-icon{
	width:96px;height:96px;
	margin:0 auto 18px;
	border-radius:22px;
	overflow:hidden;
	background:#eef1fb;
	box-shadow:0 10px 26px rgba(79,110,247,.22);
	display:flex;
	align-items:center;
	justify-content:center;
}
.app-icon img{width:100%;height:100%;display:block}

.app-name{
	margin:0 0 10px;
	font-size:24px;
	font-weight:700;
	color:#1f2333;
	line-height:1.3;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.app-meta{margin:0 0 4px;font-size:14px;color:#8a92a6}
.app-meta.sub{margin-bottom:6px;font-size:12px;color:#b2b8c7}
.app-meta .tag{
	display:inline-block;
	padding:1px 8px;
	border-radius:5px;
	font-size:11px;
	color:#4f6ef7;
	background:rgba(79,110,247,.1);
	font-weight:600;
}
.app-meta .dot{color:#c7cbd8;margin:0 4px}

/* 按钮 */
.app-actions{margin:26px 0 6px}
.app-actions .btn-primary{
	display:block;
	width:100%;
	padding:14px 20px;
	border:0;
	border-radius:14px;
	font-size:16px;
	font-weight:600;
	color:#fff;
	background:linear-gradient(135deg,#4f6ef7,#7b5cff);
	box-shadow:0 10px 24px rgba(79,110,247,.32);
	transition:all .2s;
	-webkit-transition:all .2s;
	letter-spacing:1px;
}
.app-actions .btn-primary:active{transform:scale(.97);-webkit-transform:scale(.97)}
.app-actions .btn-primary[disabled],.app-actions .btn-primary:disabled{
	background:#c9cfdd;
	box-shadow:none;
	cursor:not-allowed;
}
.app-actions p{line-height:1.6;padding:8px 0;color:#4f6ef7;font-weight:500;font-size:14px}
.app-actions .trust-tip{font-size:13px;color:#8a92a6;font-weight:400;line-height:1.7;padding:8px 6px 0}
.app-actions .trust-tip i{font-style:normal;color:#4f6ef7;font-weight:600}

/* 上传表单 */
.up-form{text-align:left}
.up-label{display:block;margin:18px 0 8px;font-size:13px;color:#8a92a6;font-weight:600}
.up-input{
	width:100%;
	padding:13px 16px;
	border:1px solid #e3e7f2;
	border-radius:12px;
	font-size:15px;
	color:#1f2333;
	background:#fafbfe;
	outline:none;
	transition:border .2s;
}
.up-input:focus{border-color:#7b5cff}
.up-file{
	border:2px dashed #d5daf0;
	border-radius:14px;
	padding:34px 16px;
	text-align:center;
	cursor:pointer;
	transition:border .2s,background .2s;
	background:#fafbfe;
}
.up-file:hover{border-color:#7b5cff;background:#f5f4ff}
.up-file p{margin:0;font-size:14px;color:#8a92a6;word-break:break-all}
.progress{
	margin-top:14px;
	height:8px;
	background:#eef1fb;
	border-radius:4px;
	overflow:hidden;
}
.progress-bar{
	height:100%;
	width:0;
	background:linear-gradient(90deg,#4f6ef7,#7b5cff);
	border-radius:4px;
	transition:width .2s;
}
.up-status{
	margin:12px 0 0;
	font-size:13px;
	color:#8a92a6;
	line-height:1.7;
	min-height:18px;
	word-break:break-all;
}
.up-status a{color:#4f6ef7}
.up-form .btn-primary{margin-top:20px;width:100%;
	padding:14px 20px;border:0;border-radius:14px;
	font-size:16px;font-weight:600;color:#fff;
	background:linear-gradient(135deg,#4f6ef7,#7b5cff);
	box-shadow:0 10px 24px rgba(79,110,247,.32);
	letter-spacing:1px;
}
.up-form .btn-primary:disabled{background:#c9cfdd;box-shadow:none;cursor:not-allowed}

/* 二维码 */
.app-qrcode{
	margin-top:26px;
	padding-top:24px;
	border-top:1px dashed #e7eaf3;
}
.app-qrcode img{width:116px;height:116px;border-radius:14px;background:#fff;padding:8px;border:1px solid #eef0f7}
.qrcode-tip{margin:12px 0 0;font-size:12px;color:#b2b8c7;line-height:1.8}
.qrcode-tip .link{color:#4f6ef7;word-break:break-all}

/* 底部 */
.app-footer{
	margin-top:8px;
	padding:0 20px;
	max-width:420px;
	font-size:12px;
	color:#aeb4c4;
	line-height:1.7;
}
.app-footer a{color:#4f6ef7}

/* 微信提示条 */
.wechat-tip-bar{
	position:fixed;top:0;left:0;right:0;z-index:100;
	padding:12px 16px;
	background:linear-gradient(135deg,#4f6ef7,#7b5cff);
	color:#fff;
	font-size:14px;
	line-height:1.5;
}
.wechat-tip-bar span{font-weight:700}

/* 移动端 */
@media (max-width:480px){
	.page-wrap{padding:20px 14px 32px;justify-content:flex-start}
	.app-card{padding:32px 20px 26px}
}
