- | ${item.cert_number || '-'} |
- ${item.holder_name || '-'} |
- ${item.honor_title || '-'} |
- ${item.issue_date || '-'} |
+ ${escapeHtml(item.cert_number || '-')} |
+ ${escapeHtml(item.holder_name || '-')} |
+ ${escapeHtml(item.honor_title || '-')} |
+ ${escapeHtml(item.issue_date || '-')} |
|
`;
@@ -211,6 +318,10 @@
params.get('cert_number') ||
params.get('certNumber') ||
params.get('number') ||
+ params.get('awardName') ||
+ params.get('honor_title') ||
+ params.get('honorTitle') ||
+ params.get('award') ||
params.get('q') ||
'';
diff --git a/css/tech-query.css b/css/tech-query.css
index b749c3d..c9d1804 100644
--- a/css/tech-query.css
+++ b/css/tech-query.css
@@ -329,6 +329,141 @@ a {
overflow-x: auto;
}
+.results-summary {
+ display: grid;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ gap: 12px;
+ padding: 16px;
+ border-bottom: 1px solid rgba(103, 213, 255, 0.12);
+}
+
+.summary-stat-tile {
+ min-height: 86px;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ gap: 8px;
+ padding: 14px 16px;
+ border-radius: var(--radius-md);
+ border: 1px solid rgba(103, 213, 255, 0.14);
+ background: rgba(255, 255, 255, 0.035);
+}
+
+.summary-stat-tile span,
+.stats-panel-title,
+.muted-note {
+ color: var(--text-secondary);
+}
+
+.summary-stat-tile span {
+ font-size: 13px;
+ letter-spacing: 0.08em;
+}
+
+.summary-stat-tile strong {
+ font-family: var(--font-display);
+ font-size: 30px;
+ color: var(--accent);
+ line-height: 1;
+}
+
+.stats-grid {
+ display: grid;
+ grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
+ gap: 16px;
+ padding: 0 16px 16px;
+}
+
+.stats-panel {
+ min-width: 0;
+ padding: 16px;
+ border-radius: var(--radius-md);
+ border: 1px solid rgba(103, 213, 255, 0.14);
+ background: rgba(255, 255, 255, 0.025);
+}
+
+.stats-panel-title {
+ margin-bottom: 14px;
+ font-size: 13px;
+ font-weight: 700;
+ letter-spacing: 0.08em;
+}
+
+.bar-chart {
+ display: grid;
+ gap: 12px;
+}
+
+.chart-row {
+ display: grid;
+ grid-template-columns: minmax(88px, 0.35fr) minmax(120px, 1fr) 56px;
+ gap: 12px;
+ align-items: center;
+}
+
+.chart-row-label,
+.award-count-title {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.chart-row-label {
+ color: var(--text-primary);
+ font-weight: 600;
+}
+
+.chart-bar-track {
+ height: 12px;
+ overflow: hidden;
+ border-radius: 999px;
+ background: rgba(103, 213, 255, 0.1);
+}
+
+.chart-bar-fill {
+ height: 100%;
+ border-radius: inherit;
+ background: linear-gradient(90deg, var(--accent), var(--success));
+ box-shadow: 0 0 18px rgba(103, 213, 255, 0.25);
+}
+
+.chart-row-value {
+ color: var(--accent);
+ font-weight: 700;
+ text-align: right;
+}
+
+.award-count-grid {
+ display: grid;
+ gap: 10px;
+}
+
+.award-count-chip {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) auto auto;
+ gap: 8px;
+ align-items: center;
+ padding: 12px 14px;
+ border-radius: var(--radius-sm);
+ border: 1px solid rgba(147, 175, 209, 0.14);
+ background: rgba(3, 8, 18, 0.36);
+}
+
+.award-count-chip strong {
+ color: var(--success);
+ font-family: var(--font-display);
+}
+
+.award-count-chip span:last-child {
+ color: var(--text-secondary);
+ font-size: 13px;
+}
+
+.muted-note {
+ padding: 12px 0;
+ text-align: center;
+}
+
.result-table {
width: 100%;
min-width: 720px;
@@ -436,8 +571,9 @@ a {
.scanner-frame {
position: relative;
- width: min(88vw, 360px);
- height: min(88vw, 360px);
+ width: min(92vw, 520px);
+ height: min(54vw, 240px);
+ min-height: 180px;
border-radius: 28px;
overflow: hidden;
border: 1px solid rgba(103, 213, 255, 0.28);
@@ -877,6 +1013,16 @@ a {
grid-template-columns: 1fr;
}
+ .results-summary,
+ .stats-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .chart-row {
+ grid-template-columns: minmax(74px, 0.4fr) minmax(90px, 1fr) 52px;
+ gap: 8px;
+ }
+
.result-table {
min-width: 620px;
}