* { box-sizing: border-box; }
body {
    font-family: -apple-system, Segoe UI, Roboto, sans-serif;
    max-width: 900px;
    margin: 0 auto;
    padding: 24px 16px 64px;
    color: #1a1a1a;
    background: #fafafa;
}
h1 { font-size: 1.4rem; }
h2 { font-size: 1.1rem; margin-top: 2rem; }
nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
nav a { margin-right: 12px; color: #1a5fb4; text-decoration: none; }
nav .brand { display: flex; align-items: center; gap: 10px; }
nav .brand img { height: 24px; width: auto; display: block; }
form.inline { display: inline; }
.card { background: #fff; border: 1px solid #ddd; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
label { display: block; margin-top: 10px; font-size: 0.9rem; color: #444; }
input[type=text], input[type=email], input[type=password], input[type=number], select {
    width: 100%; padding: 8px; margin-top: 4px; border: 1px solid #ccc; border-radius: 4px;
}
button, input[type=submit] {
    margin-top: 14px; padding: 8px 16px; border: none; border-radius: 4px;
    background: #1a5fb4; color: #fff; cursor: pointer; font-size: 0.95rem;
}
button.secondary { background: #888; }
button.danger { background: #c0392b; }
table { width: 100%; border-collapse: collapse; margin-top: 12px; }
th, td { text-align: left; padding: 6px 8px; border-bottom: 1px solid #eee; font-size: 0.9rem; }
.status-pending, .status-running { color: #b8860b; }
.status-done { color: #1a7f37; }
.status-error { color: #c0392b; }
.log { background: #111; color: #ddd; font-family: monospace; font-size: 0.82rem;
    padding: 12px; border-radius: 6px; max-height: 400px; overflow-y: auto; white-space: pre-wrap; }
.badge { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 0.75rem; background: #eee; }
.error-msg { color: #c0392b; margin-top: 8px; }
