/* ============================================
   全局变量和基础样式
   ============================================ */
:root {
	/* 主色调 - 纯色系，无渐变 */
	--colorPrimary: #10b981;
	--colorPrimaryHover: #059669;
	--colorPrimaryActive: #047857;
	--colorSecondary: #1e293b;
	--colorBackground: #0f172a;
	--colorSurface: #1e293b;
	--colorCard: #1e293b;
	--colorCardHover: #334155;
	
	/* 文本颜色 */
	--colorTextPrimary: #f8fafc;
	--colorTextSecondary: #94a3b8;
	--colorTextAccent: #34d399;
	--colorTextWarning: #f87171;
	
	/* 边框和阴影 */
	--colorBorder: rgba(16, 185, 129, 0.25);
	--colorBorderActive: #10b981;
	--shadowSmall: 0 2px 8px rgba(0, 0, 0, 0.5);
	--shadowMedium: 0 4px 16px rgba(0, 0, 0, 0.6);
	--shadowLarge: 0 8px 32px rgba(0, 0, 0, 0.7);
	--shadowButton: 0 4px 12px rgba(16, 185, 129, 0.35);
	
	/* 间距 - 移动端优化 */
	--spacingXs: 6px;
	--spacingSm: 10px;
	--spacingMd: 16px;
	--spacingLg: 20px;
	--spacingXl: 24px;
	--spacingXxl: 32px;
	
	/* 圆角 */
	--radiusSm: 8px;
	--radiusMd: 12px;
	--radiusLg: 16px;
	--radiusXl: 20px;
	--radiusFull: 50px;
	
	/* 字体大小 - 移动端优化 */
	--fontSizeXs: 11px;
	--fontSizeSm: 13px;
	--fontSizeMd: 15px;
	--fontSizeLg: 17px;
	--fontSizeXl: 20px;
	--fontSizeXxl: 24px;
	--fontSizeXxxl: 28px;
	
	/* 行高 */
	--lineHeightTight: 1.3;
	--lineHeightNormal: 1.5;
	--lineHeightRelaxed: 1.7;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	-webkit-tap-highlight-color: transparent;
}

body {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;
	font-size: var(--fontSizeMd);
	color: var(--colorTextPrimary);
	background: var(--colorBackground);
	min-height: 100vh;
	overflow-x: hidden;
	line-height: var(--lineHeightNormal);
	position: relative;
	padding: var(--spacingMd);
}

a {
	text-decoration: none;
	color: inherit;
}

a img {
	border: 0;
}

/* ============================================
   动态背景
   ============================================ */
#animatedBackground {
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 1;
	background: var(--colorBackground);
}

/* ============================================
   顶部滚动条
   ============================================ */
.scrollBar {
	position: relative;
	z-index: 3;
	margin: 0 auto var(--spacingMd);
	padding: var(--spacingSm) var(--spacingMd);
	background: var(--colorSurface);
	border: 1px solid var(--colorBorder);
	border-radius: var(--radiusLg);
	overflow: hidden;
	box-shadow: var(--shadowSmall);
	max-width: 100%;
}

.scrollTrack {
	display: inline-flex;
	gap: var(--spacingLg);
	min-width: 100%;
	animation: scrollMove 18s linear infinite;
	white-space: nowrap;
	color: var(--colorTextSecondary);
	font-size: var(--fontSizeSm);
}

.scrollItem {
	display: inline-flex;
	align-items: center;
	gap: var(--spacingXs);
	padding: var(--spacingXs) var(--spacingSm);
	border-radius: var(--radiusSm);
	background: var(--colorCard);
	color: var(--colorTextPrimary);
}

@keyframes scrollMove {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

/* ============================================
   主容器 - 移动端优先
   ============================================ */
#root {
	z-index: 2;
	position: relative;
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	padding-top: var(--spacingLg);
	padding-bottom: var(--spacingXxl);
}

.mainContainer {
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	padding: var(--spacingXl) var(--spacingLg);
	background: var(--colorCard);
	border-radius: var(--radiusXl);
	border: 1px solid var(--colorBorder);
	box-shadow: var(--shadowLarge);
}

/* ============================================
   头部和Logo
   ============================================ */
.topSection {
	width: 100%;
	height: auto;
	overflow: hidden;
	text-align: center;
	margin-bottom: var(--spacingXl);
}

.brandImage {
	width: 90px;
	height: 90px;
	border-radius: 50%;
	box-shadow: var(--shadowMedium);
	object-fit: cover;
}

/* ============================================
   标题和文本
   ============================================ */
.pageTitle {
	font-size: var(--fontSizeXxl);
	color: var(--colorTextAccent);
	line-height: var(--lineHeightTight);
	font-weight: 700;
	margin-bottom: var(--spacingMd);
	text-align: center;
	letter-spacing: -0.3px;
}

