assistant/console/styles.css

139 lines
8.5 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* 与桌面端同一套规范:白底、浅灰分区、黑色 accent,无渐变 / 阴影 / Emoji 图标,8px 网格,正文 14px */
:root {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
font-size: 14px;
color: #191c1f;
background: #ffffff;
--surface: #ffffff;
--surface-soft: #f7f7f7;
--border: #e5e5e5;
--muted: #707070;
--accent: #000000;
--accent-soft: #eeeeee;
--danger: #a33830;
--radius: 8px;
--ok: #326047;
--ok-bg: #eef6f0;
--warn: #8b5100;
--warn-bg: #fff5e5;
--info: #2459a3;
--info-bg: #eef4fc;
--purple: #6851a3;
--purple-bg: #f5f1fc;
--danger-bg: #fbeeed;
}
* { box-sizing: border-box; }
body { margin: 0; }
button, input, textarea, select { font: inherit; color: inherit; }
button { border: 0; background: transparent; cursor: pointer; padding: 0; }
button:disabled { cursor: not-allowed; opacity: 0.4; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid #737373; outline-offset: 2px; }
h1, h2, p { margin: 0; }
code { font-family: ui-monospace, 'Cascadia Code', Consolas, monospace; font-size: 13px; }
svg { flex-shrink: 0; stroke-width: 1.75; }
.muted { color: var(--muted); }
.small { font-size: 12px; }
.spacer { flex: 1; }
.console { min-height: 100vh; display: flex; flex-direction: column; }
.topbar { display: flex; align-items: center; gap: 16px; padding: 12px 24px; border-bottom: 1px solid var(--border); }
.topbar h1 { font-size: 15px; font-weight: 600; }
.tabs { display: flex; gap: 4px; }
.tabs button { padding: 6px 12px; border-radius: var(--radius); color: var(--muted); }
.tabs button:hover { background: var(--accent-soft); }
.tabs button.active { background: var(--accent); color: #fff; }
.toast { font-size: 13px; background: var(--info-bg); color: var(--info); padding: 4px 10px; border-radius: 999px; }
.body { flex: 1; max-width: 1180px; width: 100%; margin: 0 auto; padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.overview { display: flex; align-items: center; gap: 8px; }
.stat { display: flex; flex-direction: column; gap: 2px; align-items: flex-start; padding: 10px 16px; border: 1px solid var(--border); border-radius: var(--radius); min-width: 96px; background: var(--surface); }
.stat:hover { background: var(--accent-soft); }
.stat.active { border-color: var(--accent); }
.stat-n { font-size: 20px; font-weight: 600; }
.stat-l { font-size: 12px; color: var(--muted); }
.stat-split { display: flex; gap: 12px; margin-left: 8px; }
.filters { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.filters select, .filters input { padding: 7px 10px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.filters input { min-width: 220px; }
.select-all { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); }
.entries { display: flex; flex-direction: column; gap: 8px; }
.empty { padding: 32px; text-align: center; border: 1px dashed var(--border); border-radius: var(--radius); }
.entry { border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 16px; background: var(--surface); display: grid; gap: 8px; }
.entry.selected { border-color: var(--accent); background: var(--surface-soft); }
.entry[data-status='rejected'] .entry-value { text-decoration: line-through; color: var(--muted); }
.entry-head { display: flex; align-items: center; gap: 8px; }
.entry-key { font-size: 14px; }
.entry-meta { font-size: 12px; color: var(--muted); white-space: nowrap; }
.entry-value { line-height: 1.6; white-space: pre-wrap; word-break: break-word; }
.entry-edit { width: 100%; padding: 8px 10px; border: 1px solid var(--border); border-radius: var(--radius); resize: vertical; line-height: 1.6; }
.entry-note { font-size: 12px; color: var(--muted); background: var(--surface-soft); padding: 8px 10px; border-radius: var(--radius); white-space: pre-wrap; }
.entry-foot { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.entry-source { font-size: 12px; color: var(--muted); }
.scope-pick { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.scope-pick select { padding: 4px 8px; border: 1px solid var(--border); border-radius: var(--radius); }
.chip { font-size: 12px; padding: 2px 8px; border-radius: 999px; background: var(--accent-soft); color: var(--muted); white-space: nowrap; }
.chip.cat-control_tip { background: var(--info-bg); color: var(--info); }
.chip.cat-path { background: var(--purple-bg); color: var(--purple); }
.chip.cat-rule { background: var(--warn-bg); color: var(--warn); }
.chip.status-verified { background: var(--ok-bg); color: var(--ok); }
.chip.status-rejected { background: var(--danger-bg); color: var(--danger); }
.chip.sug-adopt { background: var(--ok-bg); color: var(--ok); }
.chip.sug-reject { background: var(--danger-bg); color: var(--danger); }
.chip.sug-review { background: var(--warn-bg); color: var(--warn); }
.primary-button, .secondary-button, .danger-button, .text-action, .icon-button { display: inline-flex; align-items: center; gap: 6px; border-radius: var(--radius); }
.primary-button { background: var(--accent); color: #fff; padding: 7px 14px; }
.primary-button:hover:not(:disabled) { background: #333333; }
.secondary-button { background: var(--surface); border: 1px solid var(--border); padding: 6px 13px; }
.secondary-button:hover:not(:disabled) { background: var(--accent-soft); }
.danger-button { background: var(--danger-bg); color: var(--danger); border: 1px solid #f0d4d1; padding: 6px 13px; }
.danger-button:hover:not(:disabled) { background: #f6dcda; }
.text-action { color: var(--muted); padding: 6px 8px; }
.text-action:hover:not(:disabled) { color: #191c1f; background: var(--accent-soft); }
.icon-button { width: 32px; height: 32px; justify-content: center; border-radius: 50%; }
.icon-button:hover { background: var(--accent-soft); }
.small { padding: 5px 10px; font-size: 13px; }
.panel { border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; display: grid; gap: 12px; }
.panel h2 { font-size: 14px; font-weight: 600; }
.school-form { display: flex; gap: 8px; flex-wrap: wrap; }
.school-form input { padding: 7px 10px; border: 1px solid var(--border); border-radius: var(--radius); min-width: 200px; }
.token-box { border: 1px solid var(--border); border-radius: var(--radius); padding: 12px; background: var(--surface-soft); display: grid; gap: 8px; }
.token-head { display: flex; align-items: center; justify-content: space-between; }
.token-box code { display: block; word-break: break-all; background: var(--surface); padding: 8px; border-radius: var(--radius); border: 1px solid var(--border); }
.school-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.school-table th { text-align: left; font-weight: 500; color: var(--muted); padding: 8px; border-bottom: 1px solid var(--border); }
.school-table td { padding: 8px; border-bottom: 1px solid var(--border); vertical-align: top; }
.gate { min-height: 100vh; display: flex; align-items: center; justify-content: center; }
.gate form { display: grid; gap: 12px; width: 320px; border: 1px solid var(--border); border-radius: var(--radius); padding: 24px; }
.gate h1 { font-size: 16px; }
.gate input { padding: 8px 10px; border: 1px solid var(--border); border-radius: var(--radius); }
/* ---------- 智能采纳 ---------- */
.auto-panel { max-width: 900px; }
.policy-row { display: flex; gap: 16px; flex-wrap: wrap; align-items: flex-start; }
.policy-row label { display: grid; gap: 4px; font-size: 13px; }
.policy-row label.check { display: flex; align-items: center; gap: 6px; padding-top: 4px; }
.policy-row input[type='number'] { width: 80px; padding: 6px 8px; border: 1px solid var(--border); border-radius: var(--radius); }
.policy-actions { display: flex; align-items: center; gap: 8px; }
.plan-result { border-top: 1px solid var(--border); padding-top: 12px; display: grid; gap: 12px; }
.plan-group { display: grid; gap: 6px; }
.plan-title { font-size: 13px; font-weight: 600; }
.plan-title.ok { color: var(--ok); }
.plan-title.danger { color: var(--danger); }
.plan-title.warn { color: var(--warn); }
.plan-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.plan-list li { border: 1px solid var(--border); border-radius: var(--radius); padding: 8px 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.plan-key { font-weight: 600; font-size: 13px; }
.plan-reason { flex-basis: 100%; white-space: pre-wrap; }
.filters .check { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); }