
		:root{
			--primary:#0074FF;
			--primary-light:#EAF2FF;
			--primary-dark:#0059CC;
			--text-dark:#1a1a2e;
			--text-gray:#7a7a8c;
			--text-light:#999;
			--border:#eef0f5;
			--card:#ffffff;
			--body-bg:#f4f6fb;
			--up:#01BD9B;
			--down:#EF4444;
			--radius:12px;
			--shadow:0 4px 16px rgba(26,26,46,0.06);
		}
		@font-face{
			font-family:'Nucleo'; font-style:normal; font-weight:700; font-display:swap;
			src:url(../fonts/Nucleo.ttf) format('truetype');
		}
		html{ font-size:18px; }
		*{ margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
		html,body{ height:100%; }
		body{
			font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
			background-color:#f4f6fb;
			background-image:url(../images/bg-global.webp);
			background-repeat:no-repeat;
			background-position:center top;
			background-size:cover;
			background-attachment:fixed;
			color:var(--text-dark);
			font-size:0.875rem;
			line-height:1.5;
			overflow-x:clip;
			display:flex; flex-direction:column; min-height:100vh;
		}
		a{ text-decoration:none; color:inherit; }
		ul{ list-style:none; }
		img{ max-width:100%; }

		/* ============ 主容器 ============ */
		.main{
			max-width:1280px; margin:0 auto; padding:14px 14px 14px;
			padding-bottom:calc(14px + env(safe-area-inset-bottom));
			flex:1; width:100%;
		}

		/* ============ 页头 + 标语 + 检索（第一部分，保持不变） ============ */
		.page-head{
			display:flex; align-items:center; justify-content:space-between;
			gap:12px; margin-bottom:14px; flex-wrap:wrap;
		}
		.page-head h3, .page-head h1{ font-size:20px; font-weight:800; line-height:1.3; }
		.slogan-slider{
			position:relative; margin-top:4px;
		}
		.slogan-item{
			position:relative; top:0; left:0; width:100%;
			font-size:13px; color:var(--text-gray);
			line-height:22px;
			opacity:0; transform:translateY(8px);
			transition:opacity .5s ease, transform .5s ease;
			white-space:normal; word-break:break-word;
		}
		.slogan-item.active{ opacity:1; transform:translateY(0); }
		.slogan-item.leaving{ opacity:0; transform:translateY(-8px); }
		.page-head-search{
			display:flex; align-items:center; gap:0;
			background:var(--card);
			border:1px solid var(--border);
			border-radius:20px;
			padding:0 6px 0 10px;
			flex:1 1 100%;
			min-width:0;
			box-shadow:var(--shadow);
		}
		.page-head-search .search-icon{ width:15px; height:15px; color:var(--text-light); flex-shrink:0; }
		.page-head-search input{
			flex:1; border:none; background:transparent; outline:none;
			padding:8px 6px; font-size:0.812rem; color:var(--text-dark); min-width:0;
		}
		.page-head-search input:-webkit-autofill,
		.page-head-search input:-webkit-autofill:hover,
		.page-head-search input:-webkit-autofill:focus{
			-webkit-box-shadow:0 0 0 1000px var(--card) inset;
			-webkit-text-fill-color:var(--text-dark);
			transition:background-color 9999s ease-out;
		}
		.page-head-search button{
			border:none; background:var(--primary); color:#fff;
			border-radius:16px; padding:6px 16px; font-size:0.812rem; font-weight:600;
			cursor:pointer; flex-shrink:0;
		}
		.page-head-search button:hover{ background:var(--primary-dark); }

		/* ============ 通用卡片（沿用现有卡片样式） ============ */
		.card{
			background:var(--card); border-radius:var(--radius);
			box-shadow:var(--shadow); overflow:hidden;
		}
		.card-header{
			display:flex; align-items:center; justify-content:space-between;
			padding:14px 16px; border-bottom:1px solid #f5f5f5;
		}
		.card-header .tt{ display:flex; align-items:center; gap:8px; }
		.card-header h6{ font-size:0.875rem; font-weight:700; color:var(--text-dark); }
		.news-icon{ font-size:1.0rem; }
		.card-actions{ display:flex; align-items:center; gap:10px; }
		.news-more{ font-size:0.75rem; color:var(--primary); cursor:pointer; white-space:nowrap; }
		.news-loading{
			grid-column:1 / -1;
			display:flex; align-items:center; justify-content:center;
			min-height:150px; padding:24px 0;
			color:#ccc; font-size:0.75rem; text-align:center;
		}
		.news-item-empty{
			grid-column:1 / -1;
			text-align:center; padding:32px 0; color:#ccc; font-size:0.75rem;
		}

		/* ============ 第二部分：资讯(左) | 工具+模型(右) ============ */
		.home-sec2{
			display:grid; grid-template-columns:1fr; gap:14px;
			margin-bottom:14px;
		}
		.home-right{ display:flex; flex-direction:column; gap:14px; min-width:0; }
		.home-card{ display:flex; flex-direction:column; min-width:0; }
		.home-card-model{ flex:1; }

		/* 资讯卡片网格：等高等宽，2列×5行，弹性均分填满 */
		.ncard-grid{
			flex:1;
			padding:12px 14px 14px;
			display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
			grid-template-rows:repeat(5, 1fr);
			gap:12px 12px; align-content:start;
		}
		.ncard{
			display:flex; flex-direction:column; min-width:0;
			border:1px solid var(--border); border-radius:10px; overflow:hidden;
			cursor:pointer; background:#fff;
			transition:box-shadow .2s ease, transform .2s ease;
		}
		.ncard:hover{ box-shadow:0 6px 18px rgba(26,26,46,0.09); transform:translateY(-2px); }
		.ncard-cover{
			width:100%; height:88px; object-fit:cover; display:block;
			background:#f0f2f6; flex-shrink:0;
		}
		.ncard-body{
			padding:8px 10px 9px; flex:1; display:flex; flex-direction:column; gap:4px; min-width:0;
		}
		.ncard-title{
			font-size:0.812rem; font-weight:400; color:var(--text-dark); line-height:1.35;
			overflow:hidden; text-overflow:ellipsis; display:-webkit-box;
			-webkit-line-clamp:2; -webkit-box-orient:vertical;
		}
		.ncard-summary{
				font-size:0.688rem; color:var(--text-light); line-height:1.8;
				overflow:hidden; text-overflow:ellipsis; display:-webkit-box;
				-webkit-line-clamp:2; -webkit-box-orient:vertical;
			}
		.ncard-meta{
			margin-top:auto; padding-top:3px;
			display:flex; align-items:center; gap:5px; font-size:0.625rem; color:#bbb;
		}
		.ncard-meta .src{
			color:var(--primary); font-weight:500; min-width:0;
			white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
		}
		.ncard-meta .views{ flex-shrink:0; }

		/* 工具小卡片：2列，多属性 */
		.tool-grid{
			padding:12px 14px 14px;
			display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
			gap:10px; align-content:start;
		}
		.tool-card{
			display:flex; align-items:flex-start; gap:8px; min-width:0;
			border:1px solid var(--border); border-radius:10px; padding:9px 10px;
			cursor:pointer; background:#fff;
			transition:box-shadow .2s ease, transform .2s ease;
		}
		.tool-card:hover{ box-shadow:0 4px 14px rgba(26,26,46,0.09); transform:translateY(-1px); }
		.tool-card img{
			width:36px; height:36px; border-radius:8px; object-fit:cover;
			flex-shrink:0; background:#f0f2f6;
		}
		.tool-card .t-body{ min-width:0; flex:1; display:flex; flex-direction:column; gap:3px; }
		.tool-card .t-name{
			font-size:0.75rem; font-weight:600; color:var(--text-dark);
			white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
		}
		.tool-card .t-desc{
			font-size:0.625rem; color:var(--text-light); line-height:1.3;
			overflow:hidden; text-overflow:ellipsis; display:-webkit-box;
			-webkit-line-clamp:1; -webkit-box-orient:vertical;
		}
		.tool-card .t-meta{
			font-size:0.625rem; color:#bbb; margin-top:auto;
			display:flex; align-items:center; gap:5px; min-width:0;
		}
		.tool-card .t-meta .t-cat{ color:var(--primary); flex-shrink:0; max-width:55%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
		.tool-card .t-meta .t-views{ flex-shrink:0; }

		/* 模型小卡片：2列×5行，弹性均分填满 */
		.model-grid{
			flex:1;
			padding:12px 14px 14px;
			display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
			grid-template-rows:repeat(5, 1fr);
			gap:10px; align-content:start;
		}
		.model-card{
			min-width:0; display:flex; flex-direction:column; gap:3px;
			border:1px solid var(--border); border-radius:10px; padding:9px 10px;
			cursor:pointer; background:#fff;
			transition:box-shadow .2s ease, transform .2s ease;
		}
		.model-card:hover{ box-shadow:0 4px 14px rgba(26,26,46,0.09); transform:translateY(-1px); }
		.model-card .m-name{
			font-size:0.75rem; font-weight:600; color:var(--text-dark);
			white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
		}
		.model-card .m-org{ font-size:0.625rem; color:var(--primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
		.model-card .m-metric{ font-size:0.625rem; color:var(--text-light); }
		.model-card .m-extra{
			font-size:0.625rem; color:#bbb; margin-top:2px;
			white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
		}
		.model-card .m-head{ display:flex; align-items:center; justify-content:space-between; gap:6px; min-width:0; }
		.model-card .m-head .m-name{ flex:1; min-width:0; }
		.model-card .m-tag{
			flex-shrink:0; font-size:0.625rem; font-weight:400; line-height:1.5;
			color:#fff; background:var(--primary); border-radius:6px; padding:0 5px;
			white-space:nowrap; margin-left:6px;
		}
		.model-card .m-tag-cn{ background:#e8463a; }
		.model-card .m-tag-ov{ background:var(--primary); }
		.model-card .m-meta2{
			font-size:0.625rem; color:#999; margin-top:2px;
			white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
		}

		/* ============ 统计卡片（第三部分，横向滚动，样式与交互不变） ============ */
		.stats-carousel{ position:relative; margin-bottom:14px; }
		.stats-viewport{
			overflow-x:auto; scroll-snap-type:x mandatory;
			-webkit-overflow-scrolling:touch; scrollbar-width:none;
		}
		.stats-viewport::-webkit-scrollbar{ display:none; }
		.stats-track{ display:flex; gap:12px; }
		.ic-chart-card{
			flex:0 0 calc((100% - 12px)/2); min-width:0; box-sizing:border-box;
			scroll-snap-align:start;
			background:var(--card); border-radius:var(--radius);
			box-shadow:var(--shadow); padding:14px; display:flex; flex-direction:column;
			gap:10px;
		}
		.carousel-arrow{
			position:absolute; top:50%; transform:translateY(-50%); z-index:2;
			width:30px; height:30px; border:none; border-radius:50%;
			background:rgba(255,255,255,0.92); box-shadow:0 2px 8px rgba(0,0,0,0.15);
			color:var(--text-dark); font-size:1rem; font-weight:600; line-height:1;
			cursor:pointer; display:flex; align-items:center; justify-content:center;
			transition:all .2s;
		}
		.carousel-arrow:hover{ background:var(--primary); color:#fff; }
		.carousel-prev{ left:4px; }
		.carousel-next{ right:4px; }
		.carousel-arrow:disabled{ opacity:.35; cursor:not-allowed; }
		.card-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
		.card-head h6{ font-size:0.812rem; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
		.badge{
			font-size:0.625rem; font-weight:400; padding:3px 8px; border-radius:10px;
			background:var(--primary-light); color:var(--primary); white-space:nowrap; flex-shrink:0;
		}
		.data-value{ font-size:0.75rem; font-weight:400; color:var(--text-gray); white-space:nowrap; }
		.data-value b{ color:var(--text-dark); }
		.ai-rank-item{ display:flex; align-items:center; gap:6px; margin-bottom:8px; }
		.ai-rank-item:last-child{ margin-bottom:0; }
		.rank-dot{ width:7px; height:7px; border-radius:50%; flex-shrink:0; }
		.rank-name{ font-size:0.688rem; font-weight:400; color:var(--text-dark); white-space:nowrap; min-width:0; overflow:hidden; text-overflow:ellipsis; }
		.rank-bar-wrap{ flex:1; height:5px; background:#f0f2f5; border-radius:3px; overflow:hidden; min-width:20px; }
		.rank-bar{ display:block; height:100%; border-radius:3px; transition:width 1.5s cubic-bezier(0.22,1,0.36,1); }
		.rank-val{ font-size:0.688rem; font-weight:400; color:var(--text-dark); white-space:nowrap; text-align:right; }
		.rank-val.up{ color:var(--down); }
		.rank-val.down{ color:var(--up); }
		.ai-mini-stats{ display:flex; justify-content:space-between; gap:8px; padding-top:8px; border-top:1px dashed var(--border); }
		.ai-mini-stat{ display:flex; flex-direction:column; gap:2px; }
		.ai-mini-label{ font-size:0.625rem; color:var(--text-light); }
		.ai-mini-value{ font-size:0.812rem; font-weight:400; }
		.ai-trend-up{ color:var(--down); }
		.ai-trend-down{ color:var(--up); }
		.ai-data-date{ font-size:0.625rem; text-align:right; color:var(--text-light); margin-top:2px; padding-top:4px; border-top:1px dashed var(--border); }
		.stats-loading{ text-align:center; padding:24px 0; font-size:0.75rem; color:var(--text-light); }
		.stats-loading::before{ content:""; display:block; width:22px; height:22px; margin:0 auto 8px; border:2px solid #e5e7eb; border-top-color:var(--primary); border-radius:50%; animation:statsSpin .8s linear infinite; }
		@keyframes statsSpin{ to{ transform:rotate(360deg); } }
		.stats-error{ text-align:center; padding:24px 0; font-size:0.75rem; color:var(--down); }
		.stats-retry-btn{ display:block; margin:10px auto 0; padding:6px 20px; border:none; background:var(--primary); color:#fff; font-size:0.75rem; border-radius:8px; cursor:pointer; transition:background .15s; }
		.stats-retry-btn:hover{ background:var(--primary-dark); }
		.stats-toast{ position:fixed; top:70px; left:50%; transform:translateX(-50%) translateY(-8px); background:rgba(0,0,0,.72); color:#fff; font-size:0.75rem; padding:8px 16px; border-radius:8px; opacity:0; pointer-events:none; transition:all .25s; z-index:10000; }
		.stats-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

		/* ============ 第四部分：开源 | 英雄榜 | AI前沿 ============ */
		.home-sec4{
			display:grid; grid-template-columns:1fr; gap:14px;
		}

		/* ============ 英雄榜（中栏，头部正常流，列表绝对定位脱离行高计算，内部滚动） ============ */
		.hero-card{
			position:relative;
			background-color:#0e1a3d;
			background-image:url(../images/sellpattern.png);
			background-position:bottom; background-size:cover;
			border-radius:var(--radius); overflow:hidden;
		}
		.hero-head{
			position:relative; z-index:1;
			background:rgba(0,0,0,0.25);
			padding:12px 16px 10px;
			display:flex; flex-direction:column; gap:6px;
		}
		.hero-title-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
		.hero-head h6{ color:#fff; font-weight:700; font-size:0.875rem; margin:0; }
		.hero-head .hero-sub{ color:rgba(255,255,255,0.6); font-size:0.625rem; }
		.hero-toggle{ display:flex; align-items:center; gap:4px; }
		.hero-toggle-btn{ font-size:0.625rem; color:rgba(255,255,255,0.6); padding:2px 9px; border:1px solid rgba(255,255,255,0.25); border-radius:10px; cursor:pointer; line-height:1.5; user-select:none; transition:all .2s; }
		.hero-toggle-btn:hover{ border-color:rgba(255,255,255,0.5); }
		.hero-toggle-btn.active{ background:rgba(255,255,255,0.18); color:#fff; border-color:rgba(255,255,255,0.55); }
		.hero-reshuffle{ flex-shrink:0; background:rgba(255,255,255,0.08); }
		.hero-reshuffle:hover{ background:rgba(255,255,255,0.18); color:#fff; }
		.hero-head .rank-row{ display:flex; align-items:center; min-width:0; justify-content:flex-end; }
		#rank-countries{ display:flex; align-items:center; flex-wrap:wrap; gap:2px 6px; justify-content:flex-end; min-width:0; }
		#rank-countries .hero-flag-icon{ width:15px; height:10px; vertical-align:middle; }
		#rank-countries .hero-dim-tag{ color:#ffd76a; font-weight:700; font-size:0.6875rem; margin-right:4px; }
		.hero-body{
			position:absolute; left:0; right:0; top:70px; bottom:0;
			padding:6px 0 32px; box-sizing:border-box;
			overflow-y:auto;
			background:rgba(0,0,0,0.35);
			scrollbar-width:thin; scrollbar-color:rgba(255,255,255,0.5) rgba(255,255,255,0.08);
			scrollbar-gutter:stable;
			-webkit-mask-image:linear-gradient(to bottom, #000 calc(100% - 48px), transparent 100%);
			mask-image:linear-gradient(to bottom, #000 calc(100% - 48px), transparent 100%);
		}
		.hero-sub-dims{ margin:3px 12px 8px; }
		.hero-sub-dim{ display:flex; align-items:center; gap:6px; margin-top:3px; font-size:0.625rem; color:rgba(255,255,255,0.65); }
		.hero-sub-dim-name{ min-width:76px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
		.hero-sub-dim-name i{ font-style:normal; font-size:0.5625rem; margin-left:3px; padding:0 3px; border-radius:2px; }
		.hero-sub-dim-name .dir-good{ color:#7ee2a8; }
		.hero-sub-dim-name .dir-low{ color:#ffb18a; }
		.hero-sub-dim-bar{ flex:1; height:4px; background:rgba(255,255,255,0.12); border-radius:2px; overflow:hidden; }
		.hero-sub-dim-fill{ display:block; height:100%; background:linear-gradient(90deg,#6ea8fe,#8f7bff); border-radius:2px; transition:width .6s ease; }
		.hero-sub-dim-fill.bad{ background:linear-gradient(90deg,#ff9e7a,#ff6b6b); }
		.hero-sub-dim-val{ min-width:44px; text-align:right; white-space:nowrap; color:rgba(255,255,255,0.85); }
		.hero-sub-dim-val small{ color:rgba(255,255,255,0.4); margin-left:2px; }
		.hero-body::-webkit-scrollbar{ width:8px; }
		.hero-body::-webkit-scrollbar-track{ background:rgba(255,255,255,0.06); border-radius:4px; }
		.hero-body::-webkit-scrollbar-thumb{ background:rgba(255,255,255,0.5); border-radius:4px; }
		.hero-body::-webkit-scrollbar-thumb:hover{ background:rgba(255,255,255,0.75); }
		.hero-item{ padding:13px 16px 15px; border-bottom:1px solid rgba(255,255,255,0.08); }
		.hero-item:last-child{ border-bottom:none; }
		.hero-item-head{ display:flex; align-items:center; gap:7px; margin-bottom:8px; }
		.hero-rank-badge{
			width:22px; height:22px; border-radius:50%; flex-shrink:0;
			display:flex; align-items:center; justify-content:center;
			font-size:0.688rem; font-weight:700; color:#fff; background:rgba(255,255,255,0.2);
		}
		.hero-rank-badge.gold{ background:linear-gradient(135deg,#FFD700,#FFA500); }
		.hero-rank-badge.silver{ background:linear-gradient(135deg,#E8E8E8,#C0C0C0); }
		.hero-rank-badge.bronze{ background:linear-gradient(135deg,#CD7F32,#B8860B); }
		.hero-name{
			flex:1; min-width:0; font-size:0.75rem; font-weight:600; color:#fff;
			white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
		}
		.hero-score{
			font-size:0.938rem; font-weight:800; flex-shrink:0;
			background:linear-gradient(135deg,#00f5ff,#0080ff);
			-webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
		}
		.hero-company{ font-size:0.625rem; color:rgba(255,255,255,0.45); margin-bottom:9px; display:flex; align-items:center; flex-wrap:wrap; }
		.hero-flag-icon{ width:18px; height:13px; border-radius:2px; margin-right:3px; object-fit:cover; flex-shrink:0; border:1px solid rgba(255,255,255,0.2); }
		.hero-dim-row{ display:flex; align-items:center; gap:7px; margin-bottom:8px; }
		.hero-dim-row:last-child{ margin-bottom:0; }
		.hero-dim-label{ flex-shrink:0; font-size:0.625rem; color:rgba(255,255,255,0.55); min-width:30px; text-align:right; margin-right:3px; }
		.hero-dim-track{ flex:1; height:5px; background:rgba(255,255,255,0.1); border-radius:3px; overflow:hidden; position:relative; }
		.hero-dim-fill{ position:absolute; left:0; top:0; height:100%; border-radius:3px; transition:width 1.2s cubic-bezier(0.22,1,0.36,1); }
		.hero-dim-num{ width:22px; flex-shrink:0; font-size:0.625rem; font-weight:600; color:rgba(255,255,255,0.7); text-align:right; }
		.hero-c-math{ background:linear-gradient(90deg,#00d4ff,#0099ff); }
		.hero-c-sci{ background:linear-gradient(90deg,#ff6b6b,#ee5a24); }
		.hero-c-code{ background:linear-gradient(90deg,#00e676,#00c853); }
		.hero-c-inst{ background:linear-gradient(90deg,#ffd93d,#f39c12); }
		.hero-c-hallu{ background:linear-gradient(90deg,#bb86fc,#7c3aed); }
		.hero-c-agent{ background:linear-gradient(90deg,#ff79c6,#e84393); }

		/* ============ 申请收录弹窗 ============ */
		.modal-overlay{
			display:none; position:fixed; inset:0;
			background:rgba(0,0,0,0.45); z-index:300;
			align-items:center; justify-content:center; padding:20px;
		}
		.modal-overlay.show{ display:flex; }
		.modal-box{
			background:#fff; border-radius:14px; width:100%; max-width:440px;
			max-height:90vh; overflow-y:auto;
			box-shadow:0 20px 60px rgba(0,0,0,0.2);
		}
		.modal-header{
			display:flex; align-items:center; justify-content:space-between;
			padding:18px 20px 14px; border-bottom:1px solid var(--border);
		}
		.modal-header h5{ font-size:1.0rem; font-weight:700; }
		.modal-close{
			background:none; border:none; font-size:1.5rem; color:var(--text-gray);
			cursor:pointer; line-height:1; width:30px; height:30px;
			display:flex; align-items:center; justify-content:center; border-radius:8px;
		}
		.modal-close:active{ background:var(--body-bg); }
		.modal-body{ padding:18px 20px; }
		.form-group{ margin-bottom:14px; }
		.form-group label{ display:block; font-size:0.75rem; font-weight:600; margin-bottom:6px; }
		.form-group label .required{ color:var(--down); }
		.form-group input,.form-group textarea{
			width:100%; border:1px solid var(--border); border-radius:8px;
			padding:10px 12px; font-size:0.875rem; color:var(--text-dark); outline:none;
			transition:border-color .2s;
		}
		.form-group input:focus,.form-group textarea:focus{ border-color:var(--primary); }
		.form-group textarea{ resize:vertical; min-height:70px; }
		.form-tip{
			margin-top:12px; padding:10px 12px; background:var(--primary-light);
			border-radius:8px; font-size:0.688rem; color:var(--text-gray); line-height:1.5;
		}
		.modal-footer{
			display:flex; justify-content:flex-end; gap:10px;
			padding:14px 20px 20px;
		}
		.modal-footer .btn{
			border:none; padding:9px 22px; border-radius:10px; font-size:0.812rem; font-weight:600; cursor:pointer;
		}
		.btn-light{ background:var(--body-bg); color:var(--text-dark); }
		.btn-primary{ background:var(--primary); color:#fff; }
		.btn:disabled{ opacity:.6; cursor:not-allowed; }

		/* 表单行内校验错误 */
		.form-group .f-err{ display:none; font-size:11px; color:var(--down); margin-top:4px; text-align:left; }
		.form-group.has-err input,.form-group.has-err textarea{ border-color:var(--down); background:#fff5f5; }
		.form-group.has-err .f-err{ display:block; }

		/* 顶部浮动提示 */
		.idx-toast{ position:fixed; top:84px; left:50%; transform:translateX(-50%); z-index:2000; display:flex; align-items:center; gap:8px; max-width:80vw; padding:10px 18px; border-radius:8px; color:#fff; font-size:14px; line-height:1.4; box-shadow:0 6px 20px rgba(0,0,0,.18); animation:idxToastIn .25s ease; }
		.idx-toast.success{ background:#5cb85c; }
		.idx-toast.error{ background:#d9534f; }
		.idx-toast.warn{ background:#f0ad4e; }
		.idx-toast .idx-toast-icon{ font-size:15px; line-height:1; flex:none; }
		.idx-toast.hide{ animation:idxToastOut .3s ease forwards; }
		@keyframes idxToastIn{ from{ opacity:0; transform:translate(-50%,-14px); } to{ opacity:1; transform:translate(-50%,0); } }
		@keyframes idxToastOut{ from{ opacity:1; transform:translate(-50%,0); } to{ opacity:0; transform:translate(-50%,-14px); } }

		/* ============ 页脚 ============ */
		.site-footer{
			text-align:center; padding:20px 16px 6px; font-size:0.688rem; color:var(--text-light);
		}

		/* ============ 响应式 ============ */
		@media (min-width: 768px){
			.main{ padding:20px 24px 0px; }
			.page-head h3, .page-head h1{ font-size:24px; }
			.page-head-search{ flex:0 0 auto; width:calc(50% - 7px); min-width:280px; margin-left:auto; }
			.page-head{ margin-bottom:18px; }
			.stats-track{ gap:14px; }
			.ic-chart-card{ flex-basis:calc((100% - 42px)/4); }
		}
		@media (min-width: 1024px){
			/* 第二部分左右各50% */
			.home-sec2{ grid-template-columns:1fr 1fr; gap:14px; }
			/* 第四部分三栏 */
			.home-sec4{ grid-template-columns:1fr 1fr 1fr; gap:14px; align-items:stretch; }
			.ic-chart-card{ padding:16px; }
		}
		/* 单列布局下英雄榜固定高度，列表内部滚动（避免绝对定位列表被裁掉） */
		@media (max-width: 1023.98px){
			.hero-card{ height:520px; }
		}