.introText {
	font-size: var(--fontSizeMd);
	color: var(--colorTextSecondary);
	line-height: var(--lineHeightNormal);
	margin-bottom: var(--spacingXl);
	text-align: center;
	font-weight: 400;
	padding: 0 var(--spacingSm);
}

/* ============================================
   卡片样式
   ============================================ */
.infoCard {
	background: var(--colorCard);
	border-radius: var(--radiusLg);
	padding: var(--spacingXl);
	margin-bottom: var(--spacingLg);
	border: 1px solid var(--colorBorder);
	box-shadow: var(--shadowMedium);
	transition: all 0.2s ease;
}

.infoCard:last-child {
	margin-bottom: 0;
}

/* ============================================
   进度条
   ============================================ */
.stepBarWrapper {
	background: var(--colorSurface);
	height: 6px;
	border-radius: var(--radiusFull);
	overflow: hidden;
	margin-bottom: var(--spacingLg);
	position: relative;
}

.stepBar {
	height: 100%;
	background: var(--colorPrimary);
	width: 0%;
	transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
	border-radius: var(--radiusFull);
	position: relative;
}

.stepText {
	font-size: var(--fontSizeSm);
	color: var(--colorTextSecondary);
	text-align: center;
	font-weight: 600;
	margin-bottom: var(--spacingXl);
	letter-spacing: 0.3px;
	text-transform: uppercase;
}

/* ============================================
   表单部分
   ============================================ */
.formSection {
	display: block;
	animation: fadeIn 0.3s ease;
}

.formTitle {
	text-align: left;
	font-size: var(--fontSizeLg);
	color: var(--colorTextPrimary);
	font-weight: 600;
	margin-bottom: var(--spacingXl);
	line-height: var(--lineHeightNormal);
	padding: 0 var(--spacingXs);
}

.choiceList {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--spacingMd);
}

.choiceItem {
	display: flex;
	align-items: center;
	padding: var(--spacingLg);
	background: var(--colorSurface);
	border: 2px solid var(--colorBorder);
	border-radius: var(--radiusMd);
	cursor: pointer;
	transition: all 0.2s ease;
	font-weight: 500;
	font-size: var(--fontSizeMd);
	color: var(--colorTextPrimary);
	position: relative;
	overflow: hidden;
}

.choiceItem::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 4px;
	background: var(--colorPrimary);
	transform: scaleY(0);
	transition: transform 0.2s ease;
}

.choiceItem:active {
	background: var(--colorCardHover);
	border-color: var(--colorBorderActive);
	transform: scale(0.98);
}

.choiceItem:active::before {
	transform: scaleY(1);
}

.choiceItem label {
	display: flex;
	align-items: center;
	width: 100%;
	cursor: pointer;
	gap: var(--spacingMd);
}

.choiceItem label input[type="radio"] {
	width: 20px;
	height: 20px;
	cursor: pointer;
	accent-color: var(--colorPrimary);
	flex-shrink: 0;
}

/* ============================================
   完成部分
   ============================================ */
.resultSection {
	display: block;
	text-align: center;
	animation: fadeIn 0.4s ease;
}

.resultTitle {
	font-size: var(--fontSizeXl);
	color: var(--colorTextAccent);
	font-weight: 700;
	margin-bottom: var(--spacingLg);
	line-height: var(--lineHeightTight);
}

.resultText {
	font-size: var(--fontSizeMd);
	color: var(--colorTextSecondary);
	text-align: center;
	font-weight: 400;
	margin-bottom: var(--spacingXl);
	line-height: var(--lineHeightRelaxed);
	padding: 0 var(--spacingSm);
}

.actionButton {
	overflow: hidden;
	position: relative;
	background: var(--colorPrimary);
	color: var(--colorTextPrimary);
	border: none;
	padding: var(--spacingLg) var(--spacingXl);
	border-radius: var(--radiusMd);
	font-size: var(--fontSizeLg);
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
	box-shadow: var(--shadowButton);
	width: 100%;
	letter-spacing: 0.5px;
}

.actionButton:active {
	transform: scale(0.98);
	box-shadow: 0 2px 8px rgba(74, 144, 226, 0.25);
	background: var(--colorPrimaryActive);
}

/* ============================================
   通知部分
   ============================================ */
.noticeTitle {
	font-size: var(--fontSizeLg);
	color: var(--colorTextWarning);
	font-weight: 600;
	margin-bottom: var(--spacingLg);
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--spacingSm);
}

.noticeText {
	overflow: hidden;
}

.noticeText p {
	color: var(--colorTextSecondary);
	line-height: var(--lineHeightRelaxed);
	font-size: var(--fontSizeSm);
	margin-bottom: var(--spacingMd);
	text-align: left;
}

.noticeText p:last-child {
	margin-bottom: 0;
}

/* ============================================
   链接部分
   ============================================ */
