From 759e1fad0da0aad8226d61736f1394478a7c5045 Mon Sep 17 00:00:00 2001 From: biss Date: Mon, 4 May 2026 21:56:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/notice-page.css | 235 ++++++++++++++++++ css/tech-query.css | 556 +++++++++++++++++++++++++++++++++++++++++++ css/ticket-print.css | 22 +- 3 files changed, 808 insertions(+), 5 deletions(-) diff --git a/css/notice-page.css b/css/notice-page.css index 6667c3d..2d5a173 100644 --- a/css/notice-page.css +++ b/css/notice-page.css @@ -280,6 +280,241 @@ code { } } +/* Light visual refresh for notice detail */ +html { + color-scheme: light; +} + +body { + color: #172033; + background: + linear-gradient(135deg, rgba(236, 248, 255, 0.92), rgba(255, 255, 255, 0.96) 48%, rgba(245, 250, 255, 0.94)), + linear-gradient(90deg, rgba(37, 99, 235, 0.045) 1px, transparent 1px), + linear-gradient(0deg, rgba(20, 184, 166, 0.035) 1px, transparent 1px); + background-size: auto, 52px 52px, 52px 52px; +} + +.brand { + color: #172033; +} + +.brand-mark { + color: #2563eb; + background: rgba(37, 99, 235, 0.07); + border-color: rgba(37, 99, 235, 0.2); +} + +.back-link { + color: #66758a; + background: #ffffff; + border-color: rgba(120, 144, 176, 0.24); +} + +.back-link:hover, +.primary-action:hover { + color: #172033; + border-color: rgba(37, 99, 235, 0.36); +} + +.hero-copy, +.status-panel, +.notice-card, +.side-card { + background: rgba(255, 255, 255, 0.84); + border-color: rgba(120, 144, 176, 0.24); + box-shadow: 0 18px 44px rgba(47, 74, 112, 0.12); + backdrop-filter: blur(16px); +} + +.eyebrow, +.status-code, +code { + color: #2563eb; +} + +h1, +h2, +.info-grid strong { + color: #172033; +} + +.hero-copy p, +.status-panel p, +.notice-card p, +.side-card p, +.notice-meta span, +.info-label { + color: #66758a; +} + +.status-badge { + color: #854d0e; + background: #fef3c7; +} + +.notice-meta span, +.info-grid div { + background: rgba(248, 251, 255, 0.86); + border-color: rgba(120, 144, 176, 0.2); +} + +.primary-action { + color: #ffffff; + background: linear-gradient(135deg, #2563eb, #0891b2); + border-color: rgba(37, 99, 235, 0.16); + box-shadow: 0 12px 24px rgba(37, 99, 235, 0.16); +} + +/* Youthful unified layout refresh */ +:root { + --joy-blue: #2563eb; + --joy-cyan: #06b6d4; + --joy-mint: #10b981; + --joy-coral: #fb7185; + --joy-yellow: #facc15; + --joy-ink: #172033; + --joy-muted: #627187; + --joy-line: rgba(96, 116, 148, 0.18); + --joy-card: rgba(255, 255, 255, 0.9); +} + +body { + background: + linear-gradient(128deg, rgba(255, 255, 255, 0.96) 0 34%, rgba(232, 249, 255, 0.9) 34% 58%, rgba(255, 246, 249, 0.92) 58% 100%), + linear-gradient(90deg, rgba(37, 99, 235, 0.04) 1px, transparent 1px), + linear-gradient(0deg, rgba(16, 185, 129, 0.035) 1px, transparent 1px); + background-size: auto, 44px 44px, 44px 44px; +} + +.notice-page { + padding-top: 24px; +} + +.topbar { + margin-bottom: 22px; +} + +.brand-mark { + border-radius: 10px; + color: #ffffff; + background: linear-gradient(135deg, var(--joy-blue), var(--joy-coral)); + border-color: transparent; +} + +.back-link { + min-height: 38px; + border-radius: 12px; +} + +.notice-hero { + grid-template-columns: minmax(0, 1fr) minmax(220px, 0.28fr); + gap: 16px; + margin-bottom: 16px; +} + +.notice-layout { + grid-template-columns: minmax(0, 1fr) minmax(260px, 0.34fr); + gap: 16px; +} + +.hero-copy, +.status-panel, +.notice-card, +.side-card { + border-radius: 18px; + border-color: var(--joy-line); + background: var(--joy-card); + box-shadow: 0 16px 34px rgba(37, 63, 101, 0.1); +} + +.hero-copy { + min-height: 250px; + display: grid; + align-content: center; + padding: clamp(26px, 5vw, 48px); +} + +.hero-copy, +.notice-card, +.side-card, +.status-panel { + position: relative; + overflow: hidden; +} + +.hero-copy::after, +.notice-card::after, +.side-card::after, +.status-panel::after { + content: ""; + position: absolute; + left: 0; + right: 0; + bottom: 0; + height: 4px; + background: linear-gradient(90deg, var(--joy-blue), var(--joy-cyan), var(--joy-mint), var(--joy-coral)); + pointer-events: none; +} + +.eyebrow { + width: max-content; + padding: 8px 14px; + border-radius: 999px; + background: linear-gradient(135deg, rgba(37, 99, 235, 0.11), rgba(6, 182, 212, 0.11)); + color: var(--joy-blue); + letter-spacing: 0.12em; +} + +h1 { + letter-spacing: 0; +} + +.status-panel { + position: relative; + min-height: 250px; + justify-content: center; + gap: 22px; + border-top: 5px solid var(--joy-coral); +} + +.status-code { + color: var(--joy-coral); + font-size: clamp(34px, 4vw, 44px); +} + +.status-badge, +.notice-meta span { + border: 0; +} + +.status-badge { + color: #8a4b05; + background: #fff2bf; +} + +.notice-meta span, +.info-grid div { + border-radius: 14px; + background: #f8fbff; + border-color: rgba(96, 116, 148, 0.12); +} + +.notice-card, +.side-card { + padding: clamp(22px, 4vw, 34px); +} + +.info-grid { + gap: 10px; + margin-top: 24px; +} + +.primary-action { + min-height: 46px; + border-radius: 12px; + background: linear-gradient(135deg, var(--joy-blue), var(--joy-cyan)); +} + @media (max-width: 520px) { .notice-page { width: min(calc(100% - 20px), 1120px); diff --git a/css/tech-query.css b/css/tech-query.css index 02e97f9..4a608e5 100644 --- a/css/tech-query.css +++ b/css/tech-query.css @@ -1050,6 +1050,562 @@ a { } } +/* Light visual refresh for query modules */ +html { + color-scheme: light; +} + +body { + background: + linear-gradient(135deg, rgba(236, 248, 255, 0.92), rgba(255, 255, 255, 0.96) 48%, rgba(245, 250, 255, 0.94)), + linear-gradient(90deg, rgba(37, 99, 235, 0.045) 1px, transparent 1px), + linear-gradient(0deg, rgba(20, 184, 166, 0.035) 1px, transparent 1px); + background-size: auto, 52px 52px, 52px 52px; + color: #172033; +} + +body::before { + background: + linear-gradient(120deg, rgba(37, 99, 235, 0.08), transparent 34%), + linear-gradient(300deg, rgba(20, 184, 166, 0.06), transparent 32%); + mask-image: none; +} + +body::after { + background: linear-gradient(180deg, rgba(255, 255, 255, 0.64), transparent 62%); +} + +.hero-card, +.stat-card, +.panel-card, +.landing-hero, +.entry-card, +.preview-panel, +.summary-panel, +.detail-panel { + background: rgba(255, 255, 255, 0.84); + border-color: rgba(120, 144, 176, 0.24); + box-shadow: 0 18px 44px rgba(47, 74, 112, 0.12); + backdrop-filter: blur(16px); +} + +.hero-card::before, +.stat-card::before, +.panel-card::before, +.entry-card::before, +.preview-panel::before, +.summary-panel::before, +.detail-panel::before { + background: linear-gradient(135deg, rgba(37, 99, 235, 0.07), transparent 46%, rgba(20, 184, 166, 0.06)); +} + +.eyebrow, +.entry-kicker, +.section-kicker, +.stat-value, +.summary-stat-tile strong, +.chart-row-value, +.table-highlight, +.summary-value.emphasis, +.detail-value.money, +.hint-orb { + color: #2563eb; + text-shadow: none; +} + +.hero-card h1, +.landing-hero h1, +.panel-title, +.entry-card h2, +.section-heading, +.ticket-title, +.chart-row-label, +.summary-value, +.detail-value, +.info-table td, +.result-table td { + color: #172033; +} + +.hero-card p, +.landing-hero p, +.entry-card p, +.stat-card p, +.panel-subtitle, +.empty-state, +.loading-state, +.scanner-text, +.ticket-subtitle, +.section-copy, +.summary-label, +.detail-label, +.form-label, +.stats-panel-title, +.muted-note, +.award-count-chip span:last-child, +.info-table th, +.page-footer { + color: #66758a; +} + +.eyebrow { + border-color: rgba(37, 99, 235, 0.18); + background: rgba(37, 99, 235, 0.07); +} + +.meta-chip, +.summary-stat-tile, +.stats-panel, +.award-count-chip, +.summary-tile, +.detail-item { + background: rgba(248, 251, 255, 0.86); + border-color: rgba(120, 144, 176, 0.2); + color: #172033; +} + +.tech-input { + background: #ffffff; + border-color: rgba(120, 144, 176, 0.32); + color: #172033; + box-shadow: 0 1px 2px rgba(47, 74, 112, 0.04); +} + +.tech-input::placeholder { + color: #94a3b8; +} + +.tech-input:focus { + border-color: rgba(37, 99, 235, 0.55); + box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.1); +} + +.icon-action { + color: #2563eb; +} + +.icon-action:hover, +.entry-arrow { + background: rgba(37, 99, 235, 0.08); + border-color: rgba(37, 99, 235, 0.16); +} + +.tech-button, +.tech-link-button { + background: linear-gradient(135deg, #2563eb, #0891b2); + border-color: rgba(37, 99, 235, 0.16); + color: #ffffff; + box-shadow: 0 12px 24px rgba(37, 99, 235, 0.16); +} + +.tech-button:hover, +.tech-link-button:hover { + border-color: rgba(37, 99, 235, 0.36); + box-shadow: 0 14px 28px rgba(37, 99, 235, 0.2); +} + +.tech-button.secondary, +.tech-link-button.secondary { + background: #ffffff; + color: #172033; +} + +.results-shell, +.info-table-shell { + background: rgba(255, 255, 255, 0.72); + border-color: rgba(120, 144, 176, 0.2); +} + +.results-summary, +.result-table th, +.result-table td, +.info-table th, +.info-table td { + border-color: rgba(120, 144, 176, 0.16); +} + +.result-table th, +.info-table th { + background: rgba(37, 99, 235, 0.06); +} + +.result-table td { + background: rgba(255, 255, 255, 0.56); +} + +.result-table tbody tr:hover td { + background: rgba(37, 99, 235, 0.055); +} + +.chart-bar-track { + background: rgba(37, 99, 235, 0.12); +} + +.chart-bar-fill { + background: linear-gradient(90deg, #2563eb, #14b8a6); + box-shadow: none; +} + +.award-count-chip strong { + color: #047857; +} + +.status-pill.done { + color: #064e3b; + background: #bbf7d0; +} + +.status-pill.pending { + color: #854d0e; + background: #fef3c7; +} + +.error-state { + color: #be123c; +} + +.certificate-stage { + border-color: rgba(120, 144, 176, 0.18); + box-shadow: inset 0 0 0 1px rgba(120, 144, 176, 0.08); +} + +.scanner-overlay { + background: rgba(241, 247, 255, 0.92); +} + +.scanner-frame { + border-color: rgba(37, 99, 235, 0.28); + box-shadow: 0 20px 50px rgba(47, 74, 112, 0.22); +} + +.scanner-frame::before, +.scanner-frame::after { + border-color: rgba(37, 99, 235, 0.26); +} + +.scanner-line { + background: linear-gradient(90deg, transparent, #2563eb, transparent); + box-shadow: 0 0 18px rgba(37, 99, 235, 0.48); +} + +/* Youthful unified layout refresh */ +:root { + --joy-blue: #2563eb; + --joy-cyan: #06b6d4; + --joy-mint: #10b981; + --joy-coral: #fb7185; + --joy-yellow: #facc15; + --joy-ink: #172033; + --joy-muted: #627187; + --joy-line: rgba(96, 116, 148, 0.18); + --joy-card: rgba(255, 255, 255, 0.9); +} + +body { + background: + linear-gradient(128deg, rgba(255, 255, 255, 0.96) 0 34%, rgba(232, 249, 255, 0.9) 34% 58%, rgba(255, 246, 249, 0.92) 58% 100%), + linear-gradient(90deg, rgba(37, 99, 235, 0.04) 1px, transparent 1px), + linear-gradient(0deg, rgba(16, 185, 129, 0.035) 1px, transparent 1px); + background-size: auto, 44px 44px, 44px 44px; +} + +body::before { + background: + linear-gradient(110deg, transparent 0 8%, rgba(37, 99, 235, 0.1) 8% 9%, transparent 9% 100%), + linear-gradient(110deg, transparent 0 72%, rgba(251, 113, 133, 0.12) 72% 73%, transparent 73% 100%), + linear-gradient(110deg, transparent 0 84%, rgba(16, 185, 129, 0.1) 84% 85%, transparent 85% 100%); +} + +body::after { + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.5), transparent 54%), + linear-gradient(90deg, rgba(250, 204, 21, 0.08), transparent 28%, rgba(6, 182, 212, 0.06)); +} + +.page-shell, +.landing-shell { + padding-top: 28px; +} + +.page-header { + grid-template-columns: minmax(0, 1fr) minmax(220px, 0.28fr); + gap: 16px; + margin-bottom: 16px; +} + +.hero-card, +.stat-card, +.panel-card, +.landing-hero, +.entry-card, +.preview-panel, +.summary-panel, +.detail-panel { + border-radius: 18px; + border-color: var(--joy-line); + background: var(--joy-card); + box-shadow: 0 16px 34px rgba(37, 63, 101, 0.1); +} + +.hero-card::before, +.stat-card::before, +.panel-card::before, +.entry-card::before, +.preview-panel::before, +.summary-panel::before, +.detail-panel::before { + background: + linear-gradient(135deg, rgba(37, 99, 235, 0.08), transparent 32%), + linear-gradient(315deg, rgba(251, 113, 133, 0.08), transparent 35%); +} + +.hero-card { + padding: 28px; + display: grid; + align-content: center; + min-height: 236px; +} + +.hero-card h1, +.landing-hero h1 { + margin-top: 16px; + letter-spacing: 0; + color: var(--joy-ink); +} + +.hero-card p, +.landing-hero p, +.entry-card p, +.section-copy { + line-height: 1.72; +} + +.eyebrow, +.entry-kicker, +.section-kicker { + border: 0; + border-radius: 999px; + background: linear-gradient(135deg, rgba(37, 99, 235, 0.11), rgba(6, 182, 212, 0.11)); + color: var(--joy-blue); + letter-spacing: 0.12em; + font-weight: 800; +} + +.hero-meta { + gap: 10px; + margin-top: 18px; +} + +.meta-chip { + border: 0; + background: #f8fbff; + box-shadow: inset 0 0 0 1px rgba(96, 116, 148, 0.12); +} + +.stat-card { + padding: 22px; + justify-content: center; + border-top: 5px solid var(--joy-coral); +} + +.stat-card::after, +.panel-card::after, +.entry-card::after { + content: ""; + position: absolute; + left: 0; + right: 0; + bottom: 0; + height: 4px; + background: linear-gradient(90deg, var(--joy-blue), var(--joy-cyan), var(--joy-mint), var(--joy-coral)); + pointer-events: none; +} + +.stat-value { + color: var(--joy-coral); + font-size: clamp(24px, 3vw, 36px); +} + +.panel-card { + padding: 22px; + margin-top: 16px; +} + +.panel-title-row { + margin-bottom: 16px; + padding-bottom: 14px; + border-bottom: 1px solid rgba(96, 116, 148, 0.12); +} + +.panel-title { + letter-spacing: 0; +} + +.search-grid { + grid-template-columns: minmax(260px, 1.5fr) repeat(2, minmax(150px, 0.72fr)) minmax(128px, 0.55fr); +} + +.search-grid.compact { + grid-template-columns: minmax(150px, 0.9fr) minmax(190px, 1.1fr) repeat(2, minmax(140px, 0.72fr)) minmax(128px, 0.55fr); +} + +.tech-input, +.tech-button, +.tech-link-button { + min-height: 46px; + border-radius: 12px; +} + +.tech-input { + background: #fbfdff; +} + +.tech-button, +.tech-link-button { + background: linear-gradient(135deg, var(--joy-blue), var(--joy-cyan)); + box-shadow: 0 12px 22px rgba(37, 99, 235, 0.18); +} + +.tech-button.secondary, +.tech-link-button.secondary { + background: #ffffff; + box-shadow: inset 0 0 0 1px rgba(96, 116, 148, 0.16); +} + +.results-shell, +.info-table-shell { + border-radius: 16px; +} + +.empty-state, +.loading-state, +.feedback-card { + min-height: 180px; + background: + linear-gradient(135deg, rgba(37, 99, 235, 0.045), transparent 42%), + linear-gradient(315deg, rgba(251, 113, 133, 0.05), transparent 36%); +} + +.result-table th { + background: #f3f8ff; + color: #4f5f74; +} + +.result-table tbody tr:nth-child(even) td { + background: rgba(248, 251, 255, 0.72); +} + +.status-pill.done { + color: #066047; + background: #d8fff0; +} + +.status-pill.pending { + color: #8a4b05; + background: #fff2bf; +} + +.landing-hero { + min-height: 260px; + padding: clamp(28px, 5vw, 54px); + display: grid; + align-content: end; + border-top: 5px solid var(--joy-blue); +} + +.landing-grid { + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 16px; +} + +.entry-card { + min-height: 246px; + align-content: space-between; + transform: translateY(0); +} + +.entry-card:nth-child(2) { + border-top: 5px solid var(--joy-mint); +} + +.entry-card:nth-child(3) { + border-top: 5px solid var(--joy-coral); +} + +.entry-card:hover { + transform: translateY(-6px); + box-shadow: 0 22px 42px rgba(37, 63, 101, 0.14); +} + +.entry-meta { + padding-top: 12px; + border-top: 1px solid rgba(96, 116, 148, 0.12); +} + +.entry-arrow { + color: #ffffff; + background: linear-gradient(135deg, var(--joy-blue), var(--joy-coral)); +} + +.detail-grid { + grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.72fr); +} + +.summary-stack, +.ticket-detail-grid { + gap: 12px; +} + +.summary-tile, +.detail-item, +.summary-stat-tile, +.stats-panel, +.award-count-chip { + border-radius: 14px; + background: #f8fbff; +} + +.certificate-stage { + border-radius: 16px; +} + +@media (max-width: 1040px) { + .page-header, + .landing-grid, + .detail-grid, + .search-grid, + .search-grid.compact { + grid-template-columns: 1fr; + } + + .stat-card { + min-height: 118px; + } +} + +@media (max-width: 720px) { + .page-shell, + .landing-shell, + .detail-shell { + padding-top: 14px; + } + + .hero-card, + .landing-hero, + .panel-card, + .entry-card, + .preview-panel, + .summary-panel, + .detail-panel { + padding: 18px; + } + + .panel-title-row { + align-items: flex-start; + flex-direction: column; + } +} + @media print { body { background: #ffffff; diff --git a/css/ticket-print.css b/css/ticket-print.css index c8fa8cf..99ebfeb 100644 --- a/css/ticket-print.css +++ b/css/ticket-print.css @@ -1,16 +1,21 @@ body { font-family: Arial, "Microsoft YaHei"; - background: white; + margin: 0; + color: #172033; + background: + linear-gradient(128deg, rgba(255, 255, 255, 0.96) 0 34%, rgba(232, 249, 255, 0.9) 34% 58%, rgba(255, 246, 249, 0.92) 58% 100%); } /* ===== A4 容器 ===== */ .page { width: 210mm; min-height: 297mm; - margin: auto; + margin: 18px auto; padding: 20mm; position: relative; background: white; + box-shadow: 0 18px 44px rgba(47, 74, 112, 0.12); + border-top: 5px solid #2563eb; } /* ===== 水印 ===== */ @@ -33,6 +38,8 @@ body { font-size: 22px; font-weight: bold; margin-bottom: 20px; + color: #172033; + letter-spacing: 0.04em; } /* ===== 信息表格 ===== */ @@ -45,14 +52,16 @@ body { } .table td { - border: 1px solid #ddd; - padding: 10px; + border: 1px solid #dbe4ef; + padding: 11px 12px; font-size: 14px; } .label { width: 25%; - background: #f5f5f5; + color: #66758a; + background: linear-gradient(135deg, #f3f8ff, #f8fbff); + font-weight: 700; } /* ===== 页脚 ===== */ @@ -75,9 +84,12 @@ body { body { margin: 0; + background: #ffffff; } .page { + margin: auto; box-shadow: none; + border-top: 0; } }