From 7dd462b0ba1ababc7f58daa71c92ea38e1b1891d Mon Sep 17 00:00:00 2001 From: Xiaoju Date: Sat, 22 Aug 2026 01:16:46 +0800 Subject: [PATCH 1/4] feat: implement DevDeck Light UI system --- PROJECT_STATE.md | 10 +- src/App.css | 1707 ++++++++------------------------------ src/App.tsx | 272 +++--- src/i18n.ts | 45 + src/presentation.test.ts | 21 +- src/presentation.ts | 22 +- 6 files changed, 560 insertions(+), 1517 deletions(-) diff --git a/PROJECT_STATE.md b/PROJECT_STATE.md index e64cefa..bf8cdbe 100644 --- a/PROJECT_STATE.md +++ b/PROJECT_STATE.md @@ -9,6 +9,7 @@ - Project checks parse bounded Python/Node metadata and count bounded metadata-light Python files. Project scripts and executables are never run; metadata symlinks are refused. - GUI findings, project read notes, concise Copy for AI, and the technical report are localized for `zh-CN` and `en-US`. - Concise and technical reports use the same sanitizer for project/home/arbitrary-drive/UNC paths, URLs, credentials, and common token formats. +- The formal UI branch `codex/devdeck-light` applies the owner-approved DevDeck Light shell with P2 Cool Scientific tokens. The result view adds a Finding navigator, primary finding hierarchy, Current vs Required comparison, configuration/terminal evidence blocks, next-step callout, share bar, technical details, and compact status bar. This is presentation-only and does not expand diagnosis scope. ## Public remote and Preview 1 @@ -28,13 +29,14 @@ - README download guidance is version-independent: select the newest Preview marked Pre-release, then choose the stable setup/portable/MSI filename suffix and checksum file from that Release. - No Preview 2 tag or Release exists; publishing `v0.1.0-preview.2` is the next release step. -## Validation (2026-08-20) +## Validation (2026-08-22) - `cargo fmt --all -- --check`: passed. - `cargo test --all-targets`: 33 passed, 0 failed. - `cargo clippy --all-targets --all-features -- -D warnings`: passed. - `npm test`: 2 passed, 0 failed. - `npm run build`: passed. +- DevDeck Light branch: `npm test` 3 passed, `npm run build` passed, `cargo fmt --all -- --check` passed, `cargo test --all-targets` 33 passed, `cargo clippy --all-targets --all-features -- -D warnings` passed, `npm audit --audit-level=high` 0 vulnerabilities, and `npm run tauri:build` produced release EXE, NSIS setup, and MSI bundles. - `npm audit`: 0 vulnerabilities. - `npm run tauri build`: release EXE, NSIS setup, and MSI produced. - PR #2 required CI run `32360211432`: all required steps, including Windows release bundles, passed before merge. @@ -55,12 +57,12 @@ ## Next priorities -1. Use the committed Preview 2 notes to publish distinct `v0.1.0-preview.2` tag/assets; never mutate Preview 1. -2. After Preview 2 is published, begin evidence-driven visual identity and UI research without expanding the current product scope. +1. Push `codex/devdeck-light`, open the requested Draft PR for Issue #6, and run Windows CI. +2. Capture and replace `docs/assets/envcompass-project-results.png` with a real DevDeck Light runtime-mismatch Tauri screenshot before PR review; do not reuse Design Lab or superseded Compass Atelier imagery. 3. Continue public dogfood before any scoped feature expansion. ## Git - Current `main` baseline: `73622c77f05d7e7d0d3297b4940bc5b4bd6d179c`. - Preview 2 hardening squash commit: `73622c77f05d7e7d0d3297b4940bc5b4bd6d179c`. -- Current state/action update: the commit containing this file. +- Current working branch: `codex/devdeck-light`; Issue #6; Draft PR not yet opened; latest handoff state is the commit containing this file. diff --git a/src/App.css b/src/App.css index 2fe00c6..2219d42 100644 --- a/src/App.css +++ b/src/App.css @@ -1,1361 +1,348 @@ :root { - color: #17202a; - background: #f3f5f7; - font-family: "Segoe UI Variable", "Segoe UI", "Microsoft YaHei UI", sans-serif; - font-size: 15px; - line-height: 1.5; - color-scheme: light; - font-synthesis: none; -} - -* { - box-sizing: border-box; -} - -body { - margin: 0; - min-width: 0; - min-height: 100vh; - background: #f3f5f7; -} - -button, -summary { - font: inherit; -} - -button { - border: 1px solid #cbd2d9; - border-radius: 5px; - background: #ffffff; - color: #17202a; - padding: 8px 13px; - cursor: pointer; - transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease; -} - -button:hover:not(:disabled) { - border-color: #98a4af; - background: #f7f9fb; -} - -button:focus-visible, -summary:focus-visible { - outline: 2px solid #1769e0; - outline-offset: 2px; -} - -button:disabled { - cursor: not-allowed; - opacity: 0.55; -} - -button.primary { - border-color: #1769e0; - background: #1769e0; - color: #ffffff; - font-weight: 650; -} - -button.primary:hover:not(:disabled) { - border-color: #1059c5; - background: #1059c5; -} - -code { - font-family: "Cascadia Mono", "Cascadia Code", Consolas, monospace; - font-size: 0.9em; - overflow-wrap: anywhere; -} - -.app-shell { - min-height: 100vh; -} - -.topbar { - min-height: 66px; - display: flex; - align-items: center; - justify-content: space-between; - padding: 0 clamp(24px, 4vw, 54px); - border-bottom: 1px solid #d9dfe5; - background: #ffffff; -} - -.brand-button { - display: inline-flex; - align-items: center; - gap: 11px; - padding: 0; - border: 0; - background: transparent; - text-align: left; -} - -.brand-button:hover:not(:disabled) { - border: 0; - background: transparent; -} - -.brand-mark { - width: 31px; - height: 31px; - display: grid; - place-items: center; - border-radius: 6px; - background: #17202a; - color: #ffffff; - font-weight: 750; - letter-spacing: -0.04em; -} - -.brand-button > span:last-child { - display: grid; - line-height: 1.16; -} - -.brand-button strong { - font-size: 15px; - letter-spacing: 0.01em; -} - -.brand-button small { - margin-top: 3px; - color: #6b7681; - font-size: 11px; -} - -.topbar-meta { - display: flex; - align-items: center; - gap: 14px; -} - -.readonly-indicator { - display: inline-flex; - align-items: center; - gap: 7px; - color: #53606c; - font-size: 12px; - font-weight: 600; - text-transform: uppercase; - letter-spacing: 0.06em; -} - -.readonly-indicator::before { - content: ""; - width: 7px; - height: 7px; - border-radius: 50%; - background: #2c8b57; -} - -.lang-toggle { - min-width: 46px; - padding: 5px 9px; - font-size: 13px; -} - -.workspace { - width: min(100% - 48px, 1240px); - margin: 0 auto; - padding: 34px 0 54px; -} - -.eyebrow { - display: block; - margin-bottom: 8px; - color: #64717d; - font-size: 11px; - font-weight: 700; - letter-spacing: 0.11em; - text-transform: uppercase; -} - -.home { - max-width: 1120px; -} - -.home-intro { - max-width: 780px; - margin: 0 0 26px; -} - -.home-intro h1 { - margin: 0 0 10px; - font-size: clamp(28px, 3.5vw, 39px); - line-height: 1.2; - letter-spacing: -0.025em; -} - -.home-intro p { - max-width: 720px; - margin: 0; - color: #56636f; - font-size: 16px; -} - -.action-panel { - overflow: hidden; - border: 1px solid #cbd3db; - border-radius: 8px; - background: #ffffff; - box-shadow: 0 1px 2px rgb(17 28 39 / 6%); -} - -.action-row { - width: 100%; - min-height: 96px; - display: grid; - grid-template-columns: 50px minmax(0, 1fr) auto; - align-items: center; - gap: 18px; - padding: 19px 22px; - border: 0; - border-radius: 0; - text-align: left; -} - -.action-row + .action-row { - border-top: 1px solid #e1e5e9; -} - -.action-row:hover:not(:disabled) { - border-color: transparent; - background: #f8fafc; -} - -.action-primary { - box-shadow: inset 4px 0 #1769e0; -} - -.action-icon { - width: 44px; - height: 44px; - display: grid; - place-items: center; - border: 1px solid #c9d9f2; - border-radius: 7px; - background: #edf4ff; - color: #1769e0; -} - -.action-secondary .action-icon { - border-color: #d9dee3; - background: #f4f6f8; - color: #4d5b68; -} - -.action-icon svg { - width: 23px; - height: 23px; - fill: none; - stroke: currentColor; - stroke-linecap: round; - stroke-linejoin: round; - stroke-width: 1.7; -} - -.action-copy { - min-width: 0; - display: grid; - gap: 4px; -} - -.action-copy strong { - font-size: 17px; -} - -.action-copy small { - color: #62707c; -} - -.action-verb { - display: inline-flex; - align-items: center; - gap: 15px; - color: #1769e0; - font-weight: 650; - white-space: nowrap; -} - -.action-verb b { - font-size: 19px; - font-weight: 450; -} - -.check-scope { - margin-top: 30px; - padding-top: 24px; - border-top: 1px solid #d7dde3; -} - -.check-scope h2 { - margin: 0 0 17px; - font-size: 13px; - letter-spacing: 0.02em; -} - -.scope-grid { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 26px; -} - -.scope-grid > div { - display: grid; - grid-template-columns: 29px 1fr; - column-gap: 11px; - align-content: start; -} - -.scope-grid span { - grid-row: 1 / 3; - color: #8a96a1; - font-family: "Cascadia Mono", Consolas, monospace; - font-size: 11px; - font-weight: 700; -} - -.scope-grid strong { - font-size: 14px; -} - -.scope-grid p { - margin: 3px 0 0; - color: #687581; - font-size: 13px; -} - -.privacy-promise, -.scanning-boundary { - margin: 24px 0 0; - color: #587063; - font-size: 12px; -} - -.error-banner, -.notice-banner { - margin: 16px 0; - padding: 10px 13px; - border-radius: 5px; -} - -.error-banner { - border: 1px solid #e1aaa7; - background: #fff4f3; - color: #992b26; -} - -.notice-banner { - border: 1px solid #9ccbad; - background: #effaf3; - color: #236c41; -} - -.scanning { - max-width: 1040px; -} - -.scanning-layout { - min-height: 520px; - display: grid; - grid-template-columns: minmax(260px, 0.8fr) minmax(430px, 1.2fr); - border: 1px solid #ccd4dc; - border-radius: 8px; - background: #ffffff; - overflow: hidden; -} - -.scanning-intro { - padding: 40px 34px; - border-right: 1px solid #e0e5e9; - background: #f8fafb; -} - -.live-indicator { - display: inline-flex; - align-items: center; - gap: 7px; - color: #1769e0; - font-size: 11px; - font-weight: 750; - letter-spacing: 0.1em; -} - -.live-indicator i { - width: 8px; - height: 8px; - border-radius: 50%; - background: #1769e0; - box-shadow: 0 0 0 4px #dceaff; -} - -.scanning-intro h1 { - margin: 26px 0 11px; - font-size: 29px; - line-height: 1.22; -} - -.scanning-intro p { - margin: 0; - color: #5c6975; -} - -.selected-path { - display: block; - margin-top: 20px; - padding-top: 16px; - border-top: 1px solid #dfe4e8; - color: #46535f; -} - -.stage-list { - list-style: none; - margin: 0; - padding: 22px 32px; -} - -.stage { - min-height: 62px; - display: grid; - grid-template-columns: 31px minmax(0, 1fr) auto; - align-items: center; - gap: 13px; - position: relative; -} - -.stage:not(:last-child)::after { - content: ""; - position: absolute; - left: 15px; - top: 46px; - bottom: -16px; - width: 1px; - background: #d8dee4; -} - -.stage-marker { - width: 31px; - height: 31px; - display: grid; - place-items: center; - z-index: 1; - border: 1px solid #cbd3da; - border-radius: 50%; - background: #ffffff; - color: #7a8792; - font-size: 12px; - font-weight: 700; -} - -.stage strong { - font-size: 14px; -} - -.stage small { - color: #7a8792; - font-size: 12px; -} - -.stage-active .stage-marker { - border-color: #1769e0; - background: #1769e0; - color: #ffffff; - box-shadow: 0 0 0 4px #e0ecff; -} - -.stage-active small { - color: #1769e0; - font-weight: 650; -} - -.stage-done .stage-marker { - border-color: #3b8b5e; - background: #e9f5ee; - color: #2d754c; -} - -.stage-done:not(:last-child)::after { - background: #9dc9ae; -} - -.stage-waiting { - color: #7b8792; -} - -.results { - max-width: 1240px; -} - -.results-topline { - display: flex; - align-items: flex-start; - justify-content: space-between; - gap: 20px; - margin-bottom: 20px; -} - -.results-topline h1 { - margin: 0; - font-size: 28px; - line-height: 1.2; - overflow-wrap: anywhere; -} - -.results-nav { - display: flex; - flex-wrap: wrap; - justify-content: flex-end; - gap: 7px; -} - -.results-nav button { - padding: 7px 10px; - font-size: 13px; -} - -.diagnosis-banner { - min-height: 112px; - display: grid; - grid-template-columns: 48px minmax(0, 1fr) auto; - align-items: center; - gap: 19px; - padding: 21px 24px; - border: 1px solid; - border-radius: 8px; - background: #ffffff; -} - -.diagnosis-clear { - border-color: #a9cdb6; - box-shadow: inset 4px 0 #2c8b57; -} - -.diagnosis-attention { - border-color: #dbb08b; - box-shadow: inset 4px 0 #bf641b; -} - -.diagnosis-icon { - width: 42px; - height: 42px; - display: grid; - place-items: center; - border-radius: 50%; - background: #e8f5ed; - color: #25734a; - font-size: 21px; - font-weight: 750; -} - -.diagnosis-attention .diagnosis-icon { - background: #fff0e3; - color: #a54f0d; -} - -.diagnosis-copy h2 { - margin: 0 0 5px; - font-size: 19px; -} - -.diagnosis-copy p { - margin: 0; - color: #5d6974; -} - -.diagnosis-counts { - display: flex; - gap: 2px; - border: 1px solid #d9dfe4; - border-radius: 6px; - overflow: hidden; -} - -.diagnosis-counts span { - min-width: 74px; - display: grid; - place-items: center; - padding: 8px 10px; - border-left: 1px solid #e0e4e8; - color: #68747f; - font-size: 11px; -} - -.diagnosis-counts span:first-child { - border-left: 0; -} - -.diagnosis-counts strong { - color: #1f2933; - font-size: 18px; -} - -.report-bar { - display: flex; - align-items: flex-start; - justify-content: space-between; - gap: 16px; - margin-top: 14px; - padding: 12px 14px; - border: 1px solid #d4dbe1; - border-radius: 7px; - background: #ffffff; -} - -.report-primary-actions { - display: flex; - align-items: center; - flex-wrap: wrap; - gap: 8px; -} - -.report-primary-actions > span { - margin-left: 3px; - color: #6c7883; - font-size: 12px; -} - -.advanced-report { - min-width: 160px; - position: relative; -} - -.advanced-report > summary { - padding: 7px 8px; - color: #4f5d69; - cursor: pointer; - font-size: 13px; - font-weight: 650; - text-align: right; -} - -.advanced-report[open] { - width: 310px; -} - -.advanced-report p { - margin: 8px 0; - color: #687580; - font-size: 12px; -} - -.advanced-report div { - display: flex; - justify-content: flex-end; - gap: 7px; -} - -.advanced-report button { - padding: 6px 9px; - font-size: 12px; -} - -.privacy-bar { - margin: 9px 3px 20px; - color: #687580; - font-size: 11px; -} - -.project-panel, -.overview-panel, -.technical-shell, -.finding, -.suggestion-group { - border: 1px solid #d3dae0; - border-radius: 7px; - background: #ffffff; -} - -.project-panel { - margin-bottom: 20px; - padding: 20px 22px; -} - -.section-heading { - display: flex; - align-items: flex-start; - justify-content: space-between; - gap: 18px; - margin-bottom: 14px; -} - -.section-heading h2 { - margin: 0; - font-size: 19px; -} - -.project-heading { - align-items: end; - padding-bottom: 15px; - border-bottom: 1px solid #e2e6ea; -} - -.project-heading h2 { - font-size: 21px; -} - -.project-path { - max-width: 60%; - color: #5d6974; - text-align: right; -} - -.project-facts { - display: flex; - flex-wrap: wrap; - gap: 28px; - margin: 17px 0 14px; -} - -.project-facts > div { - display: grid; - gap: 2px; -} - -.project-facts span, -.project-inline span { - color: #72808b; - font-size: 11px; - font-weight: 650; - letter-spacing: 0.04em; -} - -.project-facts strong { - font-size: 16px; -} - -.marker-list { - display: flex; - flex-wrap: wrap; - gap: 6px; - margin: 12px 0 17px; -} - -.marker-list code, -.marker-list > span { - padding: 3px 7px; - border: 1px solid #d7dee4; - border-radius: 4px; - background: #f7f9fa; - color: #4c5965; - font-size: 11px; -} - -.requirements-block { - padding-top: 14px; - border-top: 1px solid #e2e6ea; -} - -.requirements-block h3 { - margin: 0 0 10px; - font-size: 13px; -} - -.requirements-block ul { - list-style: none; - margin: 0; - padding: 0; -} - -.requirements-block li { - display: grid; - grid-template-columns: minmax(180px, 1fr) auto auto; - align-items: center; - gap: 12px; - padding: 8px 0; - border-top: 1px solid #edf0f2; -} - -.requirement-value { - font-family: "Cascadia Mono", Consolas, monospace; -} - -.satisfaction { - padding: 2px 7px; - border-radius: 10px; - font-size: 11px; - font-weight: 650; -} - -.satisfaction-satisfied { - background: #e9f5ee; - color: #26734a; -} - -.satisfaction-not_satisfied { - background: #ffebea; - color: #b42d28; -} - -.satisfaction-unknown { - background: #edf0f2; - color: #5d6872; -} - -.unknown-note { - margin: 0; - padding: 9px 11px; - border-left: 3px solid #7c8b98; - background: #f5f7f8; - color: #4f5c67; -} - -.project-inline { - display: flex; - gap: 12px; - align-items: baseline; - margin: 11px 0 0; -} - -.project-notes, -.project-errors { - margin-top: 12px; - padding: 10px 12px; - border-radius: 5px; - background: #f6f8f9; - color: #55626d; - font-size: 12px; -} - -.project-errors { - background: #fff5f2; - color: #8c3d2f; -} - -.project-notes p, -.project-errors p { - margin: 4px 0 0; -} - -.no-project { - margin: 0 0 20px; - padding: 11px 13px; - border: 1px solid #d7dde2; - border-radius: 5px; - background: #f9fafb; - color: #64717c; -} - -.results-grid { - display: grid; - grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.85fr); - gap: 20px; - align-items: start; -} - -.finding-list { - display: grid; - gap: 10px; -} - -.finding { - padding: 16px 17px; - border-left-width: 4px; -} - -.finding-problem { - border-left-color: #c63d37; -} - -.finding-warning { - border-left-color: #c4771c; -} - -.finding-suggestion { - border-left-color: #7a8792; -} - -.finding-info { - border-left-color: #3d72a9; -} - -.finding-heading { - display: flex; - align-items: center; - gap: 8px; -} - -.severity { - display: inline-block; - padding: 2px 7px; - border-radius: 3px; - font-size: 10px; - font-weight: 750; - letter-spacing: 0.06em; - text-transform: uppercase; -} - -.severity-problem { - background: #ffebea; - color: #b82f29; -} - -.severity-warning { - background: #fff0de; - color: #9a510d; -} - -.severity-suggestion { - background: #edf0f2; - color: #56636e; -} - -.severity-info { - background: #e8f1fb; - color: #275f99; -} - -.finding-category { - color: #7a8792; - font-size: 11px; - font-weight: 650; - text-transform: uppercase; -} - -.finding h3 { - margin: 8px 0 5px; - font-size: 16px; -} - -.finding-summary { - margin: 0; - color: #4f5c67; -} - -.evidence-details { - margin-top: 10px; -} - -.evidence-details summary { - color: #285f98; - cursor: pointer; - font-size: 12px; - font-weight: 650; -} - -.evidence-details ul { - margin: 7px 0 0; - padding: 9px 10px 9px 26px; - border-radius: 4px; - background: #f5f7f9; -} - -.evidence-details li + li { - margin-top: 4px; -} - -.recommendation { - display: grid; - grid-template-columns: auto 1fr; - gap: 9px; - margin-top: 11px; - padding-top: 10px; - border-top: 1px solid #e7eaed; -} - -.recommendation > span { - color: #65727d; - font-size: 11px; - font-weight: 750; - text-transform: uppercase; -} - -.recommendation p { - margin: 0; -} - -.limitations { - margin: 8px 0 0; - color: #707c87; - font-size: 12px; -} - -.empty-attention { - display: flex; - align-items: center; - gap: 10px; - min-height: 64px; - padding: 13px 15px; - border: 1px solid #c5dccd; - border-radius: 6px; - background: #f4faf6; - color: #38634a; -} - -.empty-attention span { - width: 24px; - height: 24px; - display: grid; - place-items: center; - border-radius: 50%; - background: #dceee3; - font-weight: 750; -} - -.notes-section { - margin-top: 22px; -} - -.notes-section > h2 { - margin: 0 0 10px; - font-size: 17px; -} - -.suggestion-group { - margin-top: 16px; - overflow: hidden; -} - -.suggestion-group > summary { - display: flex; - align-items: center; - justify-content: space-between; - padding: 12px 14px; - cursor: pointer; - font-weight: 650; - list-style: none; -} - -.suggestion-group > summary::-webkit-details-marker { - display: none; -} - -.suggestion-group > summary::before { - content: "+"; - margin-right: 8px; - color: #6c7882; -} - -.suggestion-group[open] > summary::before { - content: "−"; -} - -.suggestion-group > summary span { - flex: 1; -} - -.suggestion-group > summary strong { - min-width: 24px; - padding: 2px 7px; - border-radius: 10px; - background: #edf0f2; - text-align: center; - font-size: 11px; -} - -.suggestion-group > .finding-list { - padding: 0 10px 10px; -} - -.overview-panel { - padding: 17px; -} - -.system-overview { - display: grid; - grid-template-columns: 1fr auto; - gap: 2px 8px; - margin-bottom: 7px; - padding: 12px; - border-radius: 5px; - background: #f4f6f8; -} - -.system-overview > span { - grid-row: 1 / 3; - align-self: center; - color: #687681; - font-size: 12px; -} - -.system-overview strong, -.system-overview small { - text-align: right; -} - -.system-overview small { - color: #75818c; -} - -.overview-row { - min-height: 48px; - display: grid; - grid-template-columns: 9px minmax(72px, 1fr) auto auto; - align-items: center; - gap: 9px; - border-bottom: 1px solid #e6e9ec; -} - -.overview-dot { - width: 8px; - height: 8px; - border-radius: 50%; - background: #87939d; -} - -.overview-dot-available { - background: #2f8a57; -} - -.overview-dot-failed, -.overview-dot-timeout, -.overview-dot-malformed { - background: #c23e37; -} - -.overview-version { - font-family: "Cascadia Mono", Consolas, monospace; - font-size: 12px; -} - -.overview-status { - color: #6c7883; - font-size: 11px; -} - -.status-available { - color: #27744a; -} - -.status-failed, -.status-timeout, -.status-malformed { - color: #b5332e; -} - -.status-missing, -.status-unsupported { - color: #7b613b; -} - -.available-summary { - display: flex; - align-items: baseline; - gap: 7px; - margin-top: 15px; - color: #66737e; -} - -.available-summary strong { - color: #25313c; - font-size: 22px; -} - -.technical-shell { - margin-top: 22px; - overflow: hidden; -} - -.technical-shell > summary { - display: flex; - align-items: center; - justify-content: space-between; - gap: 14px; - padding: 15px 18px; - cursor: pointer; - list-style: none; - font-weight: 700; -} - -.technical-shell > summary::-webkit-details-marker { - display: none; -} - -.technical-shell > summary::after { - content: "+"; - color: #66737e; - font-size: 19px; - font-weight: 400; -} - -.technical-shell[open] > summary::after { - content: "−"; -} - -.technical-shell > summary small { - margin-left: auto; - color: #77838e; - font-weight: 400; -} - -.technical-content { - display: grid; - gap: 24px; - padding: 20px; - border-top: 1px solid #e0e5e9; -} - -.technical-content h3 { - margin: 0 0 10px; - font-size: 15px; -} - -.count-badge { - display: inline-block; - margin-left: 5px; - padding: 1px 6px; - border-radius: 9px; - background: #edf0f2; - color: #5e6b76; - font-size: 10px; -} - -.tool-list { - border-top: 1px solid #e4e8eb; -} - -.tool-row { - display: grid; - grid-template-columns: 180px minmax(0, 1fr); - gap: 16px; - padding: 10px 3px; - border-bottom: 1px solid #e7eaed; -} - -.tool-identity { - display: flex; - align-items: center; - gap: 8px; -} - -.tool-status { - padding: 1px 5px; - border-radius: 3px; - background: #edf0f2; - font-size: 10px; -} - -.tool-detail { - min-width: 0; - display: flex; - flex-wrap: wrap; - justify-content: flex-end; - gap: 5px 11px; - color: #64717c; - text-align: right; -} - -.technical-list { - margin: 0; - padding-left: 20px; -} - -.technical-list li { - margin: 5px 0; -} - -.technical-list code { - margin-left: 8px; -} - -.path-list { - max-height: 350px; - overflow: auto; - border: 1px solid #dce1e5; - border-radius: 5px; - background: #f8f9fa; -} - -.path-row { - display: flex; - justify-content: space-between; - gap: 16px; - padding: 7px 10px; - border-bottom: 1px solid #e5e8eb; -} - -.path-row:last-child { - border-bottom: 0; -} - -.path-row span { - color: #9b5424; - font-size: 11px; - white-space: nowrap; -} - -@media (max-width: 960px) { - .workspace { - width: min(100% - 32px, 1240px); - } - - .results-grid { - grid-template-columns: 1fr; - } - - .overview-panel { - order: -1; - } - - .scanning-layout { - grid-template-columns: 0.85fr 1.15fr; - } - - .diagnosis-banner { - grid-template-columns: 42px 1fr; - } - - .diagnosis-counts { - grid-column: 1 / -1; - width: fit-content; - margin-left: 61px; - } -} - -@media (max-width: 860px) { - .topbar { - padding: 0 16px; - } - - .readonly-indicator { - display: none; - } - - .scope-grid, - .scanning-layout { - grid-template-columns: 1fr; - } - - .scanning-intro { - border-right: 0; - border-bottom: 1px solid #e0e5e9; - } - - .action-row { - grid-template-columns: 44px 1fr; - } - - .action-verb { - grid-column: 2; - } - - .results-topline, - .report-bar { - flex-direction: column; - } - - .results-nav { - justify-content: flex-start; - } - - .project-heading { - align-items: flex-start; - flex-direction: column; - } - - .project-path { - max-width: 100%; - text-align: left; - } - - .requirements-block li, - .tool-row { - grid-template-columns: 1fr; - } - - .tool-detail { - justify-content: flex-start; - text-align: left; - } -} + --bg: #eef2f5; + --panel: #fbfcfd; + --panel-2: #e6edf1; + --line: #cad7de; + --line-soft: #dde6eb; + --ink: #22313a; + --ink-2: #465860; + --muted: #61727a; + --faint: #6f8189; + --accent: #2d6f73; + --accent-soft: #dcebed; + --current: #b55c60; + --current-bg: #f8eeee; + --current-line: #e5c5c8; + --required: #4f8175; + --required-bg: #edf5f2; + --required-line: #c4ddd6; + --evidence: #4f7890; + --code-highlight: #e8f0f4; + --warning: #a77b3d; + --warning-bg: #f8f4eb; + --warning-line: #e5d6b8; + --term: #1d2a31; + --term-fg: #d7e1e3; + --mono: "Cascadia Code", "Cascadia Mono", Consolas, "JetBrains Mono", monospace; + --shadow: 0 18px 48px rgba(34, 49, 58, .12), 0 2px 8px rgba(34, 49, 58, .06); +} + +* { box-sizing: border-box; } +html, body, #root { min-height: 100%; height: 100%; } +body { margin: 0; background: #dfe7eb; color: var(--ink); font-family: "Segoe UI", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif; font-size: 13px; -webkit-font-smoothing: antialiased; } +button, summary { font: inherit; } +button { color: inherit; } +button:disabled { cursor: wait; opacity: .6; } +code, .mono { font-family: var(--mono); font-variant-numeric: tabular-nums; } +:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 5px; } + +.app-shell { min-height: 100%; display: flex; flex-direction: column; background: var(--bg); } +.topbar { min-height: 54px; display: flex; align-items: center; gap: 14px; padding: 0 18px; background: var(--panel); border-bottom: 1px solid var(--line); flex: 0 0 auto; } +.brand-button { display: inline-flex; align-items: center; gap: 9px; border: 0; padding: 0; background: transparent; cursor: pointer; text-align: left; } +.brand-mark { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 8px; background: var(--accent); color: #fff; font: 700 23px/1 var(--mono); transform: rotate(-12deg); } +.brand-mark span { transform: rotate(12deg) translateY(-1px); } +.brand-copy { display: grid; line-height: 1.05; } +.brand-copy strong { font-size: 15px; letter-spacing: .01em; } +.brand-copy small { margin-top: 3px; color: var(--faint); font-size: 10px; } +.toolbar-context { max-width: 34vw; overflow: hidden; padding: 5px 9px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel-2); color: var(--ink-2); font: 11px var(--mono); text-overflow: ellipsis; white-space: nowrap; } +.topbar-meta { display: flex; align-items: center; gap: 9px; margin-left: auto; } +.readonly-indicator { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11px; } +.status-dot, .live-dot { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: var(--required); } +.live-dot { animation: livepulse 1.9s ease-in-out infinite; } +.lang-toggle, .results-actions button, .report-primary-actions button, .advanced-report button, .action-verb, .results-nav button { border: 1px solid var(--line); border-radius: 5px; background: var(--panel); color: var(--ink-2); cursor: pointer; } +.lang-toggle { min-width: 38px; padding: 5px 8px; font: 700 10px var(--mono); } +.lang-toggle:hover, .results-actions button:hover, .report-primary-actions button:hover, .advanced-report button:hover { background: var(--panel-2); } + +.workspace { width: min(1420px, calc(100% - 36px)); margin: 0 auto; } +.home { padding: clamp(32px, 7vh, 78px) 0 28px; } +.home-composition { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: clamp(38px, 7vw, 110px); align-items: center; } +.home-main { max-width: 760px; } +.home-intro { max-width: 680px; } +.eyebrow, .section-kicker { color: var(--faint); font-size: 10px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; } +.home-intro h1 { max-width: 640px; margin: 12px 0 12px; font-size: clamp(29px, 4.5vw, 52px); line-height: 1.05; letter-spacing: -.045em; } +.home-intro p { max-width: 610px; margin: 0; color: var(--ink-2); font-size: 15px; line-height: 1.65; } +.action-panel { display: grid; gap: 9px; margin-top: 31px; } +.action-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 14px; width: 100%; padding: 14px 15px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); box-shadow: 0 2px 7px rgba(34, 49, 58, .04); cursor: pointer; text-align: left; transition: border-color .15s, transform .15s, box-shadow .15s; } +.action-row:hover { border-color: var(--accent); box-shadow: 0 7px 18px rgba(45, 111, 115, .1); transform: translateY(-1px); } +.action-primary { border-left: 3px solid var(--accent); } +.action-secondary { border-left: 3px solid var(--line); } +.action-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 6px; background: var(--accent-soft); color: var(--accent); } +.action-secondary .action-icon { background: var(--panel-2); color: var(--muted); } +.action-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; } +.action-copy { min-width: 0; display: grid; gap: 4px; } +.action-copy strong { font-size: 14px; } +.action-copy small { color: var(--muted); font-size: 11px; line-height: 1.4; } +.action-verb { display: inline-flex; align-items: center; gap: 9px; padding: 6px 9px; font-size: 11px; white-space: nowrap; } +.action-verb b { color: var(--accent); font-size: 16px; } +.home-visual { display: grid; place-items: center; gap: 12px; color: var(--faint); font: 10px var(--mono); letter-spacing: .08em; text-transform: uppercase; } +.home-visual::before { content: ""; width: 1px; height: 120px; background: var(--line); } +.home-visual::after { content: ""; width: 110px; height: 110px; border: 1px solid var(--line); border-radius: 50%; position: absolute; opacity: .45; } +.home-visual svg { width: 106px; height: 106px; color: var(--accent); opacity: .75; } +.check-scope { margin-top: clamp(52px, 9vh, 92px); border-top: 1px solid var(--line); padding-top: 16px; } +.check-scope h2 { margin: 0 0 15px; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; } +.scope-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; } +.scope-grid > div { display: grid; grid-template-columns: 28px 1fr; column-gap: 8px; } +.scope-grid span { grid-row: span 2; color: var(--accent); font: 700 11px var(--mono); } +.scope-grid strong { font-size: 12px; } +.scope-grid p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; } +.privacy-promise, .scanning-boundary, .privacy-bar { display: flex; align-items: center; gap: 7px; margin: 23px 0 0; color: var(--faint); font-size: 10px; } +.privacy-promise::before, .scanning-boundary::before, .privacy-bar::before { content: "▣"; color: var(--accent); } +.error-banner, .notice-banner { margin-top: 15px; padding: 10px 12px; border: 1px solid var(--current-line); border-left: 3px solid var(--current); background: var(--current-bg); color: var(--current); font-size: 11px; } + +.scanning { padding: clamp(28px, 7vh, 70px) 0; } +.scanning-layout { display: grid; grid-template-columns: minmax(260px, .65fr) minmax(0, 1.35fr); min-height: 390px; border: 1px solid var(--line); background: var(--panel); box-shadow: var(--shadow); } +.scanning-intro { display: flex; flex-direction: column; justify-content: center; padding: 42px; border-right: 1px solid var(--line); } +.live-indicator { display: inline-flex; align-items: center; gap: 7px; color: var(--required); font: 700 10px var(--mono); letter-spacing: .1em; text-transform: uppercase; } +.live-indicator i { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: currentColor; } +.scanning-intro h1 { margin: 17px 0 9px; font-size: clamp(24px, 3vw, 38px); letter-spacing: -.03em; } +.scanning-intro p { margin: 0; color: var(--muted); line-height: 1.6; } +.selected-path { max-width: 100%; margin-top: 24px; overflow: hidden; color: var(--faint); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; } +.stage-list { display: grid; align-content: center; gap: 0; margin: 0; padding: 24px 36px; list-style: none; } +.stage { position: relative; display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 11px; min-height: 48px; border-bottom: 1px solid var(--line-soft); } +.stage:last-child { border-bottom: 0; } +.stage-marker { width: 21px; height: 21px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--faint); font: 10px var(--mono); } +.stage strong { font-size: 12px; } +.stage small { color: var(--faint); font-size: 10px; } +.stage-active .stage-marker { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); } +.stage-active strong { color: var(--accent); } +.stage-done .stage-marker { border-color: var(--required); color: var(--required); } +.stage-done strong { color: var(--ink-2); } + +.results { width: 100%; padding: 0 18px 28px; } +.process-bar { width: min(1420px, 100%); margin: 0 auto; min-height: 38px; display: flex; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); } +.process-bar nav { display: flex; align-items: center; gap: 8px; color: var(--faint); font-size: 10px; } +.process-bar nav b { color: var(--line); font-size: 15px; font-weight: 400; } +.process-done { color: var(--required); } +.process-active { padding: 4px 7px; border-radius: 4px; background: var(--accent-soft); color: var(--accent); font-weight: 700; } +.results-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; } +.results-actions button { padding: 5px 8px; font-size: 10px; } +.results-actions .primary, .report-primary-actions .primary { border-color: var(--accent); background: var(--accent); color: #fff; } +.results-actions .primary:hover, .report-primary-actions .primary:hover { background: #245b5f; } +.results-layout { width: min(1420px, 100%); margin: 0 auto; display: grid; grid-template-columns: 258px minmax(0, 1fr); min-height: 0; } +.finding-navigator { min-width: 0; padding: 16px 12px 17px 0; border-right: 1px solid var(--line); } +.navigator-heading { display: flex; align-items: center; justify-content: space-between; padding: 0 9px 11px; border-bottom: 1px solid var(--line); } +.navigator-count, .evidence-count { min-width: 20px; padding: 2px 5px; border-radius: 10px; background: var(--panel-2); color: var(--muted); font: 700 10px var(--mono); text-align: center; } +.navigator-group { padding: 14px 0 4px; } +.navigator-group-label { display: flex; justify-content: space-between; padding: 0 9px 6px; color: var(--faint); font-size: 9px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; } +.navigator-item { width: 100%; min-width: 0; display: grid; grid-template-columns: 21px minmax(0, 1fr) auto; align-items: center; gap: 7px; padding: 8px; border: 1px solid transparent; border-radius: 5px; background: transparent; cursor: pointer; text-align: left; } +button.navigator-item:hover, .navigator-item.is-active { border-color: var(--current-line); background: var(--current-bg); } +.navigator-runtime { cursor: default; } +.navigator-symbol { width: 18px; height: 18px; display: grid; place-items: center; border-radius: 4px; background: var(--current-bg); color: var(--current); font: 700 12px var(--mono); } +.navigator-warning .navigator-symbol { background: var(--warning-bg); color: var(--warning); } +.navigator-runtime .navigator-symbol { background: var(--required-bg); color: var(--required); } +.navigator-copy { min-width: 0; display: grid; gap: 2px; } +.navigator-copy strong { overflow: hidden; font-size: 11px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; } +.navigator-copy small { overflow: hidden; color: var(--faint); font: 9px var(--mono); text-overflow: ellipsis; white-space: nowrap; } +.navigator-tag { padding: 2px 4px; border-radius: 3px; background: var(--current-bg); color: var(--current); font-size: 8px; font-weight: 750; text-transform: uppercase; } +.navigator-warning .navigator-tag { background: var(--warning-bg); color: var(--warning); } +.navigator-tag.status-available { background: var(--required-bg); color: var(--required); } +.navigator-empty { margin: 0; padding: 8px 9px; color: var(--muted); font-size: 10px; line-height: 1.45; } +.navigator-foot { margin-top: 14px; padding: 9px; border-top: 1px solid var(--line); color: var(--faint); font-size: 9px; } +.result-detail { min-width: 0; padding: 17px 0 0 24px; } +.results-topline { display: flex; align-items: end; justify-content: space-between; gap: 18px; } +.results-topline h1 { margin: 5px 0 0; font-size: 22px; letter-spacing: -.025em; } +.scan-meta { display: inline-flex; align-items: center; gap: 6px; color: var(--faint); font-size: 10px; } +.scan-meta .live-dot { animation: none; } +.diagnosis-banner { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-top: 16px; padding: 13px 14px; border: 1px solid var(--line); border-left: 3px solid var(--current); background: var(--panel); } +.diagnosis-clear { border-left-color: var(--required); } +.diagnosis-icon { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 5px; background: var(--current-bg); color: var(--current); font: 700 16px var(--mono); } +.diagnosis-clear .diagnosis-icon { background: var(--required-bg); color: var(--required); } +.diagnosis-copy { min-width: 0; } +.diagnosis-copy h2 { margin: 3px 0 2px; font-size: 14px; } +.diagnosis-copy p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.45; } +.diagnosis-counts { display: flex; gap: 12px; color: var(--muted); font-size: 10px; white-space: nowrap; } +.diagnosis-counts span { display: inline-flex; align-items: baseline; gap: 4px; } +.diagnosis-counts strong { color: var(--ink); font: 700 14px var(--mono); } +.diagnosis-attention .diagnosis-counts span:first-child strong { color: var(--current); } +.primary-diagnosis { margin-top: 16px; } +.finding { position: relative; min-width: 0; border: 1px solid var(--line); border-left: 3px solid var(--current); background: var(--panel); box-shadow: 0 2px 6px rgba(34, 49, 58, .035); } +.finding-warning { border-left-color: var(--warning); } +.finding-suggestion, .finding-info { border-left-color: var(--accent); } +.finding-body { padding: 15px 16px 14px; } +.finding-heading { display: flex; align-items: center; gap: 9px; } +.severity { display: inline-flex; align-items: center; gap: 5px; color: var(--current); font-size: 9px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; } +.severity-warning { color: var(--warning); } +.severity-suggestion, .severity-info { color: var(--accent); } +.severity-symbol { width: 16px; height: 16px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 4px; font: 700 11px var(--mono); } +.finding-category { color: var(--faint); font-size: 9px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; } +.finding h2 { margin: 8px 0 5px; font-size: 18px; line-height: 1.25; letter-spacing: -.02em; } +.finding-primary h2 { font-size: 21px; } +.finding-summary { margin: 0; color: var(--ink-2); font-size: 12px; line-height: 1.55; } +.runtime-comparison { display: grid; grid-template-columns: minmax(0, 1fr) 42px minmax(0, 1fr); align-items: stretch; margin-top: 15px; } +.runtime-cell { min-width: 0; padding: 12px 13px; border: 1px solid; display: grid; gap: 4px; } +.current-cell { border-color: var(--current-line); background: var(--current-bg); } +.required-cell { border-color: var(--required-line); background: var(--required-bg); } +.runtime-label { color: var(--muted); font-size: 9px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; } +.runtime-cell strong { overflow: hidden; font: 700 22px var(--mono); text-overflow: ellipsis; white-space: nowrap; } +.current-cell strong { color: var(--current); } +.required-cell strong { color: var(--required); } +.runtime-cell code { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; } +.comparison-divider { display: grid; place-items: center; color: var(--current); font: 700 13px var(--mono); } +.comparison-divider span { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; background: var(--panel); } +.evidence-block { margin-top: 15px; } +.evidence-heading { display: flex; align-items: center; gap: 7px; margin-bottom: 7px; } +.evidence-count { background: var(--accent-soft); color: var(--evidence); } +.evidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } +.evidence-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); background: var(--panel); } +.evidence-card-head { display: flex; align-items: center; gap: 6px; padding: 6px 9px; border-bottom: 1px solid var(--line-soft); background: var(--panel-2); color: var(--muted); font: 700 9px var(--mono); text-transform: uppercase; } +.evidence-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--evidence); } +.evidence-terminal .evidence-dot { background: var(--required); } +.evidence-card code { display: block; min-height: 42px; padding: 9px; overflow: hidden; background: var(--code-highlight); color: var(--ink-2); font-size: 10px; line-height: 1.45; text-overflow: ellipsis; white-space: pre-wrap; word-break: break-word; } +.evidence-terminal code { background: var(--term); color: var(--term-fg); } +.recommendation { display: grid; grid-template-columns: 21px minmax(0, 1fr); gap: 8px; margin-top: 14px; padding: 10px 11px; border: 1px solid var(--warning-line); background: var(--warning-bg); } +.next-step-mark { width: 19px; height: 19px; display: grid; place-items: center; border-radius: 4px; background: #eee5d1; color: var(--warning); font: 700 13px var(--mono); } +.recommendation > div > span { display: block; color: var(--warning); font-size: 9px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; } +.recommendation p { margin: 3px 0 0; color: var(--ink-2); font-size: 11px; line-height: 1.45; } +.limitations { margin: 8px 0 0; color: var(--muted); font-size: 10px; line-height: 1.45; } +.limitations strong { color: var(--ink-2); } +.finding-list { display: grid; gap: 9px; } +.remaining-findings { margin-top: 17px; } +.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 9px; } +.section-heading h2 { margin: 4px 0 0; font-size: 15px; } +.empty-attention { display: flex; align-items: center; gap: 10px; padding: 14px; border: 1px solid var(--required-line); background: var(--required-bg); color: var(--required); } +.empty-attention > span { font: 700 22px var(--mono); } +.empty-attention div { display: grid; gap: 3px; } +.empty-attention div span { color: var(--muted); font-size: 11px; } + +.context-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(250px, .75fr); gap: 26px; align-items: start; margin-top: 23px; padding-top: 18px; border-top: 1px solid var(--line); } +.project-panel, .overview-panel { min-width: 0; } +.project-heading { align-items: end; padding-bottom: 9px; border-bottom: 1px solid var(--line-soft); } +.project-heading h2 { font-size: 17px; } +.project-path { max-width: 55%; overflow: hidden; color: var(--faint); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; } +.project-facts { display: flex; flex-wrap: wrap; gap: 22px; margin: 11px 0; } +.project-facts > div { display: grid; gap: 2px; } +.project-facts span, .project-inline span { color: var(--faint); font-size: 9px; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; } +.project-facts strong { font-size: 13px; } +.marker-list { display: flex; flex-wrap: wrap; gap: 5px; margin: 8px 0 11px; } +.marker-list code, .marker-list > span { padding: 3px 6px; border: 1px solid var(--line); border-radius: 4px; background: var(--panel-2); color: var(--ink-2); font-size: 9px; } +.requirements-block { padding-top: 10px; border-top: 1px solid var(--line-soft); } +.requirements-block h3 { margin: 0 0 6px; font-size: 11px; } +.requirements-block ul { margin: 0; padding: 0; list-style: none; } +.requirements-block li { display: grid; grid-template-columns: minmax(120px, 1fr) auto auto; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px solid var(--line-soft); font-size: 10px; } +.requirement-value { font-family: var(--mono); } +.satisfaction { padding: 2px 6px; border-radius: 8px; font-size: 9px; font-weight: 700; } +.satisfaction-satisfied { background: var(--required-bg); color: var(--required); } +.satisfaction-not_satisfied { background: var(--current-bg); color: var(--current); } +.satisfaction-unknown { background: var(--warning-bg); color: var(--warning); } +.unknown-note, .project-notes, .project-errors { margin: 0; padding: 8px 9px; border-left: 2px solid var(--warning); background: var(--warning-bg); color: var(--muted); font-size: 10px; line-height: 1.45; } +.project-notes, .project-errors { margin-top: 8px; } +.project-errors { border-left-color: var(--current); background: var(--current-bg); color: var(--current); } +.project-notes p, .project-errors p { margin: 3px 0 0; } +.project-inline { display: flex; align-items: baseline; gap: 9px; margin: 7px 0 0; font-size: 10px; } +.system-overview { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; padding: 9px 0; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); } +.system-overview > span { grid-row: 1 / 3; align-self: center; color: var(--faint); font-size: 10px; } +.system-overview strong, .system-overview small { text-align: right; } +.system-overview strong { font-size: 11px; } +.system-overview small { color: var(--faint); font-size: 9px; } +.overview-row { min-height: 37px; display: grid; grid-template-columns: 10px minmax(65px, 1fr) auto auto; align-items: center; gap: 7px; border-bottom: 1px solid var(--line-soft); font-size: 10px; } +.overview-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--warning); } +.overview-dot-available { background: var(--required); } +.overview-version { font: 9px var(--mono); } +.overview-status { color: var(--faint); font-size: 9px; } +.status-available { color: var(--required); } +.status-failed, .status-timeout, .status-malformed { color: var(--current); } +.status-missing, .status-unsupported { color: var(--warning); } +.available-summary { display: flex; align-items: baseline; gap: 6px; margin: 10px 0 0; color: var(--muted); font-size: 10px; } +.available-summary strong { color: var(--ink); font: 700 17px var(--mono); } +.no-project { margin: 0; padding: 10px 0; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); color: var(--muted); font-size: 11px; } +.supporting-findings { margin-top: 18px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); } +.supporting-findings > summary, .technical-shell > summary { display: flex; align-items: center; gap: 8px; padding: 10px 2px; cursor: pointer; list-style: none; } +.supporting-findings > summary::-webkit-details-marker, .technical-shell > summary::-webkit-details-marker, .advanced-report > summary::-webkit-details-marker { display: none; } +.supporting-findings > summary::before, .technical-shell > summary::after { color: var(--accent); content: "+"; font: 15px var(--mono); } +.supporting-findings[open] > summary::before, .technical-shell[open] > summary::after { content: "−"; } +.supporting-findings > summary strong { margin-left: auto; color: var(--muted); font: 10px var(--mono); } +.supporting-findings > .finding-list { padding-bottom: 11px; } +.report-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); } +.share-heading { display: flex; align-items: center; gap: 9px; min-width: 0; } +.share-mark { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 5px; background: var(--accent-soft); color: var(--accent); font: 700 14px var(--mono); } +.share-heading div { display: grid; gap: 2px; } +.share-heading strong { font-size: 12px; } +.share-heading span { color: var(--faint); font-size: 9px; } +.report-primary-actions { display: flex; align-items: center; gap: 7px; } +.report-primary-actions button { padding: 7px 9px; font-size: 10px; } +.advanced-report { position: relative; } +.advanced-report > summary { padding: 7px 9px; border: 1px solid var(--line); border-radius: 5px; background: var(--panel); color: var(--ink-2); cursor: pointer; font-size: 10px; } +.advanced-report[open] { min-width: 320px; } +.advanced-report > div { display: flex; justify-content: flex-end; gap: 5px; margin-top: 6px; } +.advanced-report button { padding: 5px 7px; font-size: 9px; } +.advanced-report p { margin: 5px 0 0; color: var(--faint); font-size: 9px; text-align: right; } +.privacy-bar { margin: 8px 1px 0; } +.technical-shell { margin-top: 12px; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); } +.technical-shell > summary > span { font-size: 11px; font-weight: 700; } +.technical-shell > summary small { margin-left: auto; color: var(--faint); font-size: 9px; } +.technical-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 34px; padding: 14px 0 4px; border-top: 1px solid var(--line-soft); } +.technical-content section:last-child { grid-column: 1 / -1; } +.technical-content h3 { margin: 0 0 7px; font-size: 11px; } +.tool-list { border-top: 1px solid var(--line-soft); } +.tool-row { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 10px; padding: 7px 2px; border-bottom: 1px solid var(--line-soft); font-size: 9px; } +.tool-identity { display: flex; align-items: center; gap: 6px; } +.tool-status { padding: 2px 4px; border-radius: 3px; background: var(--panel-2); font-size: 8px; } +.tool-detail { min-width: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 3px 8px; color: var(--muted); text-align: right; } +.technical-list { margin: 0; padding-left: 17px; font-size: 9px; } +.technical-list li { margin: 4px 0; } +.technical-list code { margin-left: 7px; } +.path-list { max-height: 310px; overflow: auto; border: 1px solid var(--line); background: var(--panel-2); } +.path-row { display: flex; justify-content: space-between; gap: 12px; padding: 5px 8px; border-bottom: 1px solid var(--line-soft); font-size: 9px; } +.path-row:last-child { border-bottom: 0; } +.path-row span { color: var(--warning); white-space: nowrap; } +.statusbar { width: min(1420px, 100%); min-height: 28px; display: flex; align-items: center; gap: 8px; margin: 17px auto 0; padding: 0 10px; background: var(--term); color: #9eafb4; font-size: 9px; } +.statusbar .live-dot { width: 6px; height: 6px; animation: none; } +.status-separator { width: 1px; height: 11px; background: #3b4c54; } +.status-spacer { flex: 1; } + +@keyframes livepulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(79,129,117,.34); } 60% { box-shadow: 0 0 0 5px rgba(79,129,117,0); } } +@media (max-width: 1040px) { + .workspace { width: calc(100% - 30px); } + .results { padding-left: 15px; padding-right: 15px; } + .results-layout, .process-bar { width: 100%; } + .home-composition { grid-template-columns: minmax(0, 1fr) 200px; gap: 30px; } + .context-grid { grid-template-columns: minmax(0, 1fr) minmax(220px, .8fr); gap: 18px; } + .result-detail { padding-left: 18px; } +} +@media (max-width: 820px) { + .toolbar-context { max-width: 24vw; } + .home-composition { grid-template-columns: 1fr; } + .home-visual { display: none; } + .home { padding-top: 34px; } + .results-layout { display: block; } + .finding-navigator { display: none; } + .result-detail { padding-left: 0; } + .process-bar { min-height: 44px; } + .process-bar nav { display: none; } + .results-actions { width: 100%; justify-content: flex-end; } + .context-grid { grid-template-columns: 1fr; } + .diagnosis-banner { grid-template-columns: 29px minmax(0, 1fr); } + .diagnosis-counts { grid-column: 2; justify-content: flex-start; } +} +@media (max-width: 620px) { + .topbar { padding: 0 11px; gap: 8px; } + .brand-copy small, .readonly-indicator { display: none; } + .toolbar-context { max-width: 34vw; } + .workspace { width: calc(100% - 22px); } + .results { padding: 0 11px 20px; } + .results-topline { align-items: flex-start; flex-direction: column; gap: 5px; } + .action-row { grid-template-columns: 35px minmax(0, 1fr); gap: 10px; } + .action-verb { grid-column: 2; justify-self: start; } + .scope-grid { grid-template-columns: 1fr; gap: 14px; } + .scanning-layout { grid-template-columns: 1fr; } + .scanning-intro { padding: 28px; border-right: 0; border-bottom: 1px solid var(--line); } + .stage-list { padding: 16px 22px; } + .stage { grid-template-columns: 26px 1fr; } + .stage small { grid-column: 2; } + .runtime-comparison { grid-template-columns: 1fr; gap: 0; } + .comparison-divider { height: 28px; } + .evidence-grid { grid-template-columns: 1fr; } + .project-heading { align-items: flex-start; flex-direction: column; } + .project-path { max-width: 100%; } + .requirements-block li, .tool-row { grid-template-columns: 1fr; } + .report-bar { align-items: flex-start; flex-direction: column; } + .report-primary-actions { width: 100%; flex-wrap: wrap; } + .advanced-report[open] { min-width: 100%; } + .advanced-report > div, .advanced-report p { justify-content: flex-start; text-align: left; } + .technical-content { grid-template-columns: 1fr; } + .technical-content section:last-child { grid-column: 1; } + .tool-detail { justify-content: flex-start; text-align: left; } + .statusbar { overflow: hidden; white-space: nowrap; } + .status-spacer, .statusbar > :last-child { display: none; } +} +@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } } diff --git a/src/App.tsx b/src/App.tsx index fb1073d..d53356b 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -7,6 +7,7 @@ import { writeText } from "@tauri-apps/plugin-clipboard-manager"; import { detectLanguage, type Lang, type Messages, messages } from "./i18n"; import { primaryTool, + runtimeComparisonForFinding, splitFindings, summarizeReport, } from "./presentation"; @@ -126,40 +127,63 @@ function FindingCard({ finding, lang, t, + report, + primary = false, }: { finding: Finding; lang: Lang; t: Messages; + report: ScanReport; + primary?: boolean; }) { + const comparison = runtimeComparisonForFinding(finding, report); + const hasConfigurationEvidence = finding.id.startsWith("project.") || finding.evidence.some((item) => /package\.json|pyproject|requirements|\.nvmrc|\.node-version|\.python-version/i.test(`${item.en_us} ${item.zh_cn}`)); return ( -
+
+ {severityLabel(finding.severity, t)} - - {categoryLabel(finding.category, t)} - + {categoryLabel(finding.category, t)}
-