.footerLinks {
	text-align: center;
	border-top: 1px solid var(--colorBorder);
	margin-top: var(--spacingXl);
	padding-top: var(--spacingLg);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--spacingMd);
}

.footerLinks a {
	display: inline-block;
	color: var(--colorTextAccent);
	text-decoration: none;
	font-size: var(--fontSizeXs);
	transition: color 0.2s ease;
	padding: var(--spacingXs) var(--spacingSm);
	border-radius: var(--radiusSm);
	font-weight: 500;
}

.footerLinks a:active {
	color: var(--colorPrimaryHover);
	background: var(--colorSurface);
}

/* ============================================
   统计信息
   ============================================ */
.countBox {
	margin-top: var(--spacingXl);
	padding: var(--spacingLg);
	border: 1px solid var(--colorBorder);
	border-radius: var(--radiusLg);
	background: var(--colorCard);
	text-align: center;
	box-shadow: var(--shadowSmall);
}

.countNumber {
	font-size: var(--fontSizeXxl);
	font-weight: 700;
	color: var(--colorTextAccent);
}

.countLabel {
	font-size: var(--fontSizeSm);
	color: var(--colorTextSecondary);
	margin-top: var(--spacingSm);
}

/* ============================================
   弹窗样式
   ============================================ */
.popupDialog {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	animation: fadeIn 0.3s ease;
	padding: var(--spacingLg);
}

.popupOverlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.85);
	backdrop-filter: blur(4px);
}

.popupContent {
	position: relative;
	background: var(--colorCard);
	border-radius: var(--radiusXl);
	padding: var(--spacingXxl);
	max-width: 100%;
	width: 100%;
	border: 1px solid var(--colorBorder);
	box-shadow: var(--shadowLarge);
	animation: slideUp 0.3s ease;
	z-index: 10001;
}

.popupTitle {
	font-size: var(--fontSizeXxl);
	color: var(--colorTextAccent);
	font-weight: 700;
	margin-bottom: var(--spacingLg);
	text-align: center;
	line-height: var(--lineHeightTight);
}

.popupBody {
	font-size: var(--fontSizeMd);
	color: var(--colorTextSecondary);
	line-height: var(--lineHeightRelaxed);
	margin-bottom: var(--spacingXl);
	text-align: center;
}

.popupList {
	margin: 0;
	padding-left: var(--spacingLg);
	text-align: left;
	color: var(--colorTextSecondary);
	font-size: var(--fontSizeSm);
	line-height: var(--lineHeightNormal);
}

.popupList li {
	margin-bottom: var(--spacingXs);
}

.popupButton {
	width: 100%;
	background: var(--colorPrimary);
	color: var(--colorTextPrimary);
	border: none;
	padding: var(--spacingLg) var(--spacingXl);
	border-radius: var(--radiusMd);
	font-size: var(--fontSizeLg);
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
	box-shadow: var(--shadowButton);
	letter-spacing: 0.5px;
}

.popupButton:active {
	transform: scale(0.98);
	box-shadow: 0 2px 8px rgba(74, 144, 226, 0.25);
	background: var(--colorPrimaryActive);
}

/* ============================================
   数据板块与表格
   ============================================ */
.paddingY2xl {
	padding: var(--spacingXxl) var(--spacingSm);
}

.wrapperMain {
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	padding: 0 var(--spacingSm);
}

.alignCenter {
	text-align: center;
}

.marginBottom2xl {
	margin-bottom: var(--spacingXxl);
}

.marginTop2xl {
	margin-top: var(--spacingXxl);
}

.badgeTag {
	display: inline-block;
	padding: var(--spacingXs) var(--spacingSm);
	background: var(--colorSurface);
	color: var(--colorTextAccent);
	font-size: var(--fontSizeXs);
	font-weight: 600;
	border-radius: var(--radiusFull);
	border: 1px solid var(--colorBorder);
	letter-spacing: 0.4px;
}

.blockTitle {
	margin-top: var(--spacingMd);
	font-size: var(--fontSizeXxl);
	color: var(--colorTextPrimary);
	font-weight: 700;
	line-height: var(--lineHeightTight);
}

.blockSubtitle {
	margin-top: var(--spacingSm);
	font-size: var(--fontSizeSm);
	color: var(--colorTextSecondary);
	line-height: var(--lineHeightRelaxed);
}

.dataWrapper {
	margin-top: var(--spacingXl);
	border: 1px solid var(--colorBorder);
	border-radius: var(--radiusLg);
	overflow: hidden;
	background: var(--colorSurface);
	box-shadow: var(--shadowMedium);
}

.dataTable {
	width: 100%;
	border-collapse: collapse;
	min-width: 100%;
}

.dataHead {
	background: var(--colorCard);
}

