Files
agent-platform/agent_platform/static/style.css
T

250 lines
6.7 KiB
CSS
Raw Normal View History

2026-07-05 22:18:00 +02:00
/* Agent Platform Stylesheet */
:root {
--color-bg: #f7f8fa;
--color-surface: #ffffff;
--color-border: #e1e4e8;
--color-text: #1f2328;
--color-text-muted: #57606a;
--color-primary: #0969da;
--color-primary-hover: #0860c7;
--color-success: #1a7f37;
--color-danger: #cf222e;
--color-warning: #bf8700;
--radius: 6px;
--shadow: 0 1px 3px rgba(0,0,0,0.05);
--shadow-lg: 0 4px 12px rgba(0,0,0,0.08);
--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
font-family: var(--font);
font-size: 14px;
line-height: 1.5;
color: var(--color-text);
background: var(--color-bg);
display: flex;
flex-direction: column;
min-height: 100vh;
}
/* === Navbar === */
.navbar {
background: var(--color-surface);
border-bottom: 1px solid var(--color-border);
padding: 12px 24px;
display: flex;
align-items: center;
gap: 24px;
box-shadow: var(--shadow);
}
.nav-brand { font-weight: 700; font-size: 16px; color: var(--color-primary); }
.nav-links { display: flex; gap: 16px; flex: 1; }
.nav-link {
color: var(--color-text-muted);
text-decoration: none;
padding: 6px 12px;
border-radius: var(--radius);
transition: background 0.15s;
}
.nav-link:hover { background: var(--color-bg); color: var(--color-text); }
.nav-user { color: var(--color-text-muted); font-size: 13px; }
/* === Container === */
.container {
max-width: 1200px;
margin: 0 auto;
padding: 24px;
width: 100%;
flex: 1;
}
/* === Page Header === */
.page-header { margin-bottom: 24px; }
.page-header h1 { font-size: 28px; font-weight: 600; margin-bottom: 4px; }
.subtitle { color: var(--color-text-muted); }
/* === Card === */
.card {
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius);
padding: 20px;
margin-bottom: 16px;
box-shadow: var(--shadow);
}
.card h2 { font-size: 18px; font-weight: 600; margin-bottom: 12px; }
/* === Table === */
.table { width: 100%; border-collapse: collapse; }
.table th, .table td {
padding: 10px 12px;
text-align: left;
border-bottom: 1px solid var(--color-border);
}
.table th { background: var(--color-bg); font-weight: 600; font-size: 12px; text-transform: uppercase; color: var(--color-text-muted); }
.table tbody tr:hover { background: var(--color-bg); }
/* === Form === */
.form { display: flex; flex-direction: column; gap: 12px; }
.form-row { display: flex; gap: 12px; }
.form-row .form-group { flex: 1; }
.form-group { display: flex; flex-direction: column; gap: 4px; }
.form-group label { font-size: 13px; font-weight: 500; color: var(--color-text-muted); }
input, select, textarea {
font-family: inherit;
font-size: 14px;
padding: 8px 12px;
border: 1px solid var(--color-border);
border-radius: var(--radius);
background: var(--color-surface);
color: var(--color-text);
width: 100%;
}
input:focus, select:focus, textarea:focus {
outline: none;
border-color: var(--color-primary);
box-shadow: 0 0 0 3px rgba(9,105,218,0.15);
}
textarea { font-family: inherit; resize: vertical; }
/* === Button === */
.btn {
display: inline-block;
padding: 8px 16px;
border: 1px solid var(--color-border);
border-radius: var(--radius);
background: var(--color-surface);
color: var(--color-text);
text-decoration: none;
cursor: pointer;
font-size: 14px;
font-weight: 500;
transition: all 0.15s;
}
.btn:hover { background: var(--color-bg); border-color: var(--color-text-muted); }
.btn-primary {
background: var(--color-primary);
color: white;
border-color: var(--color-primary);
}
.btn-primary:hover { background: var(--color-primary-hover); }
.btn-danger {
background: var(--color-surface);
color: var(--color-danger);
border-color: var(--color-border);
}
.btn-danger:hover { background: var(--color-danger); color: white; border-color: var(--color-danger); }
.btn-sm { padding: 4px 10px; font-size: 12px; }
/* === Badge === */
.badge {
display: inline-block;
padding: 2px 8px;
border-radius: 12px;
font-size: 11px;
font-weight: 600;
background: var(--color-bg);
color: var(--color-text-muted);
border: 1px solid var(--color-border);
}
.badge-green { background: #dafbe1; color: var(--color-success); border-color: #1a7f3730; }
.badge-red { background: #ffebe9; color: var(--color-danger); border-color: #cf222e30; }
/* === Empty State === */
.empty-state {
text-align: center;
padding: 32px;
color: var(--color-text-muted);
}
/* === Code === */
code {
font-family: var(--mono);
font-size: 12.5px;
background: var(--color-bg);
padding: 2px 6px;
border-radius: 4px;
}
pre {
background: var(--color-bg);
padding: 12px;
border-radius: var(--radius);
overflow-x: auto;
font-size: 12px;
margin-top: 8px;
}
/* === Chat === */
.chat-container { min-height: 400px; }
.messages { display: flex; flex-direction: column; gap: 12px; }
.message {
padding: 10px 14px;
border-radius: var(--radius);
max-width: 80%;
}
.message-user {
background: var(--color-primary);
color: white;
align-self: flex-end;
}
.message-assistant {
background: var(--color-bg);
border: 1px solid var(--color-border);
align-self: flex-start;
}
.message-tool {
background: #fff8c5;
color: var(--color-warning);
border: 1px solid #d4a72c30;
align-self: center;
font-family: var(--mono);
font-size: 12px;
max-width: 90%;
}
.message-role {
font-size: 11px;
font-weight: 600;
text-transform: uppercase;
margin-bottom: 4px;
opacity: 0.7;
}
.message-content { white-space: pre-wrap; word-wrap: break-word; }
/* === Tools Grid === */
.tools-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 12px;
}
.tool-card {
background: var(--color-bg);
border: 1px solid var(--color-border);
border-radius: var(--radius);
padding: 12px;
}
.tool-card h3 { margin-bottom: 6px; font-size: 14px; }
.tool-card p { color: var(--color-text-muted); font-size: 13px; }
/* === Footer === */
.footer {
text-align: center;
padding: 16px;
color: var(--color-text-muted);
border-top: 1px solid var(--color-border);
background: var(--color-surface);
}
/* === Responsive === */
@media (max-width: 640px) {
.navbar { flex-wrap: wrap; gap: 12px; padding: 12px; }
.nav-links { order: 3; width: 100%; }
.container { padding: 12px; }
.form-row { flex-direction: column; }
.message { max-width: 95%; }
}