{localized(finding.title, lang)}

+

{localized(finding.title, lang)}

{localized(finding.summary, lang)}

+ + {comparison ? ( +
+
+ {t.currentRuntime} + {comparison.tool?.version ?? t.statusMissing} + {comparison.tool?.executable ? {comparison.tool.executable} : null} +
+ +
+ {t.projectRequirement} + {comparison.requirement.raw} + {comparison.requirement.source} +
+
+ ) : null} + {finding.evidence.length > 0 ? ( -
- - {t.evidence} · {finding.evidence.length} - -
    +
    +
    {t.evidence}{finding.evidence.length}
    +
    {finding.evidence.map((item, index) => ( -
  • +
    +
    {localized(item, lang)} -
  • +
    ))} -
-
+ + ) : null}
- {t.recommendation} -

{localized(finding.recommendation, lang)}

+ +
{t.nextStep}

{localized(finding.recommendation, lang)}

{finding.limitations ? (

@@ -379,6 +403,52 @@ function TechnicalDetails({ report, t }: { report: ScanReport; t: Messages }) { ); } +function FindingNavigator({ + report, + lang, + t, + activeId, + onSelect, +}: { + report: ScanReport; + lang: Lang; + t: Messages; + activeId: string | null; + onSelect: (id: string) => void; +}) { + const groups = splitFindings(report.findings); + const runtimes = [ + { label: "Python", tool: primaryTool(report.tools, "python") }, + { label: "Node.js", tool: primaryTool(report.tools, "node") }, + { label: "Git", tool: primaryTool(report.tools, "git") }, + ]; + const checkCount = report.findings.length + runtimes.length + 1; + return ( +

+ ); +} + function App() { const [lang, setLang] = useState(() => detectLanguage()); const [view, setView] = useState("home"); @@ -386,6 +456,7 @@ function App() { const [selectedPath, setSelectedPath] = useState(null); const [activeStage, setActiveStage] = useState(null); const [report, setReport] = useState(null); + const [activeFindingId, setActiveFindingId] = useState(null); const [error, setError] = useState(null); const [notice, setNotice] = useState(null); const [busy, setBusy] = useState(false); @@ -397,6 +468,8 @@ function App() { [report], ); const hasAttention = counts.problems > 0 || counts.warnings > 0; + const primaryFinding = findingGroups.attention.find((finding) => finding.id === activeFindingId) ?? findingGroups.attention[0]; + const remainingAttention = findingGroups.attention.filter((finding) => finding.id !== primaryFinding?.id); async function buildMarkdown( current: ScanReport, @@ -441,6 +514,7 @@ function App() { path: projectPath || "", }); setReport(nextReport); + setActiveFindingId(nextReport.findings.find((finding) => finding.severity === "problem" || finding.severity === "warning")?.id ?? null); setView("results"); } catch (scanError) { const message = @@ -493,6 +567,7 @@ function App() { setView("home"); setError(null); setNotice(null); + setActiveFindingId(null); } const stages = scanKind === "project" ? projectStages : machineStages; @@ -502,14 +577,12 @@ function App() {
+ {report?.project ? folderName(report.project.path) : view === "results" ? t.machineMode : t.projectMode}
- Read-only + - - -
+
+ +
- -
- {hasAttention ? "!" : "✓"} -
-

{hasAttention ? t.attentionTitle : t.clearTitle}

-

{hasAttention ? t.attentionBody : t.clearBody}

-
-
- {counts.problems}{t.problems} - {counts.warnings}{t.warnings} - {counts.suggestions}{t.suggestions} -
-
- -
-
- - - {t.conciseReportHelp} -
-
- {t.advancedReport} -

{t.technicalReportHelp}

-
- - +
+ +
+
{t.resultsTitle}

{report.project ? folderName(report.project.path) : t.machineMode}

{t.statusAvailable}
+
+ +
{t.overallDiagnosis}

{hasAttention ? t.attentionTitle : t.clearTitle}

{hasAttention ? t.attentionBody : t.clearBody}

+
{counts.problems}{t.problems}{counts.warnings}{t.warnings}{counts.suggestions}{t.suggestions}
+
+ +
+ {primaryFinding ? :
{t.noAttention}{t.clearBody}
} +
+ {remainingAttention.length > 0 ?
{t.additionalFindings}

{t.needsAttention}

{remainingAttention.map((finding) => )}
: null} + +
+ {report.project ? :

{t.noProject}

} +
-
-
- - {notice ?
{notice}
: null} -

{t.privacyBar}

- - {report.project ? :

{t.noProject}

} -
-
-
-
- Diagnosis -

{t.needsAttention}

-
-
- {findingGroups.attention.length > 0 ? ( -
- {findingGroups.attention.map((finding) => ( - - ))} -
- ) : ( -
{t.noAttention}
- )} - - {findingGroups.notes.length > 0 ? ( -
-

{t.diagnosticNotes}

-
- {findingGroups.notes.map((finding) => ( - - ))} -
-
- ) : null} - - {findingGroups.suggestions.length > 0 ? ( -
- - {t.cleanupSuggestions} - {findingGroups.suggestions.length} - -
- {findingGroups.suggestions.map((finding) => ( - - ))} -
-
- ) : null} + {findingGroups.notes.length > 0 || findingGroups.suggestions.length > 0 ?
{t.supportingNotes}{findingGroups.notes.length + findingGroups.suggestions.length}
{[...findingGroups.notes, ...findingGroups.suggestions].map((finding) => )}
: null} +
{t.shareDiagnosis}{t.conciseReportHelp}
{t.moreShareOptions}

{t.technicalReportHelp}

+ {notice ?
{notice}
: null}

{t.privacyBar}

- -
- - +
{primaryFinding ? localized(primaryFinding.title, lang) : t.noAttention}{counts.problems} {t.problems}{counts.warnings} {t.warnings}{report.system.os} {report.system.arch}Inspect → Diagnose → Explain → Share
) : null}
diff --git a/src/i18n.ts b/src/i18n.ts index 6965c24..1812fc8 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -2,6 +2,9 @@ export type Lang = "zh-CN" | "en-US"; export interface Messages { brandTagline: string; + readOnly: string; + projectMode: string; + machineMode: string; homeTitle: string; homeSubtitle: string; diagnoseProject: string; @@ -21,6 +24,7 @@ export interface Messages { scanningTitle: string; scanningMachine: string; scanningProject: string; + calibrating: string; stageSystem: string; stagePath: string; stagePython: string; @@ -38,6 +42,9 @@ export interface Messages { newProjectScan: string; clearTitle: string; clearBody: string; + overallDiagnosis: string; + additionalFindings: string; + supportingNotes: string; attentionTitle: string; attentionBody: string; problems: string; @@ -45,6 +52,8 @@ export interface Messages { suggestions: string; availableTools: string; copyForAi: string; + shareDiagnosis: string; + moreShareOptions: string; saveReport: string; advancedReport: string; copyTechnical: string; @@ -79,6 +88,12 @@ export interface Messages { pathEntries: string; pathUnchecked: string; evidence: string; + configurationEvidence: string; + terminalEvidence: string; + currentRuntime: string; + projectRequirement: string; + runtimeComparison: string; + nextStep: string; recommendation: string; limitations: string; severityProblem: string; @@ -106,6 +121,9 @@ export interface Messages { export const messages: Record = { "zh-CN": { brandTagline: "开发环境诊断", + readOnly: "只读", + projectMode: "项目诊断", + machineMode: "本机检查", homeTitle: "从项目开始诊断", homeSubtitle: "选择跑不起来的项目,EnvCompass 会把项目声明与这台电脑上的 Python、Node.js 和 PATH 放在一起检查。", @@ -126,6 +144,7 @@ export const messages: Record = { scanningTitle: "正在诊断开发环境", scanningMachine: "正在检查这台电脑上的实际命令与 PATH。", scanningProject: "正在把项目声明与本机环境进行对照。", + calibrating: "正在检查", stageSystem: "读取 Windows 与系统架构", stagePath: "检查 PATH", stagePython: "检查 Python 与 pip", @@ -143,6 +162,9 @@ export const messages: Record = { newProjectScan: "诊断另一个项目", clearTitle: "没有发现明显会阻止项目运行的问题", clearBody: "基于当前可读取的证据,没有确认 runtime、项目要求或命令解析冲突。", + overallDiagnosis: "总体判断", + additionalFindings: "其他偏差", + supportingNotes: "判断说明与清理建议", attentionTitle: "发现需要处理的环境问题", attentionBody: "先处理下方的问题和警告,再重新运行项目。", problems: "问题", @@ -150,6 +172,8 @@ export const messages: Record = { suggestions: "清理建议", availableTools: "工具可用", copyForAi: "复制给 AI", + shareDiagnosis: "分享诊断", + moreShareOptions: "更多分享选项", saveReport: "保存简明报告", advancedReport: "技术报告", copyTechnical: "复制技术报告", @@ -184,6 +208,12 @@ export const messages: Record = { pathEntries: "项", pathUnchecked: "含未检查的网络路径", evidence: "证据", + configurationEvidence: "配置证据", + terminalEvidence: "终端证据", + currentRuntime: "当前 runtime", + projectRequirement: "项目要求", + runtimeComparison: "当前 runtime 与项目要求对照", + nextStep: "下一步", recommendation: "下一步", limitations: "判断边界", severityProblem: "问题", @@ -209,6 +239,9 @@ export const messages: Record = { }, "en-US": { brandTagline: "Development environment diagnosis", + readOnly: "Read-only", + projectMode: "Project diagnosis", + machineMode: "Machine scan", homeTitle: "Start with the project", homeSubtitle: "Choose the project that will not run. EnvCompass compares its declarations with the Python, Node.js, and PATH actually used on this PC.", @@ -229,6 +262,7 @@ export const messages: Record = { scanningTitle: "Diagnosing the environment", scanningMachine: "Checking the commands and PATH actually used on this PC.", scanningProject: "Comparing project declarations with the machine environment.", + calibrating: "Checking", stageSystem: "Read Windows and architecture", stagePath: "Inspect PATH", stagePython: "Check Python and pip", @@ -246,6 +280,9 @@ export const messages: Record = { newProjectScan: "Diagnose another project", clearTitle: "No clear issue likely to prevent the project from running", clearBody: "The available evidence does not confirm a runtime, project requirement, or command-resolution conflict.", + overallDiagnosis: "Overall diagnosis", + additionalFindings: "Additional deviations", + supportingNotes: "Diagnostic notes and cleanup", attentionTitle: "Environment issues need attention", attentionBody: "Address the problems and warnings below before trying the project again.", problems: "Problems", @@ -253,6 +290,8 @@ export const messages: Record = { suggestions: "Cleanup", availableTools: "Tools available", copyForAi: "Copy for AI", + shareDiagnosis: "Share diagnosis", + moreShareOptions: "More share options", saveReport: "Save concise report", advancedReport: "Technical report", copyTechnical: "Copy technical report", @@ -287,6 +326,12 @@ export const messages: Record = { pathEntries: "entries", pathUnchecked: "includes unchecked network paths", evidence: "Evidence", + configurationEvidence: "Configuration evidence", + terminalEvidence: "Terminal evidence", + currentRuntime: "Current runtime", + projectRequirement: "Project requirement", + runtimeComparison: "Current runtime and project requirement", + nextStep: "Next step", recommendation: "Next step", limitations: "Limitation", severityProblem: "Problem", diff --git a/src/presentation.test.ts b/src/presentation.test.ts index f45fecf..6cff346 100644 --- a/src/presentation.test.ts +++ b/src/presentation.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; -import { splitFindings, summarizeReport } from "./presentation"; +import { runtimeComparisonForFinding, splitFindings, summarizeReport } from "./presentation"; import type { Finding, ScanReport } from "./types"; function finding(severity: Finding["severity"]): Finding { @@ -43,4 +43,23 @@ describe("results presentation", () => { expect(groups.suggestions).toHaveLength(1); expect(groups.notes).toHaveLength(1); }); + + it("maps a project mismatch to the unresolved runtime requirement", () => { + const mismatch = { + ...finding("problem"), + id: "project.mismatch.node.engines-node", + category: "project", + evidence: [{ zh_cn: "package.json engines.node: >=20 <23", en_us: "package.json engines.node: >=20 <23" }], + } as Finding; + const report = { + findings: [mismatch], + project: { + requirements: [{ kind: "node", source: "package.json engines.node", raw: ">=20 <23", parsed: null, satisfied: "not_satisfied" }], + }, + tools: [{ name: "node", status: "available", version: "24.0.0" }], + } as ScanReport; + const comparison = runtimeComparisonForFinding(mismatch, report); + expect(comparison?.tool?.version).toBe("24.0.0"); + expect(comparison?.requirement.raw).toBe(">=20 <23"); + }); }); diff --git a/src/presentation.ts b/src/presentation.ts index 0d687f0..1cbec61 100644 --- a/src/presentation.ts +++ b/src/presentation.ts @@ -1,4 +1,4 @@ -import type { Finding, ScanReport, ToolProbe } from "./types"; +import type { Finding, ProjectRequirement, ScanReport, ToolProbe } from "./types"; export interface FindingCounts { problems: number; @@ -42,3 +42,23 @@ export function primaryTool( ): ToolProbe | undefined { return tools.find((tool) => tool.name === name); } + +export interface RuntimeComparison { + tool: ToolProbe | undefined; + requirement: ProjectRequirement; +} + +function runtimeKindForFinding(finding: Finding): "python" | "node" | null { + if (finding.category === "python" || finding.category === "node") return finding.category; + const match = finding.id.match(/^project\.(?:mismatch|unknown)\.(python|node)\./); + return match?.[1] === "python" || match?.[1] === "node" ? match[1] : null; +} + +export function runtimeComparisonForFinding(finding: Finding, report: ScanReport): RuntimeComparison | null { + const kind = runtimeKindForFinding(finding); + if (!kind || !report.project) return null; + const candidates = report.project.requirements.filter((item) => item.kind === kind && item.satisfied !== "satisfied"); + const evidenceText = finding.evidence.flatMap((item) => [item.zh_cn, item.en_us]).join("\n"); + const requirement = candidates.find((item) => evidenceText.includes(item.source) && evidenceText.includes(item.raw)) ?? candidates[0]; + return requirement ? { tool: primaryTool(report.tools, kind), requirement } : null; +} From 414b2ef4897748196218e7377a6cedcd0f75b7cf Mon Sep 17 00:00:00 2001 From: Xiaoju Date: Sat, 22 Aug 2026 01:23:36 +0800 Subject: [PATCH 2/4] docs: record DevDeck Light draft handoff --- PROJECT_STATE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PROJECT_STATE.md b/PROJECT_STATE.md index bf8cdbe..dee362d 100644 --- a/PROJECT_STATE.md +++ b/PROJECT_STATE.md @@ -57,7 +57,7 @@ ## Next priorities -1. Push `codex/devdeck-light`, open the requested Draft PR for Issue #6, and run Windows CI. +1. Draft PR #7 is open from `codex/devdeck-light`; wait for the Windows quality and release build, then review CI before any merge decision. 2. Capture and replace `docs/assets/envcompass-project-results.png` with a real DevDeck Light runtime-mismatch Tauri screenshot before PR review; do not reuse Design Lab or superseded Compass Atelier imagery. 3. Continue public dogfood before any scoped feature expansion. @@ -65,4 +65,4 @@ - Current `main` baseline: `73622c77f05d7e7d0d3297b4940bc5b4bd6d179c`. - Preview 2 hardening squash commit: `73622c77f05d7e7d0d3297b4940bc5b4bd6d179c`. -- Current working branch: `codex/devdeck-light`; Issue #6; Draft PR not yet opened; latest handoff state is the commit containing this file. +- Current working branch: `codex/devdeck-light`; Issue #6; Draft PR #7; CodeQL checks passed and Windows quality/release CI is still in progress; latest handoff state is the commit containing this file. From 9e224e4a22656dfce7c964fa306e92dbc86921cc Mon Sep 17 00:00:00 2001 From: Xiaoju Date: Sat, 22 Aug 2026 02:26:48 +0800 Subject: [PATCH 3/4] docs(ui): checkpoint DevDeck Light readability updates --- README.en.md | 4 +- README.md | 4 +- docs/assets/envcompass-home.png | Bin 48054 -> 70707 bytes docs/assets/envcompass-project-results.png | Bin 48283 -> 92200 bytes src-tauri/tauri.conf.json | 4 +- src/App.css | 44 ++++++++++----------- src/App.tsx | 7 ++-- 7 files changed, 32 insertions(+), 31 deletions(-) diff --git a/README.en.md b/README.en.md index 5c64741..3c81785 100644 --- a/README.en.md +++ b/README.en.md @@ -10,7 +10,7 @@ EnvCompass is a Windows development environment doctor. It checks project declar The current Preview targets Windows x64. Scans stay on the device: EnvCompass does not upload data, modify the system, execute project scripts, require an account, or collect telemetry. -![EnvCompass home screen](./docs/assets/envcompass-home.png) +![EnvCompass runtime mismatch result](./docs/assets/envcompass-project-results.png) ## Download and install @@ -39,7 +39,7 @@ The packaged application version for the current Preview line remains `0.1.0`; u The screenshot below uses the repository's synthetic fixture. It deliberately declares an unsatisfiable Node.js range to demonstrate an evidence-backed mismatch; it is not real user scan data. -![EnvCompass synthetic project diagnosis](./docs/assets/envcompass-project-results.png) +![EnvCompass home screen](./docs/assets/envcompass-home.png) ## Privacy and read-only boundaries diff --git a/README.md b/README.md index 4099767..969bbc4 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ EnvCompass 是一个 Windows 开发环境诊断工具。它会把项目声明与 当前 Preview 面向 Windows x64。扫描全部在本机完成;EnvCompass 不上传数据、不修改系统、不执行项目脚本,也没有账号或遥测。 -![EnvCompass 首页](./docs/assets/envcompass-home.png) +![EnvCompass runtime mismatch 结果](./docs/assets/envcompass-project-results.png) ## 下载与安装 @@ -39,7 +39,7 @@ EnvCompass 是一个 Windows 开发环境诊断工具。它会把项目声明与 下图使用仓库内的 synthetic fixture;它故意声明无法满足的 Node.js 版本范围,用于展示有证据的 mismatch,而不是用户真实扫描数据。 -![EnvCompass synthetic project 诊断结果](./docs/assets/envcompass-project-results.png) +![EnvCompass 首页](./docs/assets/envcompass-home.png) ## 隐私与只读边界 diff --git a/docs/assets/envcompass-home.png b/docs/assets/envcompass-home.png index 4f18ec3451f3d88b3b935014b8267aef224553ef..73104918f2de8ee0ffacff133a95af1551e4c4a5 100644 GIT binary patch literal 70707 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

`O=k>t*jJu~Crji+DDhGB6(0F`Ft*2!_L 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 gX&0$q-Z@|?%b)c^nh literal 48054 zcmeFYcQ~7G_%|E`Q7dZK3Tq_;wg3L1>GCLW1OOTgZfR?n1=_AtD3#n}nWQB6DSh*_j-}4$*$T(a?TmuUAB>Zt z-g5s#a7k4@M|k!_RyH<5d`>IgSj@V!z&grKnqeL+%g1pYbQbcH!CP5S0(e39f-N7v zu(py4^D=1d`M1N6XMUtL^ik#b+89|yBoO_@ws*2Y#9VzHM+qW~&72xhWdqC=Ej0_O zQ%a|sCr-oD5l8n@Oisjhdh*4>PZITq;M!_xndFftDfhB}WgS=Q2fWg^c-8&FG4oy)P;yj$y(>V#${x#4p z<{@}Ch?3L&HcG5i2z)pbmXbu)32QL<=up}nixxXQDd|2XmvnpJxGih-95>ukPMuNR z={91`xXU~E`O~Gn1rdr4E^JwSF-Z}Zd^(M`xM{Lfnql9+^~`^1;T&dz=WswcpjQ5$i^fq_C>caynYkQW6OTIG$;8!m$ze5yG@%RLaBcC z<2@7@`|HVbLx=S$d(J8BiGHr*enYDv6s()qQS*+QLybjE@jEx?ftun& zb^uJ|(BtU0kpW5#o^;W2+Lumdufb$=Hsf?6>=NMjfC8_=-!X#n^wmPHKvOFLxmLf> zn~gcRP))~WrW7G@SRnk@hJ%=g5cj1214q1lin<`zA)1MUE#CFYnE+16aTmfkzD$vw zW1R3L2J{A!JIr^&k+8U{;3nfHOM`rp z@#Mpk!Y7qa$on6H0`1=R06~xWjUw!pRvAE#GX<}_YwTT9a!(=+@S0n8-f%mS7D5a5LGBHG) zdy1-rwtpHRcO_KdrS`9?XQ75zek5fpw> z1>!j47MN_)xphkt<_UF>p+PpiXgwD52us7D!Tr#KB~-}0wO3@zKul|as4vYvxa=hF?1Y8!^t!F96q%M*W9{mVhzh0a~1TX45K`wyDe3H zRU=hnRbRacbXamu9Z6%7JZE;aL(eHZ(Z}l=VTVC)gxb*og^sB9Z-K!gerwV5?Q0fr z0=(W23M9xe5-47C~PAWpoFQ8(YDP3=)g-fdcP^ShyDiepJ(zA)PNXah9QP7P#PO zuQ?*wdOWLE-HPKIA)0mLBx5UEBR7KVf|ZWl;a)w+Rm$+?o%%EE6$ZR7xqfPRts*TM zu;do049m{jgeZ1OAMXos-=1Jd0id1R$xWm_1FIpONSn zts5~p+1<%|nwQ)QQdLuO8&+aGRhkd&f-Xn-s8ex61|`q+%D>;e$VD@{ZI(wv^OJ?9 z*LiIVflI03*kKsy<}gXwvz-nxiChh`n_97{w-df+sp6(dQY%A2Q}^u06RAFiJB1)< zqjnEEhmE-WB9h%29+6kw&io%DrEYGt0yN;AbJo4!-)8NXM9FgLlwVHnvjvIJ2a9si zXi^1Y;#j}O|5P&?!~Wd$4w_?Hm`NPuc^!R5F441ftkI*hT=Dj`(Gir?$F`{T?=kb` zNt2(LI~)X}(Ci6)yoPm;s?hA~7g_dC7;`f&y`^c(zXAgh)gV-#KSBQI^AgP9bJ3uE zUV=ZkFP4=vC>S7s6I@M`6tI<>?tquL# z*>ga4y*S3}DCh*BbtCk*f7AU23;>|T(wHBj6yq!hGev`aBkT}jbtKI)GLT1#@ch-g6sj%8)`K zsBZn3@{3+bxDL%eogqF$$zQtCYsyT&dwv* zrK?oMDYuR>DlI>B3W;{jy+ut00}Gf~UmSc>3K>Y1I74KaZR8SUcCBGwTG}O+B=&nVa5iv96hmVcc(G zbSKd5{h}8TT*;8oMTh{Ae-OyzF9NkNv;TGx(K>r1hB^13V;VsPnafes5NGAMLeeUr zM$ah!w8S+>dJ6fF0&-2ZO9=bG1h^83bpLT7;Y*hUg zq=BH}#d%9Wm~ZbBGZjjLR*{>bb3mrgIL60Tv;g97bx=ogE*9Ge}nK^ zY=Tp~=`?%plXyFkZ5MZQm#ksCDw1v)>iUE*)4nj%;zc%bu7XMs%k*%I@eoysXtsp8 z7M#q8%9lHFjEk!5>CudXM`+Wz9zcbjNZaNTD&#Nh;eUQj0_RgIiG|9@HN%hI85u$FHDDraS z47e5dU_@oIWh2Qh3P=)9+^=8|0HmH`aZGm-C9XIwDE-vf57Z@j$2`h%FO6EyVzepF zzxpGF@r|AW5B@z1`;Sk|ZzP~~uiT}ou4ifc?CJngPv!`Bhu9N$N zW#6lMss^gOKFYqQjaDTzp|}s~w?se#A^pd{bvLN+o<{RdU94twQ8%mV_{eIEU6>n2 z6e&yf9I{wyTS)e(Kr4`G2^H>eQNIkOz-6LW7KucAM2<((>ykal^#bQsgsHwmxBL(N zsJO$IWet8|E|ZV(F^os$N#!_3r-+=ITbEQIFsf*wjIX-)Pp2ij8ccfgm!f3*W!&W4 zqbp25e#`D$~k(*3~|no=GR(F8ih3iAQ^c(9&!N zn$x0B*xeTO$R?&ON)C3Acm`}1XvzS( z@<(u{-NL5J{c#SSIkJC*Rprp7g0ZyZR>F=(*+w5fgDh-<{0kVamiEUVhY?d}z+x!5 z34mze<)||pS5Vgqz^z=rHbXh63_w84QKOBq;}dJWg(e4JB15|VbbP7>!gr2~q$IO@ zDJn{=y9~`nWaZo#<+(yqF{Qd7N#ml5=XhF^Z!11@?zrJB1PD~hkU=q|!by5(@{02Y z&c|?YLRkC>bkDG8a4+Det!3#f-efvQGlmn9-H7^=UyiiHV?dkNDI;Kw8D3GzrWtT< z-MiL(-AhqG#FMBdJ!7g-{hLPu7EaTEYF~c9u%^-y9envJC zG)A{tN_@~lE1>|$B!ymAlR%e9CDgn6_TPXYN@)AHy!68wohz`3-74!Wv_~*g9ZF=v zmX7R*<4wTixn9zHwx`gY-w<|N)-WoIb+OFcxqkB^m=mMCTeI<;fxCQLI=L@<8j~K9 zqo=zV8W4mgQTpV?87!_)jZajp2aR=n;e}{t_1d-56$*%%xfk(KGo$RLS}t`dTSy@G zeD2D{(v2gyd`u>i~M*(*hb z9d(`1!M#RJo#0Hr4s_vFq65nE7at!=As$i2s7r+<+#8ncU!1wAk^C7l8Owz zqbPemi=$^Nr(`+u3>YwIu6tM3o&T1bILyV)s)_?LfoW`M;TMOd&cMl91ieex`DxD9 zC)rsw8)ZX}uVUN8&3 zklKbjfzzL1CSg#lD9%uthg z;!BIVp+s0EEB>Gtr;0Y*OchPu^InHt{M^2F8I_sK~JheE55)O75siuzXWM+TYR$VKKL|fWPX%C~W zeMABU#8)z;*Gx4S=|uasas%HZ$!0MRJd;&p<%aQd|Bm7z%njH)ey2bhidp=jh9j=((@Mml|a@(G+3`Mw!LgUq)b zkEoABhC$_|Rex714D3)9(~f6S+GQAg#%Y7%eb=*M|B`fu(Hsey=(88N=+R?52a67n zOj|mq0#gTt#?W+4SyqI@H}Td;#AhTH-xAAMza04|Fbb?Y=Zc;|l}xcrbFTlRxk?CZ z;$q?+!flF&!UHiw@M|+K4M5nsjnZ`1RROjIb z4d7qq7#N*i(UD}6j6IWM7-Mn~!j5X_{V-^uKjAwZ1*YQ^Jnj$r;VcI=EDXi za@cl`VV$4%YSQdUxzx;^wCFH&dWer;h^K}TGz{%(!mS1s3+8%t>ArM^7&Ocbf~Uk{6^bao531@|EL zUdJ>U=fvG9S;(`>|eh3m%fP0Tn(ft}hMV2uVx&i!F7 zmwdg>odK^=DeLSYbgdjLI=YcWz}k08O(x@~LkOp~TAswK5`~22bOYo=-@ej(leYxQ+?_Pf+1n%PwfDQ!FA<8Y zAhS)O6^5xN0ylDF_X2mFy?2XWJI%jR>{e#1U)Ba?#e|IqULGEXbh(R2yh=0>1P7j1xSZI~p11n-RpCXOsL7c(8(_bhQ{wNM$ z&-Xs@=wpfjU%kR0G0q4i`iJHY`uciJnaA5P&zb&)%koP_Zjm-jXElG*BG=(u&Ci#2 zGG%hlUb#^8V&Pb5%`KUQZF=!8nyr5)t}QBg1jiVh0fw;f*DOblH)e@Jx0d_F$!&xs zi<5mEM({K#WC#eQsRVc5}IwR0Xj2`qT*cwgXy?2?)uTPT}qu>N@UO1Rw`Gr?ew5G{UpAXeju$1tCB$ zLWX5TC-g3DG)?SpQZVNV<1Ik5aS#_-);M0(C{iK+BQmEm5bJ1lhcjw z4ioEiA6J5&>DpY&{>?Hp>-uTsR*q>LV{qu3Rt+hYcvoJ&bH1K)>F=ks=7fSa5wD%v zJ_z)_SLFjJy?e0jqHrv+lj3`9(u@xeJf5jo!A3s9EoyP<8@|2KJn9kOc;ZmY7{$uq z-eM$?iH_o`hPe(0lX$D&*q)hsk3kCO zvs_NVF<3^J_E)m7y~}Aw8&Zpu_dg>;pXyvvq7v6&0k9y;jZi}5aJ^n@ZFX3`cQ`F2 zY)>wx5!KS(+(Ss)>S;cGAZ{3RXBs3b2oe1E6DcO~@GKPIl44Zp8pp{JQl=r?JKs#KORcjc^=kmL|qSp1iM6lV$OiqLzi4#VEe)X>^2B&K!{WR_4#X)o+?~%M8g!-Z7@0rcCT-X8aZy z7)qiU+q0Wy=~}rCvb#5V!%}D1?LvdXX=b!?t&DwdEc%&$Y*2h~4F^s1U)lDH*m^5f z=TI?SS#)WsvQOL$mSS^G)^e%QoL}}lJ~DYPSjH?Way^S-_9)F2i`AtPUYmnjYLpg} z#H9;ebm58H;;LY|cLw|*aI9#3fywQN-_{r=tk5cOL4aC7QfGoOhg;&>?bIBPsuix~ z8kYdAn2I<}Dbq4E_f$Dwt-`f~sXfXcWmfeGq+I*P_ zT6F@y=kB|!i=|sX0WCoUMoFiDps0?h9ekX4ABLy;2ol|?J|+uyZ`!+Kc?a>K?U;!P zrwUe^7V~+B;0bJPf$#VDkc{3we|1t<4A7V*=R&Em?jZO1uNiHcYKoE6Aenm7#jMLQ7IVr}eFz9brjE>Q$_teZ2)(#Hu@rmOU zEH@8z3ScEWJnvpbHC#ce zC-)uIhV)Ok#xRaqnR-3XXeKxVgC9+hX@4v7JtNxgG&_ss;wH z`HEt*MUjX1)%Y*0n6`fP`q`DubyM;Bda*m~&Z^BEkkQFySU1oPWm77E-dv*vD#;Ji zAgP@W58ag+x>nr8u*#+k@j?u`?-zCuKenCUJ;2_N;`Z<_OqqWd=<`WM#p$-%iQ7HL z`45tdLd$0p?IIu|i;89}K+qefv;{Nqb}88Ko}DmTG%XNunU1EdOv~e2Yn39k5XA`$ zGJB{jaIaZqxpQN4e@coX&*A2iP$O5iDrMT3&l!S7(*3V%%V@N7?(`{!T~sfK22!^Y zG{cf(Kpn&ZIaP|GsZj?$*1nMq1*|(Mc%E2c7ZmSL6^z{;8KI_}M9!o!dd%O6g zg!yb0nvG3x#(>i|e(no4mHz<`iQ%7Mn-xE9W_AE%K>teTRcc8>&C%^>Ua^oSPOxE#U6vm*=)Dod#i%@$O7K-5<%khU*t)huA8 zPVQ-*%RG}uZC71TqApyJ+8{zaiaLs!Wj(98*4FIZj7)x>1K~b55z&H3+5*^_^55#H zbGlGX-NT4X>IrMb!~{>=uFD~KnXYlIZsK)X-DzV)993z2hoaXmve>?&Q|$Moi+E2_ zP$|=BYmIvR0KpXX@Fkq=_KNZ1@7eR-GviDns13Rbh-ePAdTWb@(Ucm|v)mCdo?WRn zieoSi%t4{36Wj6qoj8bERGxNyJH*OPA zZ^v#uZ<^1`rL<1NWALNq#`!RrYr7k)ZywEp znZeVvjg2ovPpjdxG9#IJlz_vBi+7Q>`>^gjJTatTx_bmynd`^dadioIW=TBZPgB73 z9sm*JZ4|%tIcP@3xG4{W=|BuWvK9h-d_fPC?NeBtgVcmv$G2N~L^A^1cFF3S$tDAg zZqd{opDC5Qd{i--)eir)nEtJX4bDKvM=~%|jYyx*NDCsWgYu%NRui8WpDS@=!j?AA zS*ubQ^ms~~<-kc6PPp?=N|#cN`>=ilRR;hsUwhZF4nIRhF3&NVhkDW`Y8s-Cqk#ZQU$#G5g4(88L&aVF-wg&nh6Y|uLa@lMjs{);kT$x=1q!ch-r^I9WXu3}Gp2=Oa1c2h2YHE@TfEh}JFpbFgD z-_>8L`VPV9;u~SgwOfqfibh7X;1jOign7CcVMBwFtbpU~3SqXjCg$oul+vGWDNMCK zVq8=+vtFsRGBa7DFn_G1euk>)sJ^Bsy^6N!<9c<$DB!60sKTi3=y=Mv_%mRsr3%`6 zb0ks{_wTkIB4F}&^a8GF@P6Nj2ASJbVLsC#Q-d4*$K0gG`kvSVBWOB~zj#Qq%8+vjf7x1amO|6Np$f#RZr%jQP{t z`TgBLe;+`-f}Q={fA}->|7!d9^{v01TIv<#cPsnvxF8Dq?<(TLA3y#5DLMN8<3kTU z2LVX*&h{|E%d{~f9S0%-o;$?^Iu z1oHRJM|Wv~|2@j^c0|N~x8C~yANv1Zr)(h+Wr(C{#YM9B>`rJgMnU?YQj^1`kkDSS zLz4HzY~R9CwM01K1-$Vw<>$G{&v{l&`O6%Er`t(mH5Bse+-*`1vwBgJut2lWUL$f; zay*e#kIm~n@*=(sc-vTp6`8fsQ$`KlZU0(|-@7Z6SFbX7tm8J|=ss!^##A^bcK{KGgueFz`VO>?!kQq_roLw9-|!jmU<(|B^SDjGis; z=!AKF?j(&{u2jD_s_xk8yv~Y2KwlKU)@)dxB>Su0=y3Hz<3kObMP$mUf@GB9{rB>I zmXKPOFCM4w2A5mo>hI&HGdz6j|M*;>xbjDuwor9nW=@-F?(nVzE>#;Fmo<{jUKz)4 z0ggt`aM`E$zoDPr872p#W2$!3?_VyXw8^Mko!LJo=*wEy;t&pwnN_YE63{^WgW4JR za`0r;9$xKQ*r?x3Q#D?-%=IT`+O0~w4vqFJIelrw`*-;+ao1phAs?*b4>}65Hdsl0 zfqkk98VF;&kFNfnIW}(*y~O=g*I9@@%$|J@yychov%lTSIps-5Y~K$Z$AMtNo6SZ! z%7#5cGCnDJVvwkzl4{x(~rJx|zt-9mohqv&JxDhAcrCf~ipU}$+V)Kfa z<0;;2jt!1UwkY`0rhIKyvl(&*>#Jnr8N*`Khq!tzv)3DVrm0tHtgWPa-Q9FFy_31V zfOSBf3*uN$%HN907!D@6Z5jA~G%BHTnL7i0Sca0%f2ZGfEt8fzk5^R+JF4!z2=V6= znpzoh^!!iVdCEi@r1VbXqYk0GB+cq2irom;FqG}Q!XRS&Xfqg8*r(SeTYib;+(tp>z&6Wtr-6?!(S#WGCT#A1xobLX#>63rh*s7}V z@!m~q>zcx>x2#5*&Bryi%v?_+#bz_!)~=uUKJ4(SF4#k!D>ZtY`hY!txRG3t)l~5v z2P-ecG$@=jH4o0?o5W!SmY9u)4LG`8R`e1{{Bo=pO7!g3*bwtyYx~CCiU40Z`Eg!w zZ!33|VF~{dE;P<#Tu##JuqRaOJm`bTe#Ru$8o!7{LU*18g|<59FVt$881NEs6~JKi zIs$%g>aD*JaOz%7<-71_8Rm(z2MWZu9c)<78SQIONEY=WJa~{YU`DwSBbyeJd`k*a^xvy#~(Ld zE-dw$dnl=lP7}ArPs+5YO&LZsvuGT{bq&j3_-FBZ>R3r+5O7c|p!Q^t_ zk14*ElR|v|ftd?cq6ZSS7H2+FWx$~NWT_ItB0M*c+AG7nbi4QusDT;&RQ5dUp!|oZ zfRf$V=M8Y4unzu!{)^sYnaqxh`z0-9d&1bJhvKgq3f_(1_o+p+Yj31VF9(yq1qQi3 zvzz$0Fh38YXGNol^4*+)Hq`oee|JiB>{KQ7v4&F>p=4f5I{URj>s8_(U~{f-|6N&V zaMRI;X3(@@eM&9p?@VJY7?&`5A83$Q_8A88PW$^U#|Gr^w2TMv>CJy97Yf_;Fb*va zh55ZMszZ{_J$e4&w`QyLON2gP!>aoy1o_MnE}7FOma6VQo%4HpwIaRNh_umT6^Pxl zL34!*PDBfy9(Q@e3$O{|R^Sa1A-{M1I(Bg)eN}GCDlZrs5?DAZ{3q+He7FeH*N>11 z9A^YsIdv{$`Elil!v4Cu10MZ*a^&KcGS=yv5@n|!X(Ki_YytB(!XjPWB!;(Wqc0jm z69t@3q{Fj&F_VwKV)w5c97|1p%pcX3&vIw~8|fowAs4REv>k_=k)C*}kU~@kb-dl} zlrREWVla@U2xukLsZnKI1_0tdwixiK(Fj1f+9((ZBR>5M1=ZK~IYjRHY-ZxyNLnju zR}2V0NUHG%iwc@Rn}gY}#{SUyPsik`{Cx!3tmY*=&33=DJNWF%>b31-E5}@>OTHO@ zXwmiyKNq^_&9SfuPm?RK;TXr)WO1`l@@J2#Ge^ztHho!EtN`H$gjch7Z7e)o<@*cx z&VV~@f6{~9@HXvPY~Z%so{LX!<|Q{?kg*=i6E)bV-ya_^vz+=k9QG{I`cwTfDkh8+ zW~m(T#riRpG)Z<^Oli5M*>oKZ$1nOFMNUPbJBna&to(>mIt-kk{W-?&PCZR=3PJ|M(J1;A0@@ zwK-$#vjXX?be`HyA?9CK#@^n>9QbdH9qA)#7(lpB%#mc_14WC*rtME0?f|c!#mpZa zn&oGT6Mxm4%6JZPduIyB@y$MjV1m)t5@3%uAFsaHs~X1VPw;H+H*H3)z6o86RTh79 zdeZ-)BMH3cd-Of=zsP@}N8PjcAK83`)Z;bDogWv-BaKVLJ;wFuhB^VcK6_>aujh)5 zeDz%#b8`QdO7&#h4S#z{FXxaXKePGayDUin*XRTN=h^b-t(I6i>Q-Lhs-mO6Ud~1^ zWx}mI=&iNONz)Eb+VRSdUbVe6FAT4Vb=||qjlyZha5a;^6sGfL6%F#Lui$HXpPX*t z>q{q(>7VG^sKg{#d8Fd38bTtS3Wb_-&nv(loPL-;0a+Zp;y=bug!1S0wp|}xluscG z3o2K^{Rw{4Q=*9?ZZm(+7%^wN2vwRkn*6iXX) zcs5yCu-c`pk$+XiKpP3Lw-Xel(fk}1{ecXOg=HMI`@0uBm^gfd--$?Y=E!B^ z(2s6i(_+kh@6j3&cKbv5?o#ju&+li0utC4$k14P8WS% zuaE>PsIzt-AC*JB3v9n{6B3todcjhVPueGZZX`zX$5B9beQs@1P${BPWvkYrJ0@KH zmiVksvtgKLq?CW{E9GXb!Q*=6Uz_D)HMR;}xY``c2+y7Fn`tV>GepnR$7!L@3NRWc zb)Ay}&o*n5Xa4p2XBsV5W=pK#{96b9m07w(%Umm3+Va>hJhfjTnBI&kwm%(^QW#RL zgz1~09@$Y2(V}DtZv$FI{F7N-^@PrS#sAs}8r$E$sefhq$VIJmWFf!rF5-M!e=H3W zpR!Tmo8H8g>$Jbpr8T(K@V0Nj0=J_2RPGB7Y7}9L3zQ>SQyk-VmR^5lFJd>$&;74d zbw+9NL4NQ$mK1~SD@n{=eYYy=1~PC?!5y45ntl@+^Kpr?N%@^$&8=H<|!l6NLZ(V9<*vSr|rU+mL{-)^(w?J=+2 zQfsnVij($GI@L`RnbiFh+)O=mr{}bKffC<$EdTv0oc==a%}s@2!fG<@U#5C4P8v3> z*eU-QQ|f`5To}W5RIii^T-yI!H$s1w26@gud5i{WE0LXjF=HK}_qLDq&2}kjQhA3& z4EDer?NM`Af7o%Va(~@wg>M7mmNu#p?OJc02bJw^)R#thW(J(Ho1o!0$>GaupS?>I zXPAG*Di7cX9nNcwivH~$e2dWHfe0e*_$B!_WaGj1$F!4E8v#xt*H4a~dfmw5Maizv zex3nn@YYcTAurA$bQaV1Y*%geIoQEZS*r+by&u@x*ZjcNT^wl2F9L5jwx($L8> z8b4U6`mFZeYd~uq67-#T+p-*PDQ@!1*!oP4b9#9(dUs!)+$`| z_sGB>T8qARi_gi|`j0@<#7V)nm>Ug#ZL&G1YTFW0sNQ|V zn~(*L~GU2)%&sitW&vs^p&E<(vaaM8`bZn`fAd*IWoSUk0O`3D|S_wu~I z3f~G&JDhBlJ{`1a&DXbx z^o3Nf_9|_!z1d|AmG9?-5Pd;^TQjnA!$8ms{+EAf)K}SiPMsa~CA^%K zgCa4;_b@^58wNFNhhv|aKblg($%|QvaQDU9L49)Z)oXD<5#ajhU$MN;&P-EJq7rX@ z*)xrsrql+9a7x*X)UVq8^hLvmfNek6$acL<%GOzAluam}i>R3u*b~DL1Z@YqJ>t_L1f-@yS3? z*V{wtnet{~gs|mRMSM#u&yD()o`k7bo0g~rlYb^lrBIXX#{U#bqqR%qVseE$FPAk+ z@2{N;v*{k^$!k}E4V$QJ1t)3$z~>ZG^MOlczy8UWun+yS_vMGC+G?f2Ab$QPM6*=W zLc)5O(4;EcxKuK>i>xT;J0QHcLcH1S{-r<@Fv{%wS^33%0?GlJGV-Q5zxR96SZMDw z+3r*Qoz?pbW1-Nd3T^+cr8^D6e}ZS*&>ut_O_4k8GuF8KfMl?r7e|46^cis1D>wG> z>4y5(`>xz9AZkp=+B4eNT&%c6`P>3i}Iq0_XRs$CpgB zWE2{fqiq@87(ty2Sf_o|c@nEky^e=VR&|WW1@KmEA%EETnmO5!k0&ttQHMdZXr=NO z4U69iW6-+hL)>+Zb~>T3mON75t$UeSs;KS_$(O-ov;B`}m*wILm)uds!Ka>>H(7cc z!GGw~H~Gm{cCc;s#q8}fAJa97#q{29q`&mZc=><|NqxWOcy2#(!4uhCB zgWSQ?^;XP3r5I7OR^Qf6+{zHIVf*~tKa zx$7kgziA0cgilImro3<7-Mc7vgJ>2(MTMAh=s=O!LopnsV$i2C;+ zYi@aEp8+?9Zt_^x)eZ#x>2=Io{>-5Vc?>agzo)u;A>~n_&)yH1Nz5@vQpQvFmwb}` zdP&)mR++FIse&$RvFyV&v$SoqI9JtQwI8Y)3~JJq*Ip&gd?Sc`-Jk8ZIe69E%jkfq zP+UoxHnTTD{^Op#do0dem?MWr!I? z485A(Pxm(&pJ9}MO$ZZoTR|#~g4-vn%e#4^g#X#hf2Hlb|MH_6N^r9u=rsL`o zWi8lOwOD!*9aP=lw5xkV(LX6z)(z{1o0^n0C`n3k*h~U9l&Eq+SmK`p?5X68BXnM4 z9e37?d=}zc@_e0reB?)KfkZM_NL>>hu3Qefd{4UeiX$e znDdgVMV}Ms@RXs%064QM``=#Dx61KWCh&gg>jpGDq4bjbwdH#GgLu6UhxaEl+`C~G zBp<>P+)UFoVxa!U;lg6%^^`Wk@Z&V0phpp_x61FcdkFH-w1uU?eO|?PVp~U`OBwW_ zk*rJElvpWWf}4Hz;M}yzaJDm|lP}M!+4v2;9H!_KRsPGwLk}6DR0t%XIs&XkKXe+u z`Lxyi_&!8lf$V+ zH%|pCvBbxO9@KezdlQ~F@-j?zRt6>`{7|CS89&%;m}BhmJ0)Z&-jP}laq|198kvuL zfwpzeZZNJHSM98{@$;I^LxqMuUF7&j5z0Kxs6F(-U-eJNWIkD(p`=P%p{IKGg!y>334x$b4UkULP}sq-ErVoZY^nTF3v z)^@*8E79|TKL6BbU3=8*i#Z&({<ild-UO z@Zpd{5yEgO`#XWhq@_xiDSkCu$8^6*M*;I|T}kOr#5ZQ=+KNz-INYQPvTLPvmfiEh zS_r0w5+sm2E@(BS`nFm*0ya{Siek-2!kWm zV=82FxKrsq76fkG<2`dGfg93>Xxe~{M_F;=J7H&`c$7phl1 zH~4UabiR)`9%iF&JXcvT>v&k6^(Z^C9~Ln@HRNkAcx7C(lw0?eNN{TR0h(W0-qV}^ zE_dqYGE{J4b?;7QcJpZ$F)F!Bc`bqG6Gl3pf;)N{2mU$aiaudN$f`FKYh@2aoZPHZ zxPe>ld^zbqRZhac3~lv#8tbtJ6ZBy;ZcxXEelB~Z6CQ3{h@sJZQjq*IWbk!Y<(5}V z#>?_c{*r`GYRVla_iCYInOcFH(~<)IUxq9<_FWeE7Wvf}s-F>4xv`A@U|Bf44sN#={j(_OfJ z^4 zr2LDa)F!9INXf~q%B;sNdF@VY-VxxVz$`(y|*QIto z_+f`ievDf9_0cOuSX5i~YTK~v>_}16+*iB2@Z+*k=4!9Gq|)q!9=F(dr4XS;K(1N# zk1pf*!p^3U9q1eWijN--XcJgI&_#P7;QgyXLG9X0yp=uP=P0j-#_^j>M%9`7j^0hK zTM0S(5jhF}t|>*j{gNs?!CtR==O@8aVifnR%M@{hZB6Zpzs7U+-*GMt3XV?Wv^Z{K z79bkdCNO&VZr>t8hEK=T@i6HqmHQf4Ecz8R7um}<;qOO-3>wO;2~&R>4g{ra{Fs~I z4QVdk5U>qzU1hUMbfbiPgtwNv`1=7zJ=L=OE8@^A~M$4bj=P&b} z7)m*Y+tb{wHe<;u)n}L}g>qx;^&i3(i0`jiEo!v51%rjm^RQddtwN=bgWM3)es4Xn z$G^&t($%vlPM0z2Oh2%iwaO=9ekZw4$fKV{bcaTjHGIbrej*r&@423^W^+nIJsenL z@AZAHB(W|S7kZ5w61dA=r0&5luqGXF!@cg{#ZddE{ypTKzf(}Ep{+N zPtC1?{VVw&N%p6#_3!v= zTbVZ3xA>Vt{AY$>A>k}0eJ?q!N{GvS>YIx-O###U-|~5%z`cd`G|=!%RD>qyRA#R} z5fyt0U{ry1yM?Z<&VL-&Z(Yk;S%KE|632M$-Du`RygHhd5}^sM^&O~(mSr&}x4#_0 zUALjFRY{$!p-<}J-!1vxzr8N=GRtC*5KE)^rPz%H^D=k8ZYorlAW*)zYs;MJqT9c` z$Y#}Vz%7!e`X;n;BEPWoKIyCXEC$;n%r|Jl^U$ue#kSW&=hnV5eeLT(Jiet%f|l6Kck4=sH>^!`LzQ(JJ7EjVJX$@Y+T z%h>gJvO z*}|*uXeHR{Gsl|oXDY{cqTk-b`qufglxW$M;X_S|=}K)j$}pwdr*T%F!pakd7p%N0()3H54{M)h zdt=WXg#>j~`m=^C`3ZO@hRO;kRKfQ<#^qKPlE_WX?7;EQ4Jw2Fo+MG5oS5a+p|0#^ zkNq3py9D!-P842T%}CF~HqFa_Kc`0^9LaNL>21~BnG~VLD-wehUY-bk>)a@Q8r*TS zpeA>zPAFJ)|B%(tpj27a&{z0+d&~ez9;=@JRaNYK_U>GHXLeS==1=KbjBfb5Bg_Ih z^ogC7S&^X6j|%g*BeR&k?R(2=DMOC4Zq+@fA$n68)9&%{?W5E#=Z|M=j@NzP^Qul@ zgrlwC{+lSPt-<;0G|1B!@Qonprj|B|(-U5ggOAs%n!bo*o?owW_qES4$!X+dYR(MX zzTQs<3`MT{e5z``&!OsSh{hQdVzC}3E8k|r2SlJd!E@hkXD5?mA}T!;EytT& zrtHS=z2-c4xOdCSPQ7@&eXa7NIb~860ln4=yhA zqn;4MsIM&;x!b8aF;KNiP{OvJPS428Ds*5gn8G+Pbqy{Y zu$*QjSz&k`dr1-Q;kUuI!I+ED#O8z@OcR$4Jebi%#T3QkOx(lHxtqo%ADX6)8V@%{ zvpd=*n&RS>`i1HNqGWG#okAZ-wS@ToY3}RL(?k{G;>1x!VU{)h)W_I>xLx+04txsq z+p#0mBZ>_?&57JXeR0>iul$m78ao*Y6@Rv3AiwqLO?B;3^cT6I(gD;(_l7Z*W9ZOU zkB6B@C~?3PVI3u*it8zBXfAji`GDp#Ymr6xRPKJX@i7H+ynT$>-JqU3Sb+}#+STIx`$v?4$F1MP?8 zqyNR;dj>_>MC+nMP*Ac+k_;*$VGxv@5m8Ah2qIa@IY^ozX8{347;=!0pd`s@h9QXL zB$*+nAq)(8fFYb0_1kBky7$(ux>e`iTetT6gFn1AZ};l%)!pk^&$IA0v-sRGjU(Ft z9MNE*W5$HV@=V9VW3#$VOK=T)^-qC3G^@ym0Q*56r9sz*NIv^~y*!9a$iZ&zU<9K< zNw1}%V_1T_(dI!}7pt{OkEjcJ{ev!(vES{MjGj8{5SWD6>Cvy2!>)Pd%w& z;JRpS^s&u4ywTpW;p{cGc7ZsiK0KVek@E^Qrs;uiGt1F@xX;m$@4bo!%r_plUg)g$kb4c`VeNk}(g8Mp?h@MaH+ z*J=`{NT4|AHf#d;k;=9Q;(d)BPPN^T)B95lZxn(cQ~%EQzLibafK%|{Yj3umpJXW$ zl<79ihssGK_FARtcX=9nWsQ6{f#1sLX*~G#Gjum%46@LsgxgK19yF$U(B^;na!kpz z?`CoJoBA>Hp#_Uj&19d`xoa+xJjgunS#4R8#d*khUc8qZ{X<3l&tps&sdL?Q`bJs^mrYO;^ zWt5dn9~)AoYbJNar%yMkP|Pv?7|}1wo}uHC#0{9VI+ywN$b3yP$|gast~b@xX7o9G zCEny_Y|n`LT1`l}xFSm`C`-J9U-K8C@yLPdSLyHHf=XlqMo8u|$M3&3b{~$b>xXG| z)qxc~PL54e=hUDUeKEerYF*WoEs(TZk;lto+U zn~V0^ZMwK}2jgABpm|12RRLp(aM2sNl5SKjuf6^3>||6Gi)b0!YniJ`c4 zTGgc=5UXnPyoeo6d$ng#Qy0f*zy71_n@k63uZX9x9gg#Se+@r(^dt02gR!;d%0KOX zJ<+;p4K}u3Z&Gd9!RDiH;r6X(MoiUp7-!(F3=Iht5kOGA42?{U4O7F6F5QP$q0F^f z9d0sikyD}_Gpfi1RSgMHi-~k1TY7hKwCJ&oN)@V-(Evfv8&Oul8Q;035_-w_w~3V0 zYd=d+NSjf=mwvKeH{y&)I!v*+~dB@Z0DUpE0ay0cxn zS30=F`83_JU0y_Yz^Zm`UKmzx!?NKd_5Q?9z`G0r*4^7bntt*)trw;~#h^9C5TsAN z3XY$sx=D4`Lr9EO)yjB0WF6V`SRZZ;qc<*ImccIaR(gM3itus94{k;1PlYB9cu9@e z?UoNu^tHz_NzA$7$B(EB$YdbRb_XOY?s-Cz^GDK=GjcCYyfPpD>yDETxfuKM)HN-Y_4}G8WtP)@zuGMC<+q z+PSzWqgwz{?Vl)=uzjdE-WCWwY3%#b2zuu*$WCXWL;l9w5YFvH!G#P8+mHh+uR4QrcZPsc{Zy<{O^ln`WKfLC4wm_4)EbF?i+$qv|AKGbCQ`QDPwtpxptZM zPKDnU;@=THE-q2mMk3+@%FBv#3g)kd3po6WZd_Y|a(p(ugj4>FcRzfH(Iw%P|BjQm zLrCl@p)_Acgc_V(FxG-(=G~mTpfHwH;(r`YeEqM@8QmTe2J_z`HGpJ3khzjf z$$X!T`)`byh6cX|;HJ}1q9WIGfK>VS+jcWeWdCOBJOB9aRQtb%{4bdXKnjAl(;D}0 zMDgK6J1s+Fs)V2$9Eq1?-eH02Yo(bV1I%i~a9PzL)bgOI^U;#zsq@$~{pC z2&U-?mB%7I-AYoA^HpR|OU|$TWocMNf6Y->NBE$jdLLvGIh!*9ASs}`S!R1ZTlkFM;zAlp%MchG-uN{IYxOTT57Np+mac2-RII=8&3^!B>o5;dXIW+x zLRK;st1>oi5F-fHk&@|~QgzUWBQt#2y|wa>eCDjj*Q4_Q{hDCA8bEo4hwDPBMX{%HFcvhKz0;`7Yo>E1l^$s<_jSeN6camNGg8Ija8 z`6}rnbtWj};^Q{;qXl~XA3tT;kT!eR(d@LR58y`&rnf493cyTZ$;&vS`|I`|+_s)f{ zRlGgDE|V6lHGc_5$!rpp#Ifs64|aEqeb0bih^DwqtlTJcn|(Q#Zg?vz)xv@!^-eqN zZQ$g)wg6k*8M7dW>3%cR4K&`IQGr=PW)kG9eANPH`N zGk$-nwH==xm!ihFrCUYX@QduSTK~NfxY#njQiie<#F-MxeE-e{T-(3Da5TuVcJflu z*4%BqM8q(+)LA9nW9gkmgiHDiQ%f27$a0R;rF~X);`S zIvwiDrpa^@42Ig*5v?;JgI#OBL27$f*XGLz(Xhi(4;jwE^Cpe1BV}Oc;54{#5d57$ z(dh=I`7GcdO$;L}3D>0GOfiF0 z;N)X4hHtJKSC2J3zFkau{&cekKb+(nLqKO10sng~q%_zg}HwFlwItRRGE=(@<|h8nPXw0LlL|KE^t%)E{v(u_|_&QM=gAg!8Qk zsCnV)*KIM)_UJdl=Kfn|R;+5VUh7J@4|k>uCaq|GPrSx35GMgaU^5xDXnV8%%PiK~ zU{g#{-^&Q}(``SSAhps<$G}3Z@iV%Mir#zN2V^;Vju;B}Y79=Y2#HbzQBX$^HlR9L$fEBm7-ajp|R| z4eRlphR1#BmBLFmP~{6xfw?iD!+doTl;!>Orv$9ii-AGR^rrl8`}@nv`^Wl&IHPoH zV3)RXgf||rax7v$G`xN3dlYcDu1y2Q5vI9eGZd%5aAYKPm$S*;Ytcny+HmI=@2OFw z>=coyKVh)2lh-+gp7>H^k+ZBv3IFt9oJ@}CaI#^MyEs8JhEB7+6`)hEDji?}@7eQL zbq|y|3iwG5dC~>C%@UcLX!8)8=Y_h2!G^;48+rJ%Rkl@07wxLyWse8jQ}to>eZP&|UuRPB zcL*H(`*-s)+H2-VH+R{*x!E(xL4u!lF-xQ$@q{aHq`2ugPUf!EP6Bc&LtcbUpDD&~ zfxNa)m6OUK8GBQgni`!?Bdqb|!$L$&B?#ld{XvXLMN?V|O+S zpV-Tj`Y}k@@)0+I=s~-B3JevWrGU|;(N5{VcA_47~T!DD| z){}Z8=oj(_PtWJx!>M)mbp5}#H2C$Zm-S2g4sfz^Tn88dRp}n(UAcs4p>=Si(-e@_%Yp}+cD&Y`v4BbhfcYN)jz-=;Qyigs ziOB0-y?M`Fui@)O@us_~bd>B8cMZ+I_czm5=*>BR!H-{G|B)xwzIT4+lT;0<$7~1& zUeU60^w!Art6cf!cy*hXd2uT}#~gN!xf~4Mq!sI283gn@AZBfS$Ry)t(`9SlQ(dK- zM8R^WH<6ACBg>WJIaily5(?7cxbFAOHPJ5*I^9C1B6ph#FKJBl4>*{WNQ@!vSNmw%)9x9Nghj2gY%Jme# zP5Y8ncV8xH^efNo)+Q&@d76j$kOyTupjqahPJv&7haGgmt7VJf4Y(y-s_28Js`}kR zDHxFF)t>?~MM3kH{P@>DNu^6JTN{nG;9x=5I8tBpRVNuAw5i3a_@2cY6#6Y8?>zIg zG~&%}yN>K;*Skxb>O8rAsQLmXL@a)?J5Lj)_sr>QRL09mkw&NEeE2(E8vaCg@p8<% z40YA%Sgmf8oOIegOaDzG;v@MH&Dt_Lw(BtF&%T=(X2)xWN8EzkV@r&u5{OOU)PbAk z6H8h>>7gy-W={TVkfyvg^9gM&*Nu1;_vE<2xU#J|ppQ4T)T)^|PV^2M;9xv{-f|k& z!lPln`KlgC$H6j0>m(sKsOBGAsf^4!dS#S6b;BJCo{4+zu@V2CS@x#96%nunBCb%Y zJ4l__~at^T8T$$xE zst2qW&e2~IQuVIWN(<$U&BToPJQJiGk`~ZcJ~;MTLwL14l$E@#RVF`g$aL-kWAR02 zMx}f{m+9qQK{%&aZNIcRo#aC%VCl922T#xq1jyz#t5zc^(TIyu%xWAAP3?mc9KOS(*;7zn6akM_x8 zD)YpWS68e@pZNdYV?aS|ZDk7|xXTWgTFS)v{-NsnfoJ z)zA{+zbXifk0BcApIS;5#U$+LCN&fck8l||Xj-Xd>s1LCMID)VhWYI7Tg0wX<`Z(* zI9@P&94k+~`5Y1xUpgbhQQ~`CiW#$j+{VPIR8=qAOTa~u4LNHa8r}sW7^|gPs8^pEK|KZ>wq3RIV3NsfI&^B#0#CBAS_J~Z$-HAN;#Y5Fq zweuoueuo6zKsbQE;tlx%NMtxvjNOuo05uwneBaQL`QCoaGZUwhFxI~ijPcBN^HRoK z3w`Oh2-Da*TK*8^e??w#u1)^;iRI5_t5M++X_zirhH!`Z`Z0nA;}qY;ZX{IwxB_=A zoT(;5L7{Iw&Be%k3?aPahBhLjl;M$cnV7_sk)6LF?OL6`7H)uSYk3wcC+jMt2*`pE z|9d;91o$_y3Qg1UTZwA-{QS@|wHs|%bKI@OR|b644JS>X7@9WUvfCc*{louGP@VAs zKAeSePxj6L;x@~gplSa*d)`2@@~9+i2OJPjCXydmcDE}d_X)T->;93i@NapAGc!*a}&%QJ^g2ZMaL2U5ChDQHcLnIE_b z$jaQ(H<|{&jm(pX!UL*OZ(E;xAb7NlBsdM-2!8r2QUyP{#-R;}(qBCO1WSwelEf?X z>n&J5v1YKqtmRfd?>nUVE#^y?WoqT}uY6V!{dS`jP{5uuvUQdVNRKltJ6qCVvUF&$ znn|hCTt>LPphWu03woqa3au3*giV_`y*en^Axs>5EK-~WMw^9d=Wuog1gq>uLaT_r zrl*k1H9_ABt!4YcthUBx8R{EP{h!7E^<|f%+4LS%=hxbC`e9|04g+0xn_^Kr%-1Zg zBN%?3z8DqUhY5YwG-|)Pk8l|zYcq2^3MQdBS|rlj?`|jy^LL(qgrZ$&l zzaoSnw~(vQy)Esk?Y=ieOe8a>7ZuIq-1Zj~Aubu*GI^Z}wm;G+M>ACg_mAu`3 zxN%_eZ(zzlAn>;jBFg)NOB(T@-X3ai)nlj{wb~xDQU;(m+UqKhNVR(<@##s_wMdn z!f|VOXC}GTvptv$^ORIC&y8*&6!`ll z(WB7-Yu$S@;x=;c8+7^)MSkIZe#dr>seUi1WKIu#ck)nDv_Nv=6Cu*QkVd47Y@E&qSjaS%HO^ePe}xT znv#s2PR4|PUVZM7Tp5ysG`^qvYttKPUHKgA`XEcCztR0(MX9~oHdb?V!Y0LVM(@@4 zr(i9sQ{srjMt4$&wrhw6LSonhA;-wk(Eji0F%lO`M5zDwRiyvEOp*stu#N&X-?NiZ zrI2T~(`Q>R%W!_;s+%IFO7Cj6%7)bI5umIOCfxeEK6hRbA&*H;=iYd!A$4py?Cz}> zQV}Tb!F&z9zkR7b_jePiiX z0-7iJria}NDV+EArnYD7DrPLZ7AiUWd)v|1FB*55{f`mn&19b&m>G^_6ExRND0&?u zS4P#gV;L5T2vyGweWtD}R55m5EjA%Q)8BS$_1%XVpPzmk24&S@n%GFc5{kSC*R>K> ziz-_g3Q38q^Zo*)O&$tI**Kp^b#E(@ndg%z(c0B-oUIpolqA}V^}oMf`+g%u0J`lf z;ZAa&71<02GpgQ(nm48~s)n$nG z)z{jHh;z(S7aejA^M+e|!CQZvuD-u<>7{mLx`+Gyz*?wD;?YBj5 zpv`254D0wIYuJEHvflm~^MO=4rsW2bEU%;kX~7v$h33HHFSo{in)sWX*&AbR{WH<5 z&*>2Ho5xj*A|X24j)Uqa{vwK}mAi9ZH3))EcjzUr0+^bD**HZCeGOhMQ@yl{iku?oqt0P0*73km#!yVH9QLvz z)LtMC38pmjkHxB5)F%)q^242iZaK0AxL@PA=mR-3U~PES0+EFK4if&xr^Xr(o08nh z2W7ortmQfX%0^l`x>3{Do?3V~()y4hz!+|LGLQ5CWJp*lOGWpNZ=BiHV%(Mx{Qtle zi|E)GC-*Z1ve`sYY@*+JHv_0CsILwkwCCy{xZe>Ja7F{EpwG6~He5GMgJR)^J%qvD zDJmmSns+N)Gq>2~s@SEnA}FI2B{wLrn(i~hA)dQJ1<$1ndL*U3Yb=}L^JzI&=8lD9 z#*QxpYyA~MK%7lgGVGlJv>A{~c&9<2h>6?mY6&PyvO&;fH*g%RJ;l|>C(nGH`;>;` zpNLi+`T0JiPKnS+tNB^A@qN)of#~vmZ2>Dc&@6pV(Z=&rx^Y7sQODRgrqvpS2C zdhhssao+7kRQBFrLpf>FQ5FVwxca}~FA!f%wDcTbq6H_w(hB2tTxY5Om$q#P}4 ztls6WV>FvoS;#*`9NgHea?8shTXuO>557$pCO?Ngxb_{!>^Zg+&97UPp?$!P+coLG zC=mqu^mY#Cg0yW$**?+nPr%&GcF>tFMUDZ2f5(@CF)vckbZfxBoq*i zU}+KbbCw89ZxFcYmZI47IFmtvHOsyBpJ^Nf_5&g$j(=!$c#M+14~A+rxuPVwnA$fXX z=eEwX?->Ms?bwpxPC9V>9EZ%IvY2=B`)WBKOmqu23~EFo+}Q z6XNGoY3^Phba%YNggJf2z>$c1V;}Wp#Bcnk-jeXk32FnsEc-FZ<VO9j7l z`f{O*@YH=BO4#wsX-ci~)M4g3HwdSWgK7YxH~Z+u7Uabbr{=GnIX5XLfQ(2swUvWK zg6_^Omjr@9=6@FPuZ5f*zrb+kdOUN|`-a~W=?jxpy_;XQ@gmCzm2u^wGb;?F)Dw*c zTqc_$Kq%hos>klwkF5S~R7DezTp;*+mjKp(IqUz+5^w)C#&yvd;Q4=2jIK8kWa@}E z{R_RaaP%eqdm02?ru=V%{TUEI60rYrM(SB4ix*P$03&r%>Hq`taK|!V`*+R!c@K2? z1|V_@fVp@1CZ(v589jsD=R+zo|JT?f7J`)*1sir#RbDs`ZsCWXZn;s2lN+_GX#AcO z*F}Ij%{3sZVVS2)9SJkR#?b52Xv7sQ&fZB(RC!KOEK-mbO2Hb*)QSW!(2>pCfr_ReVS3d6JLdi}y zDTKG*NNvWupdzw|aUusDa4_-m;19600CdAFBJ<5qA`p7FbfXN_JwN*8ohqgCfRd21 zq=qkJ8R&&qwO~AJ-aa+Os=dF{zyslfl5S5)`IV2b&34oS(*CGa1IGa=O>?odX$KEmOw^ zeDXrZ$=+D7e*4XBXxEFDa& znLdLCc0+}Y+xFKo|K9oma3-KuZ_a7c2f$Z>8Z7((!g!rrJU9%+L5tuzFw)y^s5Rp_ zujg;@5RAW~>=;~X41HY%$Ey8wsZ()>?*vcoNr+4;o5uW5zM%)V~k2bZWYRm_nK7Z;9c;JCp2e;p0qt`Y? z5L}u8$Rsmg&6>z1W-)}z;5{F*Qh5tYiO=u`Dd#{BSTyH+dU#a!%ju$>t9bIf8 zfuD>xc8)pH;kd*RU+=8gKi@oY!LIJH37riqm9?s6^Y>2$!c~kaVfUkszNn#I1(Pzf ze;Qb>M0zQ@YbVST>3J8-jQn%=;YuGUE9VMzRoA@r42+j*`W7t3Z41B^t9<%8Ja^Av zoAIm5h+8PW!9UZ3RN*(IrDiBJdyTdC3h1W>>Zai@ZbR&-p`z0VHNQ&9_x9@v87cIr* z>!ouL9bK~Xoph3eUx8Ze?a?2Y%~U+jEJr{3{92lk%!Jdt#pH%c6!C~A;)$#RV|?Bz z5w9oKFXo(izFuAhK(|7)nQE!sWh731;+6liS`wgm7qG-N?PK3pjsDbyb(%6~-mK#M z{aydx(I&;j2APn#eEt&>neH5yqkY;%_%8BJxktoaVLMUid)w}P#2`D_) z@s$hjI(O5xJ^mX!>j(Y5UYQ~y_ivwny-YIFIj`H?>dr<9c+&39$n!F4LB*iw zgQDT7uWyMZ`OTC*g&fETEOaB)tD!PQXAQwk(o?4UO6D<_7QAL4in-%FcOEJRn}Db} z^iFVdY^3^Z6)`0hnl(;@!CgG<;=AJA_s(yYpFhA(Id8Li&~W^=xBOe+Mz(ibens*q zt2-61brj}Tr&?U^_2PE`$U+h_;YJDZzd&mCisoer{BW^wo08R;TJ773Z-%dbrE|{G{5!s7B#-GS4N0UD|O@)Y8W;^*Ma7onCgRYbk+ZOP&xQI)+dN zlj_&RWbB8&OA4qHYyS*nkL-5wD-J%UTj&5~srO{_jj}uErODL|)CbR%6o20RX~41I zYoqvSW2b#aeDF!d?*lYY9MV5FQ;eXw@JO=@c7}EAJU@ha?X1KwR1`7wMLFhX=NY0i zFOy;&W3By0?<(>s0J0K{0CLz#L8L6&u37-?oJYP?V~=k&ez0&7$1nSfyI}M5i&~BC zSN`5~HUMY+g7q_5S-(X-#ccM5#yydT4zt1=v2M%u=_Pc?kU7${O=fk5ENcch$HRoQ zXUfIgD{!_ox;kkw%GKNwP!(GP3*V%n;8&~1Xj4b!} z)9p!?=If{9pU+6;v+esXEB>*AF7n>XhVypX>Gch(pJIapC8H9r2oy*8M3#2GFe6rf z$<3kbfB4Ba12Zmnx8S&S=5yupQdc1!AN)oP9aFrJ-fQj>3-U;YGr8@5XN+H}D zN-_fU*UNS~wxu*r0Di78&8=5k^y>C&8?woV5RG&~4>#cp1i_|e}F$DXT zTa~O9nF=y_Y5YtPsUXfFr4}PD1^`#)Vzk(nvH~=x5doo*7D4~nIi6&9zSk#2P*&?h8(Ru+~v-bc#bhB zw*d!QX77>gN;;5-l}Ki`CnxurzsqNoS5>2pG=?JZAB{&3tSL?`J5k zw>nS-r&BF$z1Q0L71QH{U&^7)Tiklj?UItT853iMW!*fh5jK*l3-P`$|BN%7lA03f zs;yJB`MK0$ER3r2+Xo)Awgz0Jxipv7nMB5@de`f&hMraF=Roz_1l%l5t@W>ZVVgAq zJ;wxW`|~6#2$$LfIFicuj!Z_Ks~k|C2f(wbP0)kF(+1G<248Nq(Vt;vle!rRtaT&- z%pCU-*R$YyZ-Sb|ZPq{e>stC48%aJp**)(o@n(XnTKmP1eH8O05ZaiiXoz9)I@ z=jfoar60V&ZI{Y?CBaJ$$j6fO{(i|fTa__-HFiFBQgk?J8YgL9di9+psDSEpQRDK=(x)=3F0K<7G;ZHrIN^M`2XKQ@G_1k-nQ8D(UBiOTEF_H$?J-He>B6JfudzTOH#xSM=$K`p zmv=b;*7=`uy+Ba|7TE+=N0yIXeVDjNK4ss-_m^wuK%C5u>G~B6GV~E_1P7x&a`NH= zs02*UG_y>J2r}4Y{%mLTvS}&dy~RZk=yw!UJ2YQmcceER z8lgqiPETi|y%}Hv75-7UF>r4OI6BGu|F$g1lJcM|I3XKZt!d#%by`&nHa(Q5KU1w- zN#8Lus)$L0)(pSR^1R#JTzm9=7&KS$&K}bZR!*!iHY(%v=Ut0oO}MhW988Pr{PAJ9 z?F*}s{+?`m#0g^j@U7)$fl&hW6>8z3TjYlN5u$2SJhWvgcQ#?;T|1d`aIdzznnq-o zNYA9d&2^Z(A-sl^AtL%uL*XiZE7Ec^K1GMU+wsdQ{jD|7+*>becRuOFn(cSlJbV>| z!GkWIO3v&=u0+ig>|Qa>n2FdK$f+TM|6vP~y6wFETf@su4kT=|JR$M4@TNtq*D^;&;?$hDWq0x5vsT5lY) z+}YW<&&WympBk5aIAnmHsZY7X=8N_je?Ix}9@*u)$m3DN=B-jYymA3U(-_Z2$;mKC zVUb(!+^hiBGG@8!WO6F)8q}H{uSySz_-@)f@ufO&Frjdz8mO}>4rCeoIBkET?G>iq zo$-1mSRBkS2WkS3kYti5201-iuP*TW1MJLQrse2PT}MnuTX>7GoWrnM9L*))E-3O`o1xG-Z{KLl&u>|r#8tmxY5HrvwBx47o=rYSym9(z7C*E#gNsc$5Hv*5MvwTcM?gV0#Iof(-sC=AM6 zpR)4@c3hSD8_aNV;(KEz5ixAA%*MeMK7ecBDfg(?j2#1meY7dm-A`OHqM&Q9)_=WM z@P~5Te^࣋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 Aj{pDw diff --git a/docs/assets/envcompass-project-results.png b/docs/assets/envcompass-project-results.png index 864a0e9aae65c36fe6fe83f16b9cad29f92fcda2..e0832b6b152b8525e587a3294b32c4e3636e2342 100644 GIT binary patch literal 92200 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 literal 48283 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 div > span { display: block; color: var(--warning); font-size: 9px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; } -.recommendation p { margin: 3px 0 0; color: var(--ink-2); font-size: 11px; line-height: 1.45; } -.limitations { margin: 8px 0 0; color: var(--muted); font-size: 10px; line-height: 1.45; } +.recommendation > div > span { display: block; color: var(--warning); font-size: 10px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; } +.recommendation p { margin: 3px 0 0; color: var(--ink-2); font-size: 12px; line-height: 1.45; } +.limitations { margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; } .limitations strong { color: var(--ink-2); } .finding-list { display: grid; gap: 9px; } .remaining-findings { margin-top: 17px; } @@ -285,7 +285,7 @@ button.navigator-item:hover, .navigator-item.is-active { border-color: var(--cur .path-row { display: flex; justify-content: space-between; gap: 12px; padding: 5px 8px; border-bottom: 1px solid var(--line-soft); font-size: 9px; } .path-row:last-child { border-bottom: 0; } .path-row span { color: var(--warning); white-space: nowrap; } -.statusbar { width: min(1420px, 100%); min-height: 28px; display: flex; align-items: center; gap: 8px; margin: 17px auto 0; padding: 0 10px; background: var(--term); color: #9eafb4; font-size: 9px; } +.statusbar { width: min(1920px, 100%); min-height: 30px; display: flex; align-items: center; gap: 8px; margin: 17px auto 0; padding: 0 10px; background: var(--term); color: #9eafb4; font-size: 10px; } .statusbar .live-dot { width: 6px; height: 6px; animation: none; } .status-separator { width: 1px; height: 11px; background: #3b4c54; } .status-spacer { flex: 1; } diff --git a/src/App.tsx b/src/App.tsx index d53356b..470bcb3 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -586,9 +586,10 @@ function App() { From c95d2119088188eb25240f06222dfba9b6df6bb0 Mon Sep 17 00:00:00 2001 From: Xiaoju Date: Sat, 22 Aug 2026 02:49:18 +0800 Subject: [PATCH 4/4] =?UTF-8?q?feat(ui):=20Phase=201-5=20Scale=20&=20Densi?= =?UTF-8?q?ty=20=E2=80=94=20rem=20base,=20control=20sizing,=20viewport-fil?= =?UTF-8?q?l,=20responsive=20IA,=20UI=20Scale=20toggle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root cause fixed: broken vertical scale hierarchy where semantic labels, badges and controls were shrunk to 9-11px to fake density. Phase 1 — Typography normalization - html { font-size: 15px } rem anchor; body switches to 1rem - All semantic/interactive text converted to rem (0.7–1.47rem range) - Minimum readable size: 0.7rem (10.5px) for badges/technical detail - Key fixes: severity badge 9px→0.73rem, navigator tags 9px→0.7rem, overview-row labels 9px→0.73–0.8rem, status bar 10px→0.73rem, runtime-label 10px→0.73rem, diagnosis-copy h2 14px→1rem - Decorative px preserved: borders, dot indicators, icon sizes Phase 2 — Control sizing - Primary CTA (复制给AI): min-height 32px, padding 0 14px, font-weight 600 - Secondary toolbar buttons: min-height 28px - Lang toggle: min-height 28px, min-width 40px - Advanced-report nested buttons: min-height 24px - navigator-symbol box: 18px→20px Phase 3 — Viewport-filling desktop layout - .app-shell: min-height→height 100%, overflow: hidden - .results: flex: 1 1 0, min-height: 0, display flex column - .results-layout: flex: 1 1 0, min-height: 0 - .finding-navigator + .result-detail: overflow-y: auto, min-height: 0 - .statusbar: flex: 0 0 auto, margin-top: 0 (was 17px) - Both panes now scroll independently; no blank space at fullscreen Phase 4 — Responsive IA - 1440px+: sidebar 288px, context-grid 1.4fr / 0.6fr - 1900px+: three-column layout (sidebar | main | context rail 300px) overview-panel promoted to grid-column 3 via display:contents on context-grid; no fake content added - ≤820px: single-column compact unchanged; no sub-12px text remains - ≤620px: scale-picker hidden Phase 5 — User UI Scale toggle - CSS zoom: var(--ui-zoom, 1) on html element - Four levels: 90 / 100 / 110 / 125 % - Segmented .scale-picker in topbar-meta - localStorage key 'ec-ui-zoom' for persistence across restarts - Applied via useEffect → document.documentElement.style.setProperty Build: frontend ✓ (vite 725ms), Tauri release ✓ (NSIS + MSI) Co-Authored-By: Claude Opus 5 (1M context) --- src/App.css | 287 +++++++++++++++++++++++++++++++++------------------- src/App.tsx | 30 +++++- 2 files changed, 212 insertions(+), 105 deletions(-) diff --git a/src/App.css b/src/App.css index 0459d66..2e37fc9 100644 --- a/src/App.css +++ b/src/App.css @@ -1,3 +1,4 @@ +/* ─── Design tokens ──────────────────────────────────────────────────── */ :root { --bg: #eef2f5; --panel: #fbfcfd; @@ -25,42 +26,68 @@ --term-fg: #d7e1e3; --mono: "Cascadia Code", "Cascadia Mono", Consolas, "JetBrains Mono", monospace; --shadow: 0 18px 48px rgba(34, 49, 58, .12), 0 2px 8px rgba(34, 49, 58, .06); + /* UI Scale — set by JS from user preference; CSS zoom scales the whole tree */ + --ui-zoom: 1; } +/* ─── Reset / base ───────────────────────────────────────────────────── */ * { box-sizing: border-box; } -html, body, #root { min-height: 100%; height: 100%; } -body { margin: 0; background: #dfe7eb; color: var(--ink); font-family: "Segoe UI", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif; font-size: 14px; -webkit-font-smoothing: antialiased; } + +/* rem anchor: 15px base. All semantic text uses rem so UI Scale works. */ +html { font-size: 15px; zoom: var(--ui-zoom); } +html, body, #root { height: 100%; } +body { + margin: 0; + background: #dfe7eb; + color: var(--ink); + font-family: "Segoe UI", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif; + font-size: 1rem; + -webkit-font-smoothing: antialiased; +} button, summary { font: inherit; } button { color: inherit; } button:disabled { cursor: wait; opacity: .6; } code, .mono { font-family: var(--mono); font-variant-numeric: tabular-nums; } :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 5px; } -.app-shell { min-height: 100%; display: flex; flex-direction: column; background: var(--bg); } -.topbar { min-height: 54px; display: flex; align-items: center; gap: 14px; padding: 0 18px; background: var(--panel); border-bottom: 1px solid var(--line); flex: 0 0 auto; } +/* ─── App shell — viewport-filling desktop layout (Phase 3) ─────────── */ +.app-shell { height: 100%; display: flex; flex-direction: column; overflow: hidden; background: var(--bg); } + +/* ─── Topbar ─────────────────────────────────────────────────────────── */ +.topbar { min-height: 52px; display: flex; align-items: center; gap: 14px; padding: 0 18px; background: var(--panel); border-bottom: 1px solid var(--line); flex: 0 0 auto; } .brand-button { display: inline-flex; align-items: center; gap: 9px; border: 0; padding: 0; background: transparent; cursor: pointer; text-align: left; } .brand-mark { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 8px; background: var(--accent); color: #fff; font: 700 23px/1 var(--mono); transform: rotate(-12deg); } .brand-mark span { transform: rotate(12deg) translateY(-1px); } .brand-copy { display: grid; line-height: 1.05; } -.brand-copy strong { font-size: 15px; letter-spacing: .01em; } -.brand-copy small { margin-top: 3px; color: var(--faint); font-size: 10px; } -.toolbar-context { max-width: 34vw; overflow: hidden; padding: 5px 9px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel-2); color: var(--ink-2); font: 11px var(--mono); text-overflow: ellipsis; white-space: nowrap; } -.topbar-meta { display: flex; align-items: center; gap: 9px; margin-left: auto; } -.readonly-indicator { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11px; } +.brand-copy strong { font-size: 1rem; letter-spacing: .01em; } +.brand-copy small { margin-top: 3px; color: var(--faint); font-size: 0.73rem; } +.toolbar-context { max-width: 34vw; overflow: hidden; padding: 4px 9px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel-2); color: var(--ink-2); font: 0.73rem var(--mono); text-overflow: ellipsis; white-space: nowrap; } +.topbar-meta { display: flex; align-items: center; gap: 8px; margin-left: auto; } +.readonly-indicator { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 0.73rem; } .status-dot, .live-dot { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: var(--required); } .live-dot { animation: livepulse 1.9s ease-in-out infinite; } + +/* ─── Buttons (Phase 2) — shared border/bg/cursor base ──────────────── */ .lang-toggle, .results-actions button, .report-primary-actions button, .advanced-report button, .action-verb, .results-nav button { border: 1px solid var(--line); border-radius: 5px; background: var(--panel); color: var(--ink-2); cursor: pointer; } -.lang-toggle { min-width: 38px; padding: 5px 8px; font: 700 10px var(--mono); } +.lang-toggle { min-width: 40px; min-height: 28px; padding: 0 10px; font: 700 0.73rem var(--mono); } .lang-toggle:hover, .results-actions button:hover, .report-primary-actions button:hover, .advanced-report button:hover { background: var(--panel-2); } +/* ─── UI Scale picker (Phase 5) ──────────────────────────────────────── */ +.scale-picker { display: inline-flex; border: 1px solid var(--line); border-radius: 5px; overflow: hidden; } +.scale-btn { min-height: 26px; padding: 0 6px; border: 0; border-right: 1px solid var(--line); background: var(--panel); color: var(--muted); cursor: pointer; font: 0.67rem var(--mono); transition: background .1s; } +.scale-btn:last-child { border-right: 0; } +.scale-btn:hover { background: var(--panel-2); } +.scale-btn.is-active { background: var(--accent-soft); color: var(--accent); font-weight: 700; } + +/* ─── Home ───────────────────────────────────────────────────────────── */ .workspace { width: min(1920px, calc(100% - 48px)); margin: 0 auto; } .home { padding: clamp(32px, 7vh, 78px) 0 28px; } .home-composition { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: clamp(38px, 7vw, 110px); align-items: center; } .home-main { max-width: 760px; } .home-intro { max-width: 680px; } -.eyebrow, .section-kicker { color: var(--faint); font-size: 11px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; } +.eyebrow, .section-kicker { color: var(--faint); font-size: 0.73rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; } .home-intro h1 { max-width: 640px; margin: 12px 0 12px; font-size: clamp(29px, 4.5vw, 52px); line-height: 1.05; letter-spacing: -.045em; } -.home-intro p { max-width: 610px; margin: 0; color: var(--ink-2); font-size: 15px; line-height: 1.65; } +.home-intro p { max-width: 610px; margin: 0; color: var(--ink-2); font-size: 1rem; line-height: 1.65; } .action-panel { display: grid; gap: 9px; margin-top: 31px; } .action-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 14px; width: 100%; padding: 14px 15px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); box-shadow: 0 2px 7px rgba(34, 49, 58, .04); cursor: pointer; text-align: left; transition: border-color .15s, transform .15s, box-shadow .15s; } .action-row:hover { border-color: var(--accent); box-shadow: 0 7px 18px rgba(45, 111, 115, .1); transform: translateY(-1px); } @@ -70,227 +97,272 @@ code, .mono { font-family: var(--mono); font-variant-numeric: tabular-nums; } .action-secondary .action-icon { background: var(--panel-2); color: var(--muted); } .action-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; } .action-copy { min-width: 0; display: grid; gap: 4px; } -.action-copy strong { font-size: 14px; } -.action-copy small { color: var(--muted); font-size: 11px; line-height: 1.4; } -.action-verb { display: inline-flex; align-items: center; gap: 9px; padding: 6px 9px; font-size: 11px; white-space: nowrap; } -.action-verb b { color: var(--accent); font-size: 16px; } -.home-visual { display: grid; place-items: center; gap: 12px; color: var(--faint); font: 10px var(--mono); letter-spacing: .08em; text-transform: uppercase; } +.action-copy strong { font-size: 0.93rem; } +.action-copy small { color: var(--muted); font-size: 0.73rem; line-height: 1.4; } +.action-verb { display: inline-flex; align-items: center; gap: 9px; padding: 5px 9px; font-size: 0.73rem; white-space: nowrap; } +.action-verb b { color: var(--accent); font-size: 1rem; } +.home-visual { display: grid; place-items: center; gap: 12px; color: var(--faint); font: 0.7rem var(--mono); letter-spacing: .08em; text-transform: uppercase; } .home-visual::before { content: ""; width: 1px; height: 120px; background: var(--line); } .home-visual::after { content: ""; width: 110px; height: 110px; border: 1px solid var(--line); border-radius: 50%; position: absolute; opacity: .45; } .home-visual svg { width: 106px; height: 106px; color: var(--accent); opacity: .75; } .check-scope { margin-top: clamp(52px, 9vh, 92px); border-top: 1px solid var(--line); padding-top: 16px; } -.check-scope h2 { margin: 0 0 15px; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; } +.check-scope h2 { margin: 0 0 15px; color: var(--muted); font-size: 0.73rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; } .scope-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; } .scope-grid > div { display: grid; grid-template-columns: 28px 1fr; column-gap: 8px; } -.scope-grid span { grid-row: span 2; color: var(--accent); font: 700 11px var(--mono); } -.scope-grid strong { font-size: 12px; } -.scope-grid p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; } -.privacy-promise, .scanning-boundary, .privacy-bar { display: flex; align-items: center; gap: 7px; margin: 23px 0 0; color: var(--faint); font-size: 10px; } +.scope-grid span { grid-row: span 2; color: var(--accent); font: 700 0.73rem var(--mono); } +.scope-grid strong { font-size: 0.8rem; } +.scope-grid p { margin: 3px 0 0; color: var(--muted); font-size: 0.73rem; line-height: 1.4; } +.privacy-promise, .scanning-boundary, .privacy-bar { display: flex; align-items: center; gap: 7px; margin: 23px 0 0; color: var(--faint); font-size: 0.73rem; } .privacy-promise::before, .scanning-boundary::before, .privacy-bar::before { content: "▣"; color: var(--accent); } -.error-banner, .notice-banner { margin-top: 15px; padding: 10px 12px; border: 1px solid var(--current-line); border-left: 3px solid var(--current); background: var(--current-bg); color: var(--current); font-size: 11px; } +.error-banner, .notice-banner { margin-top: 15px; padding: 10px 12px; border: 1px solid var(--current-line); border-left: 3px solid var(--current); background: var(--current-bg); color: var(--current); font-size: 0.73rem; } +/* ─── Scanning ───────────────────────────────────────────────────────── */ .scanning { padding: clamp(28px, 7vh, 70px) 0; } .scanning-layout { display: grid; grid-template-columns: minmax(260px, .65fr) minmax(0, 1.35fr); min-height: 390px; border: 1px solid var(--line); background: var(--panel); box-shadow: var(--shadow); } .scanning-intro { display: flex; flex-direction: column; justify-content: center; padding: 42px; border-right: 1px solid var(--line); } -.live-indicator { display: inline-flex; align-items: center; gap: 7px; color: var(--required); font: 700 10px var(--mono); letter-spacing: .1em; text-transform: uppercase; } +.live-indicator { display: inline-flex; align-items: center; gap: 7px; color: var(--required); font: 700 0.7rem var(--mono); letter-spacing: .1em; text-transform: uppercase; } .live-indicator i { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: currentColor; } .scanning-intro h1 { margin: 17px 0 9px; font-size: clamp(24px, 3vw, 38px); letter-spacing: -.03em; } .scanning-intro p { margin: 0; color: var(--muted); line-height: 1.6; } -.selected-path { max-width: 100%; margin-top: 24px; overflow: hidden; color: var(--faint); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; } +.selected-path { max-width: 100%; margin-top: 24px; overflow: hidden; color: var(--faint); font-size: 0.73rem; text-overflow: ellipsis; white-space: nowrap; } .stage-list { display: grid; align-content: center; gap: 0; margin: 0; padding: 24px 36px; list-style: none; } .stage { position: relative; display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 11px; min-height: 48px; border-bottom: 1px solid var(--line-soft); } .stage:last-child { border-bottom: 0; } -.stage-marker { width: 21px; height: 21px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--faint); font: 10px var(--mono); } -.stage strong { font-size: 12px; } -.stage small { color: var(--faint); font-size: 10px; } +.stage-marker { width: 21px; height: 21px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--faint); font: 0.7rem var(--mono); } +.stage strong { font-size: 0.8rem; } +.stage small { color: var(--faint); font-size: 0.73rem; } .stage-active .stage-marker { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); } .stage-active strong { color: var(--accent); } .stage-done .stage-marker { border-color: var(--required); color: var(--required); } .stage-done strong { color: var(--ink-2); } -.results { width: 100%; padding: 0 18px 28px; } -.process-bar { width: min(1920px, 100%); margin: 0 auto; min-height: 38px; display: flex; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); } -.process-bar nav { display: flex; align-items: center; gap: 8px; color: var(--faint); font-size: 10px; } -.process-bar nav b { color: var(--line); font-size: 15px; font-weight: 400; } +/* ─── Results — viewport-filling (Phase 3) ───────────────────────────── */ +.results { flex: 1 1 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; width: 100%; padding: 0 18px; } +.process-bar { width: min(1920px, 100%); margin: 0 auto; flex: 0 0 auto; min-height: 36px; display: flex; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); } +.process-bar nav { display: flex; align-items: center; gap: 8px; color: var(--faint); font-size: 0.73rem; } +.process-bar nav b { color: var(--line); font-size: 1rem; font-weight: 400; } .process-done { color: var(--required); } -.process-active { padding: 4px 7px; border-radius: 4px; background: var(--accent-soft); color: var(--accent); font-weight: 700; } +.process-active { padding: 3px 7px; border-radius: 4px; background: var(--accent-soft); color: var(--accent); font-weight: 700; } .results-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; } -.results-actions button { padding: 6px 9px; font-size: 11px; } +.results-actions button { min-height: 28px; padding: 0 10px; font-size: 0.8rem; } .results-actions .primary, .report-primary-actions .primary { border-color: var(--accent); background: var(--accent); color: #fff; } +.results-actions .primary { min-height: 32px; padding: 0 14px; font-size: 0.8rem; font-weight: 600; } .results-actions .primary:hover, .report-primary-actions .primary:hover { background: #245b5f; } -.results-layout { width: min(1920px, 100%); margin: 0 auto; display: grid; grid-template-columns: 270px minmax(0, 1fr); min-height: 0; } -.finding-navigator { min-width: 0; padding: 16px 12px 17px 0; border-right: 1px solid var(--line); } +.results-layout { flex: 1 1 0; min-height: 0; width: min(1920px, 100%); margin: 0 auto; display: grid; grid-template-columns: 264px minmax(0, 1fr); } +.finding-navigator { min-width: 0; overflow-y: auto; padding: 16px 12px 17px 0; border-right: 1px solid var(--line); } .navigator-heading { display: flex; align-items: center; justify-content: space-between; padding: 0 9px 11px; border-bottom: 1px solid var(--line); } -.navigator-count, .evidence-count { min-width: 20px; padding: 2px 5px; border-radius: 10px; background: var(--panel-2); color: var(--muted); font: 700 10px var(--mono); text-align: center; } +.navigator-count, .evidence-count { min-width: 20px; padding: 2px 5px; border-radius: 10px; background: var(--panel-2); color: var(--muted); font: 700 0.7rem var(--mono); text-align: center; } .navigator-group { padding: 14px 0 4px; } -.navigator-group-label { display: flex; justify-content: space-between; padding: 0 9px 6px; color: var(--faint); font-size: 10px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; } +.navigator-group-label { display: flex; justify-content: space-between; padding: 0 9px 6px; color: var(--faint); font-size: 0.73rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; } .navigator-item { width: 100%; min-width: 0; display: grid; grid-template-columns: 21px minmax(0, 1fr) auto; align-items: center; gap: 7px; padding: 8px; border: 1px solid transparent; border-radius: 5px; background: transparent; cursor: pointer; text-align: left; } button.navigator-item:hover, .navigator-item.is-active { border-color: var(--current-line); background: var(--current-bg); } .navigator-runtime { cursor: default; } -.navigator-symbol { width: 18px; height: 18px; display: grid; place-items: center; border-radius: 4px; background: var(--current-bg); color: var(--current); font: 700 12px var(--mono); } +.navigator-symbol { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 4px; background: var(--current-bg); color: var(--current); font: 700 0.8rem var(--mono); } .navigator-warning .navigator-symbol { background: var(--warning-bg); color: var(--warning); } .navigator-runtime .navigator-symbol { background: var(--required-bg); color: var(--required); } .navigator-copy { min-width: 0; display: grid; gap: 2px; } -.navigator-copy strong { overflow: hidden; font-size: 12px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; } -.navigator-copy small { overflow: hidden; color: var(--faint); font: 10px var(--mono); text-overflow: ellipsis; white-space: nowrap; } -.navigator-tag { padding: 2px 4px; border-radius: 3px; background: var(--current-bg); color: var(--current); font-size: 9px; font-weight: 750; text-transform: uppercase; } +.navigator-copy strong { overflow: hidden; font-size: 0.87rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; } +.navigator-copy small { overflow: hidden; color: var(--faint); font: 0.8rem var(--mono); text-overflow: ellipsis; white-space: nowrap; } +.navigator-tag { padding: 2px 5px; border-radius: 3px; background: var(--current-bg); color: var(--current); font-size: 0.7rem; font-weight: 750; text-transform: uppercase; } .navigator-warning .navigator-tag { background: var(--warning-bg); color: var(--warning); } .navigator-tag.status-available { background: var(--required-bg); color: var(--required); } -.navigator-empty { margin: 0; padding: 8px 9px; color: var(--muted); font-size: 10px; line-height: 1.45; } -.navigator-foot { margin-top: 14px; padding: 9px; border-top: 1px solid var(--line); color: var(--faint); font-size: 10px; } -.result-detail { min-width: 0; padding: 17px 0 0 24px; } +.navigator-empty { margin: 0; padding: 8px 9px; color: var(--muted); font-size: 0.8rem; line-height: 1.45; } +.navigator-foot { margin-top: 14px; padding: 9px; border-top: 1px solid var(--line); color: var(--faint); font-size: 0.73rem; } +.result-detail { min-width: 0; overflow-y: auto; padding: 17px 0 24px 24px; } .results-topline { display: flex; align-items: end; justify-content: space-between; gap: 18px; } -.results-topline h1 { margin: 5px 0 0; font-size: 22px; letter-spacing: -.025em; } -.scan-meta { display: inline-flex; align-items: center; gap: 6px; color: var(--faint); font-size: 10px; } +.results-topline h1 { margin: 5px 0 0; font-size: 1.47rem; letter-spacing: -.025em; } +.scan-meta { display: inline-flex; align-items: center; gap: 6px; color: var(--faint); font-size: 0.73rem; } .scan-meta .live-dot { animation: none; } + +/* ─── Diagnosis banner ───────────────────────────────────────────────── */ .diagnosis-banner { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-top: 16px; padding: 13px 14px; border: 1px solid var(--line); border-left: 3px solid var(--current); background: var(--panel); } .diagnosis-clear { border-left-color: var(--required); } -.diagnosis-icon { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 5px; background: var(--current-bg); color: var(--current); font: 700 16px var(--mono); } +.diagnosis-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 5px; background: var(--current-bg); color: var(--current); font: 700 16px var(--mono); } .diagnosis-clear .diagnosis-icon { background: var(--required-bg); color: var(--required); } .diagnosis-copy { min-width: 0; } -.diagnosis-copy h2 { margin: 3px 0 2px; font-size: 14px; } -.diagnosis-copy p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; } -.diagnosis-counts { display: flex; gap: 12px; color: var(--muted); font-size: 11px; white-space: nowrap; } +.diagnosis-copy h2 { margin: 3px 0 2px; font-size: 1rem; } +.diagnosis-copy p { margin: 0; color: var(--muted); font-size: 0.8rem; line-height: 1.45; } +.diagnosis-counts { display: flex; gap: 12px; color: var(--muted); font-size: 0.73rem; white-space: nowrap; } .diagnosis-counts span { display: inline-flex; align-items: baseline; gap: 4px; } -.diagnosis-counts strong { color: var(--ink); font: 700 14px var(--mono); } +.diagnosis-counts strong { color: var(--ink); font: 700 0.93rem var(--mono); } .diagnosis-attention .diagnosis-counts span:first-child strong { color: var(--current); } .primary-diagnosis { margin-top: 16px; } + +/* ─── Finding cards ──────────────────────────────────────────────────── */ .finding { position: relative; min-width: 0; border: 1px solid var(--line); border-left: 3px solid var(--current); background: var(--panel); box-shadow: 0 2px 6px rgba(34, 49, 58, .035); } .finding-warning { border-left-color: var(--warning); } .finding-suggestion, .finding-info { border-left-color: var(--accent); } .finding-body { padding: 15px 16px 14px; } .finding-heading { display: flex; align-items: center; gap: 9px; } -.severity { display: inline-flex; align-items: center; gap: 5px; color: var(--current); font-size: 9px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; } +.severity { display: inline-flex; align-items: center; gap: 5px; color: var(--current); font-size: 0.73rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; } .severity-warning { color: var(--warning); } .severity-suggestion, .severity-info { color: var(--accent); } .severity-symbol { width: 16px; height: 16px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 4px; font: 700 11px var(--mono); } -.finding-category { color: var(--faint); font-size: 9px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; } -.finding h2 { margin: 8px 0 5px; font-size: 18px; line-height: 1.25; letter-spacing: -.02em; } -.finding-primary h2 { font-size: 21px; } -.finding-summary { margin: 0; color: var(--ink-2); font-size: 13px; line-height: 1.55; } +.finding-category { color: var(--faint); font-size: 0.73rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; } +.finding h2 { margin: 8px 0 5px; font-size: 1.2rem; line-height: 1.25; letter-spacing: -.02em; } +.finding-primary h2 { font-size: 1.4rem; } +.finding-summary { margin: 0; color: var(--ink-2); font-size: 0.87rem; line-height: 1.55; } + +/* ─── Runtime comparison (Current / Required) ────────────────────────── */ .runtime-comparison { display: grid; grid-template-columns: minmax(0, 1fr) 42px minmax(0, 1fr); align-items: stretch; margin-top: 15px; } .runtime-cell { min-width: 0; padding: 12px 13px; border: 1px solid; display: grid; gap: 4px; } .current-cell { border-color: var(--current-line); background: var(--current-bg); } .required-cell { border-color: var(--required-line); background: var(--required-bg); } -.runtime-label { color: var(--muted); font-size: 10px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; } -.runtime-cell strong { overflow: hidden; font: 700 22px var(--mono); text-overflow: ellipsis; white-space: nowrap; } +.runtime-label { color: var(--muted); font-size: 0.73rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; } +.runtime-cell strong { overflow: hidden; font: 700 1.47rem var(--mono); text-overflow: ellipsis; white-space: nowrap; } .current-cell strong { color: var(--current); } .required-cell strong { color: var(--required); } -.runtime-cell code { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; } +.runtime-cell code { overflow: hidden; color: var(--muted); font-size: 0.73rem; text-overflow: ellipsis; white-space: nowrap; } .comparison-divider { display: grid; place-items: center; color: var(--current); font: 700 13px var(--mono); } .comparison-divider span { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; background: var(--panel); } + +/* ─── Evidence ───────────────────────────────────────────────────────── */ .evidence-block { margin-top: 15px; } .evidence-heading { display: flex; align-items: center; gap: 7px; margin-bottom: 7px; } .evidence-count { background: var(--accent-soft); color: var(--evidence); } .evidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .evidence-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); background: var(--panel); } -.evidence-card-head { display: flex; align-items: center; gap: 6px; padding: 7px 9px; border-bottom: 1px solid var(--line-soft); background: var(--panel-2); color: var(--muted); font: 700 10px var(--mono); text-transform: uppercase; } +.evidence-card-head { display: flex; align-items: center; gap: 6px; padding: 7px 9px; border-bottom: 1px solid var(--line-soft); background: var(--panel-2); color: var(--muted); font: 700 0.73rem var(--mono); text-transform: uppercase; } .evidence-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--evidence); } .evidence-terminal .evidence-dot { background: var(--required); } -.evidence-card code { display: block; min-height: 42px; padding: 9px; overflow: hidden; background: var(--code-highlight); color: var(--ink-2); font-size: 11px; line-height: 1.45; text-overflow: ellipsis; white-space: pre-wrap; word-break: break-word; } +.evidence-card code { display: block; min-height: 42px; padding: 9px; overflow: hidden; background: var(--code-highlight); color: var(--ink-2); font-size: 0.73rem; line-height: 1.5; text-overflow: ellipsis; white-space: pre-wrap; word-break: break-word; } .evidence-terminal code { background: var(--term); color: var(--term-fg); } + +/* ─── Recommendation / Next step ─────────────────────────────────────── */ .recommendation { display: grid; grid-template-columns: 21px minmax(0, 1fr); gap: 8px; margin-top: 14px; padding: 10px 11px; border: 1px solid var(--warning-line); background: var(--warning-bg); } .next-step-mark { width: 19px; height: 19px; display: grid; place-items: center; border-radius: 4px; background: #eee5d1; color: var(--warning); font: 700 13px var(--mono); } -.recommendation > div > span { display: block; color: var(--warning); font-size: 10px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; } -.recommendation p { margin: 3px 0 0; color: var(--ink-2); font-size: 12px; line-height: 1.45; } -.limitations { margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; } +.recommendation > div > span { display: block; color: var(--warning); font-size: 0.73rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; } +.recommendation p { margin: 3px 0 0; color: var(--ink-2); font-size: 0.8rem; line-height: 1.45; } +.limitations { margin: 8px 0 0; color: var(--muted); font-size: 0.73rem; line-height: 1.45; } .limitations strong { color: var(--ink-2); } .finding-list { display: grid; gap: 9px; } .remaining-findings { margin-top: 17px; } .section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 9px; } -.section-heading h2 { margin: 4px 0 0; font-size: 15px; } +.section-heading h2 { margin: 4px 0 0; font-size: 1rem; } .empty-attention { display: flex; align-items: center; gap: 10px; padding: 14px; border: 1px solid var(--required-line); background: var(--required-bg); color: var(--required); } .empty-attention > span { font: 700 22px var(--mono); } .empty-attention div { display: grid; gap: 3px; } -.empty-attention div span { color: var(--muted); font-size: 11px; } +.empty-attention div span { color: var(--muted); font-size: 0.73rem; } +/* ─── Context grid (project + overview panels) ───────────────────────── */ .context-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(250px, .75fr); gap: 26px; align-items: start; margin-top: 23px; padding-top: 18px; border-top: 1px solid var(--line); } .project-panel, .overview-panel { min-width: 0; } .project-heading { align-items: end; padding-bottom: 9px; border-bottom: 1px solid var(--line-soft); } -.project-heading h2 { font-size: 17px; } -.project-path { max-width: 55%; overflow: hidden; color: var(--faint); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; } +.project-heading h2 { font-size: 1.13rem; } +.project-path { max-width: 55%; overflow: hidden; color: var(--faint); font-size: 0.7rem; text-overflow: ellipsis; white-space: nowrap; } .project-facts { display: flex; flex-wrap: wrap; gap: 22px; margin: 11px 0; } .project-facts > div { display: grid; gap: 2px; } -.project-facts span, .project-inline span { color: var(--faint); font-size: 9px; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; } -.project-facts strong { font-size: 13px; } +.project-facts span, .project-inline span { color: var(--faint); font-size: 0.7rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; } +.project-facts strong { font-size: 0.87rem; } .marker-list { display: flex; flex-wrap: wrap; gap: 5px; margin: 8px 0 11px; } -.marker-list code, .marker-list > span { padding: 3px 6px; border: 1px solid var(--line); border-radius: 4px; background: var(--panel-2); color: var(--ink-2); font-size: 9px; } +.marker-list code, .marker-list > span { padding: 3px 6px; border: 1px solid var(--line); border-radius: 4px; background: var(--panel-2); color: var(--ink-2); font-size: 0.7rem; } .requirements-block { padding-top: 10px; border-top: 1px solid var(--line-soft); } -.requirements-block h3 { margin: 0 0 6px; font-size: 11px; } +.requirements-block h3 { margin: 0 0 6px; font-size: 0.73rem; } .requirements-block ul { margin: 0; padding: 0; list-style: none; } -.requirements-block li { display: grid; grid-template-columns: minmax(120px, 1fr) auto auto; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px solid var(--line-soft); font-size: 10px; } +.requirements-block li { display: grid; grid-template-columns: minmax(120px, 1fr) auto auto; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px solid var(--line-soft); font-size: 0.73rem; } .requirement-value { font-family: var(--mono); } -.satisfaction { padding: 2px 6px; border-radius: 8px; font-size: 9px; font-weight: 700; } +.satisfaction { padding: 2px 6px; border-radius: 8px; font-size: 0.7rem; font-weight: 700; } .satisfaction-satisfied { background: var(--required-bg); color: var(--required); } .satisfaction-not_satisfied { background: var(--current-bg); color: var(--current); } .satisfaction-unknown { background: var(--warning-bg); color: var(--warning); } -.unknown-note, .project-notes, .project-errors { margin: 0; padding: 8px 9px; border-left: 2px solid var(--warning); background: var(--warning-bg); color: var(--muted); font-size: 10px; line-height: 1.45; } +.unknown-note, .project-notes, .project-errors { margin: 0; padding: 8px 9px; border-left: 2px solid var(--warning); background: var(--warning-bg); color: var(--muted); font-size: 0.73rem; line-height: 1.45; } .project-notes, .project-errors { margin-top: 8px; } .project-errors { border-left-color: var(--current); background: var(--current-bg); color: var(--current); } .project-notes p, .project-errors p { margin: 3px 0 0; } -.project-inline { display: flex; align-items: baseline; gap: 9px; margin: 7px 0 0; font-size: 10px; } +.project-inline { display: flex; align-items: baseline; gap: 9px; margin: 7px 0 0; font-size: 0.73rem; } + +/* ─── Overview panel (right) ─────────────────────────────────────────── */ .system-overview { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; padding: 9px 0; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); } -.system-overview > span { grid-row: 1 / 3; align-self: center; color: var(--faint); font-size: 10px; } +.system-overview > span { grid-row: 1 / 3; align-self: center; color: var(--faint); font-size: 0.73rem; } .system-overview strong, .system-overview small { text-align: right; } -.system-overview strong { font-size: 11px; } -.system-overview small { color: var(--faint); font-size: 9px; } -.overview-row { min-height: 37px; display: grid; grid-template-columns: 10px minmax(65px, 1fr) auto auto; align-items: center; gap: 7px; border-bottom: 1px solid var(--line-soft); font-size: 10px; } +.system-overview strong { font-size: 0.73rem; } +.system-overview small { color: var(--faint); font-size: 0.7rem; } +.overview-row { min-height: 36px; display: grid; grid-template-columns: 10px minmax(65px, 1fr) auto auto; align-items: center; gap: 7px; border-bottom: 1px solid var(--line-soft); font-size: 0.8rem; } .overview-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--warning); } .overview-dot-available { background: var(--required); } -.overview-version { font: 9px var(--mono); } -.overview-status { color: var(--faint); font-size: 9px; } +.overview-version { font: 0.73rem var(--mono); } +.overview-status { color: var(--faint); font-size: 0.73rem; } .status-available { color: var(--required); } .status-failed, .status-timeout, .status-malformed { color: var(--current); } .status-missing, .status-unsupported { color: var(--warning); } -.available-summary { display: flex; align-items: baseline; gap: 6px; margin: 10px 0 0; color: var(--muted); font-size: 10px; } -.available-summary strong { color: var(--ink); font: 700 17px var(--mono); } -.no-project { margin: 0; padding: 10px 0; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); color: var(--muted); font-size: 11px; } +.available-summary { display: flex; align-items: baseline; gap: 6px; margin: 10px 0 0; color: var(--muted); font-size: 0.73rem; } +.available-summary strong { color: var(--ink); font: 700 1.13rem var(--mono); } +.no-project { margin: 0; padding: 10px 0; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); color: var(--muted); font-size: 0.73rem; } + +/* ─── Supporting findings / technical / share ────────────────────────── */ .supporting-findings { margin-top: 18px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); } .supporting-findings > summary, .technical-shell > summary { display: flex; align-items: center; gap: 8px; padding: 10px 2px; cursor: pointer; list-style: none; } .supporting-findings > summary::-webkit-details-marker, .technical-shell > summary::-webkit-details-marker, .advanced-report > summary::-webkit-details-marker { display: none; } .supporting-findings > summary::before, .technical-shell > summary::after { color: var(--accent); content: "+"; font: 15px var(--mono); } .supporting-findings[open] > summary::before, .technical-shell[open] > summary::after { content: "−"; } -.supporting-findings > summary strong { margin-left: auto; color: var(--muted); font: 10px var(--mono); } +.supporting-findings > summary strong { margin-left: auto; color: var(--muted); font: 0.73rem var(--mono); } .supporting-findings > .finding-list { padding-bottom: 11px; } .report-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); } .share-heading { display: flex; align-items: center; gap: 9px; min-width: 0; } .share-mark { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 5px; background: var(--accent-soft); color: var(--accent); font: 700 14px var(--mono); } .share-heading div { display: grid; gap: 2px; } -.share-heading strong { font-size: 12px; } -.share-heading span { color: var(--faint); font-size: 9px; } +.share-heading strong { font-size: 0.8rem; } +.share-heading span { color: var(--faint); font-size: 0.73rem; } .report-primary-actions { display: flex; align-items: center; gap: 7px; } -.report-primary-actions button { padding: 7px 9px; font-size: 10px; } +.report-primary-actions button { min-height: 28px; padding: 0 10px; font-size: 0.8rem; } +.report-primary-actions .primary { min-height: 32px; padding: 0 14px; font-size: 0.8rem; font-weight: 600; } .advanced-report { position: relative; } -.advanced-report > summary { padding: 7px 9px; border: 1px solid var(--line); border-radius: 5px; background: var(--panel); color: var(--ink-2); cursor: pointer; font-size: 10px; } +.advanced-report > summary { min-height: 28px; display: flex; align-items: center; padding: 0 10px; border: 1px solid var(--line); border-radius: 5px; background: var(--panel); color: var(--ink-2); cursor: pointer; font-size: 0.73rem; } .advanced-report[open] { min-width: 320px; } .advanced-report > div { display: flex; justify-content: flex-end; gap: 5px; margin-top: 6px; } -.advanced-report button { padding: 5px 7px; font-size: 9px; } -.advanced-report p { margin: 5px 0 0; color: var(--faint); font-size: 9px; text-align: right; } +.advanced-report button { min-height: 24px; padding: 0 8px; font-size: 0.73rem; } +.advanced-report p { margin: 5px 0 0; color: var(--faint); font-size: 0.73rem; text-align: right; } .privacy-bar { margin: 8px 1px 0; } .technical-shell { margin-top: 12px; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); } -.technical-shell > summary > span { font-size: 11px; font-weight: 700; } -.technical-shell > summary small { margin-left: auto; color: var(--faint); font-size: 9px; } +.technical-shell > summary > span { font-size: 0.73rem; font-weight: 700; } +.technical-shell > summary small { margin-left: auto; color: var(--faint); font-size: 0.7rem; } .technical-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 34px; padding: 14px 0 4px; border-top: 1px solid var(--line-soft); } .technical-content section:last-child { grid-column: 1 / -1; } -.technical-content h3 { margin: 0 0 7px; font-size: 11px; } +.technical-content h3 { margin: 0 0 7px; font-size: 0.73rem; } .tool-list { border-top: 1px solid var(--line-soft); } -.tool-row { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 10px; padding: 7px 2px; border-bottom: 1px solid var(--line-soft); font-size: 9px; } +.tool-row { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 10px; padding: 7px 2px; border-bottom: 1px solid var(--line-soft); font-size: 0.7rem; } .tool-identity { display: flex; align-items: center; gap: 6px; } -.tool-status { padding: 2px 4px; border-radius: 3px; background: var(--panel-2); font-size: 8px; } +.tool-status { padding: 2px 4px; border-radius: 3px; background: var(--panel-2); font-size: 0.7rem; } .tool-detail { min-width: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 3px 8px; color: var(--muted); text-align: right; } -.technical-list { margin: 0; padding-left: 17px; font-size: 9px; } +.technical-list { margin: 0; padding-left: 17px; font-size: 0.7rem; } .technical-list li { margin: 4px 0; } .technical-list code { margin-left: 7px; } .path-list { max-height: 310px; overflow: auto; border: 1px solid var(--line); background: var(--panel-2); } -.path-row { display: flex; justify-content: space-between; gap: 12px; padding: 5px 8px; border-bottom: 1px solid var(--line-soft); font-size: 9px; } +.path-row { display: flex; justify-content: space-between; gap: 12px; padding: 5px 8px; border-bottom: 1px solid var(--line-soft); font-size: 0.7rem; } .path-row:last-child { border-bottom: 0; } .path-row span { color: var(--warning); white-space: nowrap; } -.statusbar { width: min(1920px, 100%); min-height: 30px; display: flex; align-items: center; gap: 8px; margin: 17px auto 0; padding: 0 10px; background: var(--term); color: #9eafb4; font-size: 10px; } + +/* ─── Status bar ─────────────────────────────────────────────────────── */ +.statusbar { flex: 0 0 auto; width: min(1920px, 100%); min-height: 28px; display: flex; align-items: center; gap: 8px; margin: 0 auto; padding: 0 10px; background: var(--term); color: #9eafb4; font-size: 0.73rem; } .statusbar .live-dot { width: 6px; height: 6px; animation: none; } .status-separator { width: 1px; height: 11px; background: #3b4c54; } .status-spacer { flex: 1; } +/* ─── Animations ─────────────────────────────────────────────────────── */ @keyframes livepulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(79,129,117,.34); } 60% { box-shadow: 0 0 0 5px rgba(79,129,117,0); } } + +/* ─── Responsive — 1440px+ (Phase 4) ────────────────────────────────── */ +@media (min-width: 1440px) { + .results-layout { grid-template-columns: 288px minmax(0, 1fr); } + .context-grid { grid-template-columns: minmax(0, 1.4fr) minmax(260px, 0.6fr); } +} + +/* ─── Responsive — 1900px+ three-column layout (Phase 4) ────────────── */ +@media (min-width: 1900px) { + .results-layout { grid-template-columns: 264px minmax(0, 1fr) 300px; } + /* Pull context-grid children into the three-column parent grid */ + .context-grid { display: contents; border-top: 0; padding-top: 0; } + .project-panel { padding-top: 18px; border-top: 1px solid var(--line); } + .overview-panel { + grid-column: 3; + grid-row: 1 / 999; + padding: 17px 16px; + border-left: 1px solid var(--line); + overflow-y: auto; + } +} + +/* ─── Responsive — ≤1040px ───────────────────────────────────────────── */ @media (max-width: 1040px) { .workspace { width: calc(100% - 30px); } .results { padding-left: 15px; padding-right: 15px; } @@ -299,14 +371,16 @@ button.navigator-item:hover, .navigator-item.is-active { border-color: var(--cur .context-grid { grid-template-columns: minmax(0, 1fr) minmax(220px, .8fr); gap: 18px; } .result-detail { padding-left: 18px; } } + +/* ─── Responsive — ≤820px (compact single-column) ───────────────────── */ @media (max-width: 820px) { .toolbar-context { max-width: 24vw; } .home-composition { grid-template-columns: 1fr; } .home-visual { display: none; } .home { padding-top: 34px; } - .results-layout { display: block; } + .results-layout { display: block; overflow-y: auto; } .finding-navigator { display: none; } - .result-detail { padding-left: 0; } + .result-detail { padding-left: 0; overflow-y: visible; } .process-bar { min-height: 44px; } .process-bar nav { display: none; } .results-actions { width: 100%; justify-content: flex-end; } @@ -314,12 +388,14 @@ button.navigator-item:hover, .navigator-item.is-active { border-color: var(--cur .diagnosis-banner { grid-template-columns: 29px minmax(0, 1fr); } .diagnosis-counts { grid-column: 2; justify-content: flex-start; } } + +/* ─── Responsive — ≤620px ────────────────────────────────────────────── */ @media (max-width: 620px) { .topbar { padding: 0 11px; gap: 8px; } .brand-copy small, .readonly-indicator { display: none; } .toolbar-context { max-width: 34vw; } .workspace { width: calc(100% - 22px); } - .results { padding: 0 11px 20px; } + .results { padding: 0 11px; } .results-topline { align-items: flex-start; flex-direction: column; gap: 5px; } .action-row { grid-template-columns: 35px minmax(0, 1fr); gap: 10px; } .action-verb { grid-column: 2; justify-self: start; } @@ -344,5 +420,8 @@ button.navigator-item:hover, .navigator-item.is-active { border-color: var(--cur .tool-detail { justify-content: flex-start; text-align: left; } .statusbar { overflow: hidden; white-space: nowrap; } .status-spacer, .statusbar > :last-child { display: none; } + /* Hide scale picker on very narrow screens */ + .scale-picker { display: none; } } + @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } } diff --git a/src/App.tsx b/src/App.tsx index 470bcb3..a82d6e0 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,4 @@ -import { useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { invoke } from "@tauri-apps/api/core"; import { listen } from "@tauri-apps/api/event"; import { open, save } from "@tauri-apps/plugin-dialog"; @@ -449,8 +449,17 @@ function FindingNavigator({ ); } +const ZOOM_LEVELS = [0.9, 1.0, 1.1, 1.25] as const; +type ZoomLevel = typeof ZOOM_LEVELS[number]; + +function getInitialZoom(): ZoomLevel { + const saved = parseFloat(localStorage.getItem("ec-ui-zoom") ?? "1"); + return (ZOOM_LEVELS.includes(saved as ZoomLevel) ? saved : 1.0) as ZoomLevel; +} + function App() { const [lang, setLang] = useState(() => detectLanguage()); + const [uiZoom, setUiZoom] = useState(getInitialZoom); const [view, setView] = useState("home"); const [scanKind, setScanKind] = useState("project"); const [selectedPath, setSelectedPath] = useState(null); @@ -461,6 +470,12 @@ function App() { const [notice, setNotice] = useState(null); const [busy, setBusy] = useState(false); + // Apply UI zoom to html element and persist + useEffect(() => { + document.documentElement.style.setProperty("--ui-zoom", String(uiZoom)); + localStorage.setItem("ec-ui-zoom", String(uiZoom)); + }, [uiZoom]); + const t = messages[lang]; const counts = useMemo(() => summarizeReport(report), [report]); const findingGroups = useMemo( @@ -583,6 +598,19 @@ function App() { {report?.project ? folderName(report.project.path) : view === "results" ? t.machineMode : t.projectMode}

+
+ {ZOOM_LEVELS.map((level) => ( + + ))} +