body {
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  max-width: 820px;
  margin: 2rem auto;
  padding: 0 1rem;
  color: #1a1a1a;
  background: #fafafa;
}

h1 { font-size: 1.4rem; }
.lead { color: #555; font-size: 0.9rem; }

.status {
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 1rem;
  margin: 1rem 0;
  background: #fff;
}

.budget-line {
  display: flex;
  justify-content: space-between;
  font-size: 0.95rem;
  margin-bottom: 0.5rem;
}

.progress-bar {
  height: 14px;
  background: #eee;
  border-radius: 7px;
  overflow: hidden;
}

.progress-fill {
  height: 100%;
  width: 0%;
  background: #2e7d32;
  transition: width 0.15s ease-out, background-color 0.15s ease-out;
}

.progress-fill.over-budget { background: #c62828; }

.status-banner {
  margin-top: 0.6rem;
  font-weight: 600;
}

.status-banner.stopped { color: #c62828; }
.status-banner.ok { color: #2e7d32; }

.controls {
  display: flex;
  gap: 0.6rem;
  margin-bottom: 1rem;
}

button {
  padding: 0.5rem 0.9rem;
  border-radius: 6px;
  border: 1px solid #333;
  background: #fff;
  cursor: pointer;
  font-size: 0.9rem;
}

button.danger {
  border-color: #c62828;
  color: #c62828;
}

button:disabled { opacity: 0.5; cursor: not-allowed; }

.log-section table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
  background: #fff;
}

.log-section th, .log-section td {
  border-bottom: 1px solid #eee;
  padding: 0.3rem 0.4rem;
  text-align: left;
}

tr.allowed { color: #1a1a1a; }
tr.rejected { color: #c62828; }
