马一丁

Optimize the Layout of the PDF’s First Page

@@ -1049,126 +1049,132 @@ td {{ @@ -1049,126 +1049,132 @@ td {{
1049 word-break: break-word; 1049 word-break: break-word;
1050 }} 1050 }}
1051 1051
1052 -/* Hero区域合并版本 - 包含标题和内容,保留蓝色椭圆背景 */ 1052 +/* Hero区域合并版本 - 去掉大色块,首屏以卡片化排布呈现文章总览 */
1053 .hero-section-combined {{ 1053 .hero-section-combined {{
1054 - padding: 45px 55px !important;  
1055 - margin: 0 auto 40px auto !important;  
1056 - min-height: 500px;  
1057 - /* 使用100%宽度,填满整个页面 */ 1054 + padding: 38px 44px !important;
  1055 + margin: 0 auto 34px auto !important;
  1056 + min-height: 420px;
1058 width: 100% !important; 1057 width: 100% !important;
1059 max-width: 100% !important; 1058 max-width: 100% !important;
1060 box-sizing: border-box; 1059 box-sizing: border-box;
1061 overflow: visible; 1060 overflow: visible;
1062 - border-radius: 40px !important;  
1063 - background: linear-gradient(135deg, #e8f4f8 0%, #d4e9f7 100%); 1061 + border-radius: 26px !important;
  1062 + background: #ffffff;
  1063 + border: 1px solid #e5e7eb;
  1064 + box-shadow: 0 18px 44px rgba(15, 23, 42, 0.06);
1064 page-break-after: always !important; 1065 page-break-after: always !important;
  1066 + page-break-inside: avoid;
1065 }} 1067 }}
1066 1068
1067 /* Hero标题区域 */ 1069 /* Hero标题区域 */
1068 .hero-header {{ 1070 .hero-header {{
1069 - text-align: center;  
1070 - margin-bottom: 25px;  
1071 - padding-bottom: 18px;  
1072 - border-bottom: 1px solid rgba(100, 150, 200, 0.2); 1071 + display: grid;
  1072 + grid-template-columns: minmax(0, 1fr);
  1073 + row-gap: 6px;
  1074 + margin-bottom: 22px;
  1075 + padding-bottom: 16px;
  1076 + border-bottom: 1px solid #eef1f5;
  1077 + text-align: left;
1073 }} 1078 }}
1074 1079
1075 .hero-hint {{ 1080 .hero-hint {{
1076 font-size: {max(cfg.page.font_size_base - 2, 11)}px !important; 1081 font-size: {max(cfg.page.font_size_base - 2, 11)}px !important;
1077 - color: #d32f2f;  
1078 - margin: 0 0 6px 0;  
1079 - font-weight: 500; 1082 + color: #556070;
  1083 + margin: 0;
  1084 + font-weight: 600;
  1085 + letter-spacing: 0.04em;
1080 }} 1086 }}
1081 1087
1082 .hero-title {{ 1088 .hero-title {{
1083 - font-size: {max(cfg.page.font_size_base + 5, 19)}px !important; /* 稍微减小标题字号 */  
1084 - font-weight: 600;  
1085 - margin: 6px 0;  
1086 - color: #1a1a1a;  
1087 - line-height: 1.3; 1089 + font-size: {max(cfg.page.font_size_base + 5, 19)}px !important;
  1090 + font-weight: 700;
  1091 + margin: 0;
  1092 + color: #0f172a;
  1093 + line-height: 1.25;
  1094 + letter-spacing: -0.01em;
1088 }} 1095 }}
1089 1096
1090 .hero-subtitle {{ 1097 .hero-subtitle {{
1091 font-size: {max(cfg.page.font_size_base - 1, 12)}px !important; 1098 font-size: {max(cfg.page.font_size_base - 1, 12)}px !important;
1092 - color: #d32f2f;  
1093 - margin: 6px 0 0 0;  
1094 - font-weight: 400; 1099 + color: #475467;
  1100 + margin: 2px 0 0 0;
  1101 + font-weight: 500;
1095 }} 1102 }}
1096 1103
1097 -/* Hero主体区域 - 左右分栏 */ 1104 +/* Hero主体区域 - 网格分栏 */
1098 .hero-body {{ 1105 .hero-body {{
1099 - display: flex;  
1100 - gap: 28px; /* 左右间距 */ 1106 + display: grid;
  1107 + grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  1108 + gap: 22px 28px;
1101 align-items: flex-start; 1109 align-items: flex-start;
  1110 + align-content: start;
1102 }} 1111 }}
1103 1112
1104 -/* Hero左侧内容区 - 占蓝色背景的70% */ 1113 +/* 左侧摘要/亮点 */
1105 .hero-content {{ 1114 .hero-content {{
1106 - flex: 7; /* 左侧占70% */ 1115 + display: grid;
  1116 + gap: 14px;
1107 min-width: 0; 1117 min-width: 0;
1108 - padding-right: 25px;  
1109 - box-sizing: border-box;  
1110 - overflow: hidden; 1118 + align-content: start;
1111 }} 1119 }}
1112 1120
1113 -/* Hero右侧KPI区域 - 占蓝色背景的30% */ 1121 +/* 右侧KPI区域 */
1114 .hero-side {{ 1122 .hero-side {{
1115 - flex: 3; /* 右侧占30% */  
1116 - min-width: 0;  
1117 - min-height: 0;  
1118 - display: flex;  
1119 - flex-wrap: wrap; 1123 + display: grid;
  1124 + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1120 gap: {max(cfg.grid.gap - 2, 10)}px; 1125 gap: {max(cfg.grid.gap - 2, 10)}px;
1121 overflow: hidden; 1126 overflow: hidden;
1122 box-sizing: border-box; 1127 box-sizing: border-box;
1123 width: 100%; 1128 width: 100%;
  1129 + min-width: 0;
  1130 + min-height: 0;
  1131 + align-content: flex-start;
1124 }} 1132 }}
1125 1133
1126 -/* Hero区域的KPI卡片 - 横向拉长,每行显示一个内容 */ 1134 +/* Hero区域的KPI卡片 */
1127 .hero-kpi {{ 1135 .hero-kpi {{
1128 - background: #ffffff;  
1129 - border-radius: 16px !important;  
1130 - border: 1px solid rgba(0, 0, 0, 0.06);  
1131 - box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08);  
1132 - flex: 0 1 calc(50% - {max(cfg.grid.gap - 2, 10)}px);  
1133 - max-width: calc(50% - {max(cfg.grid.gap - 2, 10)}px);  
1134 - padding: 12px 18px !important; /* 增加横向padding */ 1136 + background: #fdfdfd;
  1137 + border-radius: 14px !important;
  1138 + border: 1px solid #e5e7eb;
  1139 + box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
  1140 + padding: 14px 16px !important;
1135 overflow: hidden; 1141 overflow: hidden;
1136 box-sizing: border-box; 1142 box-sizing: border-box;
1137 - min-height: 85px; /* 增加高度以容纳三行 */ 1143 + min-height: 110px;
1138 display: flex; 1144 display: flex;
1139 flex-direction: column; 1145 flex-direction: column;
1140 - justify-content: space-between; 1146 + gap: 6px;
1141 }} 1147 }}
1142 1148
1143 .hero-kpi .label {{ 1149 .hero-kpi .label {{
1144 - font-size: {overview_kpi_label}px !important; /* 适度减小标签字号 */ 1150 + font-size: {overview_kpi_label}px !important;
1145 word-break: break-word; 1151 word-break: break-word;
1146 max-width: 100%; 1152 max-width: 100%;
1147 - line-height: 1.2;  
1148 - margin-bottom: 4px; 1153 + line-height: 1.3;
1149 overflow: hidden; 1154 overflow: hidden;
1150 text-overflow: ellipsis; 1155 text-overflow: ellipsis;
1151 - display: block; /* 独占一行 */ 1156 + color: #556070;
1152 }} 1157 }}
1153 1158
1154 .hero-kpi .value {{ 1159 .hero-kpi .value {{
1155 - font-size: {overview_kpi_value}px !important; /* 适度减小数值字号 */ 1160 + font-size: {overview_kpi_value}px !important;
1156 word-break: break-word; 1161 word-break: break-word;
1157 overflow-wrap: break-word; 1162 overflow-wrap: break-word;
1158 max-width: 100%; 1163 max-width: 100%;
1159 line-height: 1.1; 1164 line-height: 1.1;
1160 - display: block; /* 独占一行 */ 1165 + display: block;
1161 hyphens: auto; 1166 hyphens: auto;
1162 overflow: hidden; 1167 overflow: hidden;
1163 text-overflow: ellipsis; 1168 text-overflow: ellipsis;
1164 - margin-bottom: 3px; 1169 + margin-bottom: 2px;
  1170 + color: #0f172a;
1165 }} 1171 }}
1166 1172
1167 .hero-kpi .delta {{ 1173 .hero-kpi .delta {{
1168 - font-size: {overview_kpi_delta}px !important; /* 适度减小变化值字号 */ 1174 + font-size: {overview_kpi_delta}px !important;
1169 word-break: break-word; 1175 word-break: break-word;
1170 - margin-top: 3px;  
1171 - display: block; /* 独占一行 */ 1176 + margin-top: 2px;
  1177 + display: block;
1172 max-width: 100%; 1178 max-width: 100%;
1173 overflow: hidden; 1179 overflow: hidden;
1174 text-overflow: ellipsis; 1180 text-overflow: ellipsis;
@@ -1179,23 +1185,28 @@ td {{ @@ -1179,23 +1185,28 @@ td {{
1179 .hero-summary {{ 1185 .hero-summary {{
1180 font-size: {overview_summary_font}px !important; 1186 font-size: {overview_summary_font}px !important;
1181 line-height: 1.65; 1187 line-height: 1.65;
1182 - margin-top: 0;  
1183 - margin-bottom: 18px; /* 增加底部边距,与badges保持一致 */ 1188 + margin: 0 0 12px 0;
  1189 + padding: 0;
1184 word-break: break-word; 1190 word-break: break-word;
1185 - max-width: 98%; /* 与badges宽度一致 */  
1186 - overflow: hidden; 1191 + overflow-wrap: break-word;
  1192 + white-space: normal;
  1193 + width: 100%;
  1194 + box-sizing: border-box;
  1195 + align-self: start;
  1196 + background: transparent;
  1197 + border: none;
  1198 + border-radius: 0;
  1199 + box-shadow: none;
1187 }} 1200 }}
1188 1201
1189 -/* Hero highlights列表 - 横向排列,宽度与summary一致 */ 1202 +/* Hero highlights列表 - 网格排布 */
1190 .hero-highlights {{ 1203 .hero-highlights {{
1191 list-style: none; 1204 list-style: none;
1192 padding: 0; 1205 padding: 0;
1193 - margin: 16px 0; /* 增加上下边距 */  
1194 - display: flex;  
1195 - flex-direction: column;  
1196 - gap: 12px; /* 增加间距,让椭圆之间有更多空间 */  
1197 - max-width: 100%;  
1198 - overflow: hidden; 1206 + margin: 0;
  1207 + display: grid;
  1208 + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  1209 + gap: 10px 12px;
1199 }} 1210 }}
1200 1211
1201 .hero-highlights li {{ 1212 .hero-highlights li {{
@@ -1205,29 +1216,33 @@ td {{ @@ -1205,29 +1216,33 @@ td {{
1205 flex-grow: 0; 1216 flex-grow: 0;
1206 }} 1217 }}
1207 1218
1208 -/* hero highlights中的badge - 拉长加宽的椭圆形背景,与上方文本对齐 */ 1219 +/* hero highlights中的badge - 卡片化的小条目 */
1209 .hero-highlights .badge {{ 1220 .hero-highlights .badge {{
1210 font-size: {overview_badge_font}px !important; 1221 font-size: {overview_badge_font}px !important;
1211 - padding: 10px 20px !important; /* 增加padding,更好的视觉效果 */ 1222 + padding: 10px 12px !important;
1212 max-width: 100%; 1223 max-width: 100%;
1213 - width: 98%; /* 占满宽度,与summary文本对齐 */ 1224 + width: 100%;
1214 display: flex; 1225 display: flex;
1215 - align-items: center; /* 垂直居中文字 */  
1216 - justify-content: flex-start; /* 文字左对齐 */ 1226 + align-items: center;
  1227 + justify-content: flex-start;
  1228 + flex-wrap: wrap;
1217 word-wrap: break-word; 1229 word-wrap: break-word;
1218 white-space: normal; 1230 white-space: normal;
1219 overflow: hidden; 1231 overflow: hidden;
1220 text-overflow: ellipsis; 1232 text-overflow: ellipsis;
1221 box-sizing: border-box; 1233 box-sizing: border-box;
1222 - line-height: 1.5; /* 增加行高,更好的可读性 */  
1223 - min-height: 40px; /* 增加最小高度 */  
1224 - /* 拉长的椭圆形背景 */  
1225 - background: rgba(100, 120, 150, 0.15) !important;  
1226 - border-radius: 22px !important; /* 稍微增加圆角 */  
1227 - border: 1px solid rgba(100, 120, 150, 0.25); 1234 + line-height: 1.5;
  1235 + min-height: 40px;
  1236 + background: #f3f4f6 !important;
  1237 + border-radius: 12px !important;
  1238 + border: 1px solid #e5e7eb;
  1239 + color: #111827;
  1240 + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
  1241 + align-items: flex-start;
  1242 + justify-content: flex-start;
1228 }} 1243 }}
1229 1244
1230 -/* Hero actions按钮 - 确保不溢出椭圆 */ 1245 +/* Hero actions按钮 - PDF中仍隐藏,保留缩进样式 */
1231 .hero-actions {{ 1246 .hero-actions {{
1232 margin-top: 12px; 1247 margin-top: 12px;
1233 display: flex; 1248 display: flex;
@@ -1240,7 +1255,7 @@ td {{ @@ -1240,7 +1255,7 @@ td {{
1240 .hero-actions button {{ 1255 .hero-actions button {{
1241 font-size: {max(cfg.page.font_size_base - 2, 11)}px !important; 1256 font-size: {max(cfg.page.font_size_base - 2, 11)}px !important;
1242 padding: 5px 10px !important; 1257 padding: 5px 10px !important;
1243 - max-width: 200px; /* 限制按钮最大宽度 */ 1258 + max-width: 200px;
1244 word-break: break-word; 1259 word-break: break-word;
1245 white-space: normal; 1260 white-space: normal;
1246 overflow: hidden; 1261 overflow: hidden;