
		/* 训练样式从此开始（移除了误插入的JS） */
		html { font-size: 70%; }
		.app {
			display: flex;
			flex-direction: column;
			height: 100%;
			width: 100%;
			overflow: hidden;
		}
		.app-header {
			flex: 0 0 auto;
			padding: 12px 16px;
			background: var(--nav);
			border-bottom: 1px solid var(--divider);
			display: flex;
			align-items: center;
			justify-content: center;
		}
		.app-header .title { font-size: calc(18px * 0.9); font-weight: 600; color: var(--muted); }
		.app-header .subtitle { font-size: 12px; color: var(--muted); }
		.app-main {
			flex: 1 1 auto;
			overflow: hidden;
			position: relative;
		}
		.view {
			position: absolute;
			inset: 0;
			overflow-y: auto;
			padding: 16px 16px 88px;
			display: none;
		}
		.view.active { display: block; }
		.section {
			background: var(--card);
			border: 1px solid var(--divider);
			border-radius: 12px;
			padding: 16px;
			margin-bottom: 12px;
		}
		.section h3 {
			margin: 0 0 8px;
			font-size: calc(15px * 0.9);
		}
		.grid {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 12px;
		}
		/* 训练入口卡片样式 */
		.train-grid {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 14px 12px;
			justify-items: center;
		}
		.train-card {
			width: 100%;
			height: 14vh;
			min-height: 96px;
			position: relative;
			padding: 0;
			border: none !important;
			background: transparent !important;
			border-radius: 16px;
			font-size: 120%;
			overflow: visible;
		}
		.train-card .card-base,
		.train-card .card-top {
			position: absolute;
			left: 0;
			top: 0;
			width: 100%;
			height: 100%;
			border-radius: 16px;
		}
		.train-card .card-base {
			top: 6px;
			background: #1f4fb3;
			pointer-events: none;
		}
		.train-card .card-top {
			display: flex;
			align-items: center;
			justify-content: center;
			background: #2b79ff;
			color: #fff;
			font-size: 130%;
			transition: transform 120ms ease;
			user-select: none;
			pointer-events: none;
		}
		.train-card.usable:active .card-top { transform: translateY(4px); }
		.train-card.disabled { pointer-events: none; }
		.train-card.disabled .card-base { display: none; }
		.train-card.disabled .card-top {
			background: #2a3550;
			color: #9aa7bd99;
		}
		.btn {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			padding: 12px 14px;
			background: var(--btn);
			color: var(--text);
			border: 1px solid var(--divider);
			border-radius: 10px;
			cursor: pointer;
			user-select: none;
			text-decoration: none;
		}
		.btn.primary { background: linear-gradient(180deg, #4da3ff, #276dff); border-color: #276dff; color: #fff; }
		.btn.block { width: 100%; }
		.btn.disabled { background: var(--btn-disabled); color: #9aa7bd99; pointer-events: none; }
		.row { display: flex; align-items: center; gap: 8px; }
		.row.space-between { justify-content: space-between; }
		.kv { font-size: calc(13px * 0.9); color: var(--muted); }
		.kv b { color: var(--text); }
		.divider { height: 1px; background: var(--divider); margin: 12px 0; }
		.bottom-nav {
			position: fixed;
			left: 0; right: 0; bottom: 0;
			height: 64px;
			background: var(--nav);
			border-top: 1px solid var(--divider);
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			position: fixed;
			overflow: hidden;
		}
		.bottom-nav.bottom-nav--two-cols { grid-template-columns: repeat(2, 1fr); }
		.nav-item.nav-item--hidden { display: none; }
		.nav-item {
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			font-size: calc(18px * 0.9);
			color: var(--muted);
			cursor: pointer;
			position: relative;
		}
		.nav-item.active { color: var(--primary); }
		.nav-indicator {
			position: absolute;
			bottom: 6px;
			left: 0;
			width: 26px;
			height: 3px;
			border-radius: 2px;
			background: var(--primary);
			transition: transform 220ms ease, width 220ms ease;
			pointer-events: none;
		}
		.tag {
			display: inline-block;
			font-size: 11px;
			padding: 2px 6px;
			border-radius: 999px;
			border: 1px solid var(--divider);
			color: var(--muted);
		}
		canvas { display: block; }
		/* 训练容器态样式 */
		.training-overlay {
			position: fixed;
			inset: 0;
			display: none;
			z-index: 999;
			background: #f5f6fa;
		}
		.training-overlay.active { display: block; }
		.training-screen {
			position: absolute;
			inset: 0;
			display: flex;
			align-items: center;
			justify-content: center;
			user-select: none;
			touch-action: none;
		}
		/* 总结页：必须用 absolute 铺满 overlay。若误用 relative，高度会随内容撑开，overflow 不生效，底部按钮滚不到 */
		#train-summary.training-screen {
			align-items: stretch;
			justify-content: flex-start;
			overflow-y: auto;
			-webkit-overflow-scrolling: touch;
			overscroll-behavior: contain;
			touch-action: pan-y;
			padding: 56px 12px max(20px, env(safe-area-inset-bottom, 0px));
			box-sizing: border-box;
		}
		.training-text {
			color: #1a1a2e;
			font-weight: 800;
			font-size: calc(64px * 0.9);
			text-shadow: 0 2px 12px rgba(0,0,0,.4);
		}
		/* 瞬时视觉题干/作答统一字体样式（粗体大字号） */
		.mem-face {
			font-weight: 400;
			font-size: calc(64px * 0.9);
			font-family: 'Microsoft YaHei','PingFang SC','Heiti SC','Noto Sans CJK SC','Source Han Sans SC',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Inter,'Helvetica Neue',Arial,'Noto Sans',sans-serif;
			letter-spacing: 10px;
		}
		/* 题干数字固定高度占位，防上下抖动 */
		.mem-digits {
			height: 72px; /* 与字号匹配，留出行高 */
			display: flex;
			align-items: center;
			justify-content: center;
			text-align: center;
		}
		/* 交互禁用态 */
		.mem-disabled { opacity: 0.5; filter: grayscale(20%); pointer-events: none; }
		/* 瞬时视觉键盘与提交按钮样式 */
		.mem-key {
			width: 20vw;   /* 单键宽度：页面宽度的20% */
			height: 6vh;   /* 单键高度：页面高度的6% */
			font-size: calc(36px * 0.9); /* 1.5x，保留当前字号；如需跟随高度可再议 */
			border-radius: 12px;
			font-family: 'Microsoft YaHei','PingFang SC','Heiti SC','Noto Sans CJK SC','Source Han Sans SC',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Inter,'Helvetica Neue',Arial,'Noto Sans',sans-serif;
			font-weight: 400;
		}
		.mem-key:active {
			filter: brightness(1.25);
		}
		.mem-submit {
			width: 192px;  /* 3x 相对原64 */
			height: 80px;  /* 2x 相对原40 */
			font-size: calc(40px * 0.9); /* 放大 2x */
			border-radius: 12px;
		}
		/* 仅训练2：提交/下一题按钮在其槽位内降高至 64px（0.8x） */
		#mem-slot-cta .mem-submit { height: 64px; }
		.btn-warn {
			background: linear-gradient(180deg, #ffb84d, #ff8f1f);
			border-color: #ff8f1f;
			color: #111;
		}
		.mem-opt-active {
			background: #ffffff !important;
			color: #111 !important;
			border-color: #ffffff !important;
		}
		/* 瞬时视觉固定布局槽位，避免高度抖动 */
		#mem-layout { position: absolute; inset: 0; }
		.mem-slot {
			position: absolute;
			left: 0; right: 0;
			display: flex;
			align-items: center;
			justify-content: center;
		}
		.mem-slot-digits { top: 10%; height: 10%; }   /* 10%~20% */
		.mem-slot-input { top: 20%; height: 10%; }    /* 20%~30% */
		.mem-slot-keypad { top: 30%; height: 40%; }   /* 30%~70% */
		.mem-slot-cta { top: 75%; height: 5%; }       /* 75%~80% */
		.mem-slot-adjust { top: 88%; height: 8%; }    /* 下移速度档位：88%~96% */
		.toast {
			position: fixed;
			left: 50%;
			top: 50%;
			transform: translate(-50%, -50%);
			background: transparent;
			border: none;
			color: #1a1a2e;
			padding: 0;
			font-size: 14px;
			border-radius: 0;
			z-index: 30;
			display: none;
		}
		.toast.show { display: block; }
		.small { font-size: 12px; color: var(--muted); }
		.list { display: flex; flex-direction: column; gap: 8px; }
		.item { display: flex; justify-content: space-between; align-items: center; background: #111722; border: 1px solid var(--divider); border-radius: 10px; padding: 10px 12px; }
		/* 训练打开时隐藏底部导航，避免误解为同页 */
		.training-open .bottom-nav { display: none; }
		/* 初始ID遮罩 */
		#id-overlay { position: fixed; inset: 0; background: rgba(10,14,22,0.96); z-index: 2000; display: none; align-items: center; justify-content: center; }
		#id-dialog { background: #151922; border: 1px solid var(--divider); border-radius: 12px; width: min(88vw, 420px); padding: 18px 16px; box-shadow: 0 10px 30px rgba(0,0,0,.35); display: flex; flex-direction: column; gap: 12px; }
		#id-dialog h3 { margin: 0; font-size: calc(18px * 0.9); text-align: center; color: var(--text); }
		#id-input { width: 100%; padding: 12px 12px; border-radius: 10px; border: 1px solid var(--divider); background: #0f1320; color: var(--text); font-size: 14px; outline: none; }
		#id-confirm { width: 100%; padding: 12px 14px; border-radius: 10px; border: 1px solid #276dff; background: linear-gradient(180deg, #4da3ff, #276dff); color: #fff; cursor: pointer; font-size: 14px; }
		/* 瞬时视觉 - 介绍页参数槽位（80%~90%） */
		#mem-intro-params {
			position: absolute;
			left: 0; right: 0;
			top: 80%; height: 10%;
			display: flex;
			align-items: center;
			justify-content: center;
			pointer-events: auto;
		}
	