* { box-sizing: border-box; }
body {
  font-family: -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: #f4f5f7;
  color: #1a1a1a;
  margin: 0;
  padding: 0;
}
.container {
  max-width: 780px;
  margin: 40px auto;
  padding: 0 20px;
}
h1, h2 { font-weight: 600; }
.card {
  background: #fff;
  border: 1px solid #e2e4e8;
  border-radius: 10px;
  padding: 20px 24px;
  margin-bottom: 16px;
}
.project-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid #eee;
}
.project-row:last-child { border-bottom: none; }
.status {
  font-size: 13px;
  padding: 3px 10px;
  border-radius: 12px;
  font-weight: 600;
}
.status.on { background: #dcf5e3; color: #1a7d3a; }
.status.off { background: #f1f1f1; color: #888; }
a.btn, button.btn {
  display: inline-block;
  background: #2563eb;
  color: #fff;
  padding: 8px 14px;
  border-radius: 6px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  font-size: 14px;
  margin-left: 6px;
}
button.btn.secondary, a.btn.secondary { background: #6b7280; }
button.btn.danger, a.btn.danger { background: #dc2626; }
button.btn.stop { background: #d97706; }
input[type=text], input[type=password], textarea {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 14px;
  margin-bottom: 12px;
  font-family: inherit;
}
label { font-weight: 600; font-size: 13px; display: block; margin-bottom: 4px; }
textarea { min-height: 100px; }
.top-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.muted { color: #888; font-size: 13px; }
.flash { background: #fef3c7; padding: 10px 14px; border-radius: 6px; margin-bottom: 16px; }
