SPADE / docs /styles.css
Zhiqi(Eli) Wang
Add example messages and verdict UI
db7f3eb
:root {
--bg: #f4f5f7;
--surface: #ffffff;
--text: #111827;
--muted: #6b7280;
--accent: #245fa8;
--accent-hover: #1f4f8a;
--border: #d9dde3;
--danger: #b42318;
--focus: #245fa8;
--focus-ring: rgba(36, 95, 168, 0.18);
}
* {
box-sizing: border-box;
}
body {
margin: 0;
background: var(--bg);
color: var(--text);
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 15px;
line-height: 1.45;
}
.page {
max-width: 1040px;
margin: 0 auto;
padding: 32px 16px 40px;
}
.hero {
margin-bottom: 12px;
}
.kicker {
margin: 0 0 8px;
color: var(--muted);
font-size: 13px;
font-weight: 600;
letter-spacing: -0.01em;
}
h1 {
margin: 0;
font-size: 30px;
font-weight: 600;
letter-spacing: -0.01em;
}
.subtitle {
margin: 10px 0 0;
color: var(--muted);
}
.card {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 12px;
padding: 16px;
margin-top: 16px;
}
.section-head {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
margin-bottom: 10px;
}
h2 {
margin: 0;
font-size: 16px;
font-weight: 600;
letter-spacing: -0.01em;
}
label {
display: block;
margin-bottom: 8px;
font-size: 14px;
font-weight: 600;
letter-spacing: -0.01em;
}
input,
textarea {
width: 100%;
border: 1px solid var(--border);
border-radius: 8px;
padding: 10px 12px;
font: inherit;
color: var(--text);
background: #fff;
}
textarea {
resize: vertical;
min-height: 140px;
}
input:focus,
textarea:focus,
button:focus-visible {
outline: none;
border-color: var(--focus);
box-shadow: 0 0 0 3px var(--focus-ring);
}
button {
margin-top: 12px;
border: 1px solid var(--accent);
border-radius: 8px;
min-height: 40px;
padding: 9px 14px;
color: #fff;
background: var(--accent);
font: inherit;
font-weight: 600;
cursor: pointer;
}
button:hover {
background: var(--accent-hover);
}
button:disabled {
opacity: 0.72;
cursor: default;
}
.example-messages {
margin-top: 10px;
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.example-message-btn {
margin-top: 0;
border: 1px solid var(--border);
background: #f7f8fa;
color: var(--text);
font-weight: 500;
min-height: 32px;
padding: 6px 10px;
text-align: left;
}
.example-message-btn:hover {
background: #eef2f7;
}
.verdict-card h2 {
margin-bottom: 10px;
}
.scam-verdict {
border: 1px solid var(--border);
border-radius: 10px;
padding: 12px 14px;
background: #fbfbfc;
}
.scam-chip {
display: inline-block;
border-radius: 999px;
border: 1px solid transparent;
font-size: 13px;
font-weight: 700;
line-height: 1.25;
padding: 4px 10px;
}
.scam-note {
margin: 8px 0 0;
color: var(--muted);
font-size: 14px;
}
.scam-verdict.scam .scam-chip {
background: #fef3f2;
border-color: #fecdca;
color: #b42318;
}
.scam-verdict.legit .scam-chip {
background: #ecfdf3;
border-color: #abefc6;
color: #067647;
}
.scam-verdict.pending .scam-chip,
.scam-verdict.unknown .scam-chip {
background: #eef2f7;
border-color: #d9dde3;
color: #344054;
}
.outputs-grid {
margin-top: 4px;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
}
.output-card {
min-height: 320px;
}
pre,
.explainer {
margin: 12px 0 0;
padding: 12px;
border-radius: 8px;
border: 1px solid var(--border);
background: #fbfbfc;
white-space: pre-wrap;
word-break: break-word;
}
pre {
min-height: 244px;
}
.explainer {
min-height: 244px;
}
.hint,
.status {
font-size: 14px;
color: var(--muted);
}
.status {
margin: 16px 2px 0;
}
.status.error {
color: var(--danger);
}
code {
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
@media (max-width: 900px) {
.page {
padding: 20px 12px 28px;
}
h1 {
font-size: 24px;
}
.outputs-grid {
grid-template-columns: 1fr;
}
}