| :root { |
| color-scheme: light; |
| --bg: #f5f7fa; |
| --panel: #ffffff; |
| --text: #17202a; |
| --muted: #667085; |
| --line: #d9e0e8; |
| --primary: #0f8f72; |
| --primary-dark: #08715a; |
| --primary-soft: #e3f5ef; |
| --accent: #1f6feb; |
| --accent-soft: #e8f1ff; |
| --warning: #b25e09; |
| --warning-soft: #fff2df; |
| --danger: #b42318; |
| --danger-soft: #fee4e2; |
| --shadow: 0 12px 35px rgba(16, 24, 40, 0.08); |
| } |
|
|
| * { |
| box-sizing: border-box; |
| } |
|
|
| body { |
| margin: 0; |
| min-height: 100vh; |
| background: var(--bg); |
| color: var(--text); |
| font-family: |
| Inter, "Segoe UI", "PingFang SC", "Microsoft YaHei", Arial, sans-serif; |
| } |
|
|
| button, |
| select, |
| textarea { |
| font: inherit; |
| } |
|
|
| .app-shell { |
| width: min(1440px, 100%); |
| margin: 0 auto; |
| padding: 24px; |
| } |
|
|
| .topbar { |
| display: flex; |
| align-items: flex-end; |
| justify-content: space-between; |
| gap: 24px; |
| padding: 8px 2px 22px; |
| } |
|
|
| .eyebrow { |
| margin: 0 0 6px; |
| color: var(--primary); |
| font-size: 13px; |
| font-weight: 700; |
| } |
|
|
| h1, |
| h2, |
| p { |
| margin-top: 0; |
| } |
|
|
| h1 { |
| margin-bottom: 8px; |
| font-size: 34px; |
| line-height: 1.1; |
| letter-spacing: 0; |
| } |
|
|
| h2 { |
| margin-bottom: 0; |
| font-size: 18px; |
| } |
|
|
| .subtitle { |
| max-width: 720px; |
| margin-bottom: 0; |
| color: var(--muted); |
| } |
|
|
| .topbar-metrics { |
| display: flex; |
| gap: 10px; |
| flex-wrap: wrap; |
| justify-content: flex-end; |
| } |
|
|
| .topbar-metrics span, |
| .summary-card, |
| .input-panel, |
| .rank-panel, |
| .detail-panel { |
| border: 1px solid var(--line); |
| background: var(--panel); |
| box-shadow: var(--shadow); |
| } |
|
|
| .topbar-metrics span { |
| min-width: 110px; |
| padding: 10px 12px; |
| border-radius: 8px; |
| color: var(--muted); |
| text-align: center; |
| } |
|
|
| .topbar-metrics strong { |
| display: block; |
| color: var(--text); |
| font-size: 22px; |
| } |
|
|
| .workspace { |
| display: grid; |
| grid-template-columns: minmax(320px, 390px) minmax(0, 1fr); |
| gap: 18px; |
| align-items: start; |
| } |
|
|
| .input-panel, |
| .rank-panel, |
| .detail-panel { |
| border-radius: 8px; |
| } |
|
|
| .input-panel { |
| position: sticky; |
| top: 18px; |
| padding: 18px; |
| } |
|
|
| .panel-header, |
| .section-title, |
| .button-row, |
| .job-row-top, |
| .job-tags, |
| .tabs { |
| display: flex; |
| align-items: center; |
| } |
|
|
| .panel-header, |
| .section-title { |
| justify-content: space-between; |
| gap: 12px; |
| margin-bottom: 16px; |
| } |
|
|
| .section-title span { |
| color: var(--muted); |
| font-size: 13px; |
| } |
|
|
| .field { |
| display: grid; |
| gap: 8px; |
| margin-bottom: 14px; |
| color: var(--muted); |
| font-size: 13px; |
| font-weight: 700; |
| } |
|
|
| select, |
| textarea { |
| width: 100%; |
| border: 1px solid var(--line); |
| border-radius: 8px; |
| background: #fff; |
| color: var(--text); |
| outline: none; |
| } |
|
|
| select { |
| height: 42px; |
| padding: 0 12px; |
| } |
|
|
| textarea { |
| min-height: 360px; |
| resize: vertical; |
| padding: 12px; |
| line-height: 1.55; |
| } |
|
|
| select:focus, |
| textarea:focus { |
| border-color: var(--primary); |
| box-shadow: 0 0 0 3px rgba(15, 143, 114, 0.12); |
| } |
|
|
| .button-row { |
| gap: 10px; |
| } |
|
|
| .primary-button, |
| .ghost-button { |
| border: 0; |
| border-radius: 8px; |
| cursor: pointer; |
| font-weight: 700; |
| transition: |
| transform 0.15s ease, |
| background 0.15s ease, |
| box-shadow 0.15s ease; |
| } |
|
|
| .primary-button { |
| flex: 1; |
| padding: 12px 16px; |
| background: var(--primary); |
| color: #fff; |
| box-shadow: 0 10px 22px rgba(15, 143, 114, 0.24); |
| } |
|
|
| .ghost-button { |
| padding: 10px 12px; |
| border: 1px solid var(--line); |
| background: #fff; |
| color: var(--text); |
| } |
|
|
| .primary-button:hover, |
| .ghost-button:hover { |
| transform: translateY(-1px); |
| } |
|
|
| .primary-button:hover { |
| background: var(--primary-dark); |
| } |
|
|
| .result-panel { |
| min-width: 0; |
| } |
|
|
| .agent-strip { |
| display: grid; |
| grid-template-columns: repeat(5, minmax(0, 1fr)); |
| gap: 10px; |
| margin-bottom: 14px; |
| } |
|
|
| .agent-step { |
| min-height: 76px; |
| padding: 12px; |
| border: 1px solid var(--line); |
| border-radius: 8px; |
| background: #fff; |
| } |
|
|
| .agent-step.active { |
| border-color: var(--primary); |
| background: var(--primary-soft); |
| } |
|
|
| .agent-step strong { |
| display: block; |
| margin-bottom: 6px; |
| font-size: 14px; |
| } |
|
|
| .agent-step span { |
| color: var(--muted); |
| font-size: 12px; |
| line-height: 1.35; |
| } |
|
|
| .summary-grid { |
| display: grid; |
| grid-template-columns: 1.4fr 0.8fr 1fr; |
| gap: 12px; |
| margin-bottom: 14px; |
| } |
|
|
| .summary-card { |
| min-height: 104px; |
| padding: 16px; |
| border-radius: 8px; |
| } |
|
|
| .summary-card span, |
| .summary-card small { |
| display: block; |
| color: var(--muted); |
| } |
|
|
| .summary-card strong { |
| display: block; |
| margin: 8px 0 6px; |
| font-size: 25px; |
| line-height: 1.1; |
| } |
|
|
| .content-grid { |
| display: grid; |
| grid-template-columns: minmax(300px, 0.95fr) minmax(420px, 1.35fr); |
| gap: 14px; |
| } |
|
|
| .rank-panel, |
| .detail-panel { |
| min-width: 0; |
| padding: 16px; |
| } |
|
|
| .job-list { |
| display: grid; |
| gap: 10px; |
| } |
|
|
| .job-card { |
| display: grid; |
| gap: 10px; |
| padding: 14px; |
| border: 1px solid var(--line); |
| border-radius: 8px; |
| background: #fff; |
| cursor: pointer; |
| } |
|
|
| .job-card.active { |
| border-color: var(--primary); |
| background: var(--primary-soft); |
| } |
|
|
| .job-row-top { |
| justify-content: space-between; |
| gap: 12px; |
| } |
|
|
| .job-title { |
| font-weight: 800; |
| } |
|
|
| .score-pill { |
| min-width: 64px; |
| padding: 6px 8px; |
| border-radius: 999px; |
| background: var(--accent-soft); |
| color: var(--accent); |
| text-align: center; |
| font-weight: 800; |
| } |
|
|
| .job-meta { |
| color: var(--muted); |
| font-size: 13px; |
| line-height: 1.4; |
| } |
|
|
| .job-tags { |
| gap: 6px; |
| flex-wrap: wrap; |
| } |
|
|
| .tag { |
| padding: 4px 8px; |
| border-radius: 999px; |
| background: #eef2f6; |
| color: #344054; |
| font-size: 12px; |
| } |
|
|
| .tag.hit { |
| background: var(--primary-soft); |
| color: var(--primary-dark); |
| } |
|
|
| .radar-wrap { |
| display: grid; |
| grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); |
| gap: 12px; |
| align-items: center; |
| margin-bottom: 16px; |
| } |
|
|
| canvas { |
| width: 100%; |
| max-width: 280px; |
| } |
|
|
| .score-breakdown { |
| display: grid; |
| gap: 8px; |
| } |
|
|
| .score-line { |
| display: grid; |
| grid-template-columns: 86px minmax(0, 1fr) 42px; |
| gap: 8px; |
| align-items: center; |
| color: var(--muted); |
| font-size: 13px; |
| } |
|
|
| .bar { |
| height: 8px; |
| overflow: hidden; |
| border-radius: 999px; |
| background: #edf1f5; |
| } |
|
|
| .bar span { |
| display: block; |
| height: 100%; |
| border-radius: inherit; |
| background: var(--primary); |
| } |
|
|
| .tabs { |
| gap: 8px; |
| flex-wrap: wrap; |
| margin-bottom: 12px; |
| } |
|
|
| .tab { |
| border: 1px solid var(--line); |
| border-radius: 999px; |
| padding: 8px 12px; |
| background: #fff; |
| color: var(--muted); |
| cursor: pointer; |
| font-weight: 700; |
| } |
|
|
| .tab.active { |
| border-color: var(--primary); |
| background: var(--primary); |
| color: #fff; |
| } |
|
|
| .tab-content { |
| min-height: 260px; |
| padding: 14px; |
| border: 1px solid var(--line); |
| border-radius: 8px; |
| background: #fff; |
| } |
|
|
| .insight-list { |
| display: grid; |
| gap: 10px; |
| margin: 0; |
| padding: 0; |
| list-style: none; |
| } |
|
|
| .insight-list li { |
| padding: 10px 12px; |
| border-radius: 8px; |
| background: #f7f9fc; |
| line-height: 1.5; |
| } |
|
|
| .insight-list li.warning { |
| background: var(--warning-soft); |
| color: var(--warning); |
| } |
|
|
| .insight-list li.danger { |
| background: var(--danger-soft); |
| color: var(--danger); |
| } |
|
|
| .rewrite-block { |
| display: grid; |
| gap: 12px; |
| } |
|
|
| .rewrite-card { |
| padding: 12px; |
| border: 1px solid var(--line); |
| border-radius: 8px; |
| background: #f7f9fc; |
| } |
|
|
| .rewrite-card span { |
| display: block; |
| margin-bottom: 6px; |
| color: var(--muted); |
| font-size: 12px; |
| font-weight: 800; |
| } |
|
|
| .rewrite-card p { |
| margin: 0; |
| line-height: 1.55; |
| } |
|
|
| .empty-state { |
| display: grid; |
| min-height: 220px; |
| place-items: center; |
| color: var(--muted); |
| text-align: center; |
| } |
|
|
| @media (max-width: 1080px) { |
| .workspace, |
| .content-grid { |
| grid-template-columns: 1fr; |
| } |
|
|
| .input-panel { |
| position: static; |
| } |
| } |
|
|
| @media (max-width: 760px) { |
| .app-shell { |
| padding: 14px; |
| } |
|
|
| .topbar { |
| align-items: stretch; |
| flex-direction: column; |
| } |
|
|
| .topbar-metrics, |
| .agent-strip, |
| .summary-grid, |
| .radar-wrap { |
| grid-template-columns: 1fr; |
| } |
|
|
| .agent-strip { |
| display: grid; |
| } |
|
|
| .summary-grid { |
| display: grid; |
| } |
| } |
|
|