.dataHeadCell {
	padding: var(--spacingSm);
	text-align: left;
	color: var(--colorTextSecondary);
	font-size: var(--fontSizeXs);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	border-bottom: 1px solid var(--colorBorder);
}

.dataBody {
	background: transparent;
}

.dataRow:nth-child(even) {
	background: rgba(255, 255, 255, 0.02);
}

.dataCell {
	padding: var(--spacingSm);
	color: var(--colorTextPrimary);
	font-size: var(--fontSizeSm);
	border-bottom: 1px solid var(--colorBorder);
}

.dataCellBold {
	font-weight: 700;
}

.dataCellAccent {
	color: var(--colorTextAccent);
	font-weight: 600;
}

.dataCellMuted {
	color: var(--colorTextSecondary);
}

.linkButton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--spacingSm);
	padding: var(--spacingSm) var(--spacingLg);
	background: var(--colorPrimary);
	color: var(--colorTextPrimary);
	border-radius: var(--radiusFull);
	font-size: var(--fontSizeSm);
	font-weight: 600;
	text-decoration: none;
	box-shadow: var(--shadowButton);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.linkButton:active {
	transform: translateY(1px);
	box-shadow: 0 2px 10px rgba(74, 144, 226, 0.25);
}

.sizeLg {
	font-size: var(--fontSizeLg);
}

.colorSecondary {
	color: var(--colorTextSecondary);
}

.weightMedium {
	font-weight: 600;
}

.marginBottomMd {
	margin-bottom: var(--spacingMd);
}

.hideSm {
	display: none;
}

.hideMd {
	display: none;
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes slideUp {
	from {
		transform: translateY(20px);
		opacity: 0;
	}
	to {
		transform: translateY(0);
		opacity: 1;
	}
}

/* ============================================
   响应式设计 - 移动端优先
   ============================================ */
@media (min-width: 480px) {
	body {
		padding: var(--spacingLg);
	}
	
	.scrollBar {
		max-width: 520px;
	}
	
	.wrapperMain {
		padding: 0 var(--spacingMd);
	}
	
	.hideSm {
		display: table-cell;
	}
	
	#root {
		padding-top: var(--spacingXl);
	}
	
	.mainContainer {
		padding: var(--spacingXxl) var(--spacingXl);
		max-width: 500px;
	}
	
	.brandImage {
		width: 100px;
		height: 100px;
	}
	
	.pageTitle {
		font-size: var(--fontSizeXxxl);
	}
	
	.introText {
		font-size: var(--fontSizeLg);
	}
	
	.formTitle {
		font-size: var(--fontSizeXl);
	}
	
	.choiceItem {
		padding: var(--spacingXl);
	}
	
	.popupContent {
		max-width: 420px;
		padding: var(--spacingXxl);
	}
	
	.popupTitle {
		font-size: 26px;
	}
}

@media (min-width: 768px) {
	body {
		padding: var(--spacingXl);
	}
	
	.mainContainer {
		max-width: 500px;
		padding: var(--spacingXxl) var(--spacingXxl);
	}
	
	.brandImage {
		width: 110px;
		height: 110px;
	}
	
	.pageTitle {
		font-size: 30px;
	}
	
	.introText {
		font-size: var(--fontSizeLg);
	}
	
	.infoCard {
		padding: var(--spacingXxl);
	}
	
	.formTitle {
		font-size: var(--fontSizeXl);
	}
	
	.choiceItem {
		padding: var(--spacingXl) var(--spacingXxl);
		font-size: var(--fontSizeLg);
	}
	
	.actionButton {
		font-size: var(--fontSizeXl);
		padding: var(--spacingXl) var(--spacingXxl);
	}
	
	.wrapperMain {
		padding: 0 var(--spacingLg);
	}
	
	.hideMd {
		display: table-cell;
	}
	
	.popupContent {
		max-width: 480px;
		padding: 36px;
	}
	
	.popupTitle {
		font-size: 28px;
	}
	
	.popupBody {
		font-size: var(--fontSizeLg);
	}
	
	.popupButton {
		font-size: var(--fontSizeXl);
		padding: var(--spacingXl) var(--spacingXxl);
	}
}

/* ============================================
   横屏优化
   ============================================ */
@media (max-height: 600px) and (orientation: landscape) {
	body {
		padding: var(--spacingSm);
	}
	
	#root {
		padding-top: var(--spacingMd);
		padding-bottom: var(--spacingLg);
	}
	
	.mainContainer {
		padding: var(--spacingLg);
	}
	
	.topSection {
		margin-bottom: var(--spacingLg);
	}
	
	.brandImage {
		width: 70px;
		height: 70px;
	}
	
	.pageTitle {
		font-size: var(--fontSizeXl);
		margin-bottom: var(--spacingSm);
	}
	
	.introText {
		font-size: var(--fontSizeSm);
		margin-bottom: var(--spacingLg);
	}
}
