* { box-sizing: border-box; }
body { margin:0; font-family: Arial, Helvetica, sans-serif; background:#0d1117; color:#e6edf3; }
#app-shell { display:flex; min-height:100vh; }
.sidebar { width:280px; background:#111827; border-right:1px solid #1f2937; padding:20px; }
.brand-block h1 { margin:0 0 6px 0; font-size:24px; }
.brand-block .sub { margin:0 0 24px 0; color:#9ca3af; font-size:14px; }
.nav-block { margin-bottom:24px; }
.nav-btn { width:100%; padding:12px 14px; margin-bottom:10px; border:1px solid #374151; background:#1f2937; color:#e5e7eb; text-align:left; cursor:pointer; border-radius:10px; }
.nav-btn.active { border-color:#14b8a6; background:#0f172a; }
.env-block { padding:14px; border:1px solid #374151; border-radius:12px; background:#0f172a; line-height:1.8; font-size:14px; }
.main-panel { flex:1; padding:24px; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.topbar h2 { margin:0 0 6px 0; }
.topbar p { margin:0; color:#9ca3af; }
.topbar-right { display:flex; gap:10px; flex-wrap:wrap; }
.topbar-right button, .topbar-right input { padding:12px 16px; border:1px solid #334155; background:#111827; color:#e6edf3; border-radius:10px; }
.topbar-right input { min-width:220px; }
.cards-grid { display:grid; grid-template-columns:repeat(4, minmax(180px, 1fr)); gap:16px; margin-bottom:24px; }
.cards-grid.two-up { grid-template-columns:repeat(2, minmax(280px, 1fr)); }
.card, .panel { background:#111827; border:1px solid #1f2937; border-radius:14px; padding:18px; }
.card h3, .panel h3 { margin-top:0; }
.service-board { display:grid; grid-template-columns:repeat(2, minmax(260px, 1fr)); gap:14px; }
.service-item { border:1px solid #334155; border-radius:12px; padding:14px; background:#0f172a; }
.service-item h4 { margin:0 0 8px 0; }
.service-meta { font-size:13px; color:#9ca3af; margin-bottom:8px; }
.status-line { font-size:14px; margin-bottom:6px; }
.status-online { color:#22c55e; }
.status-offline { color:#ef4444; }
.status-unknown { color:#f59e0b; }
.view { display:none; }
.view.active { display:block; }
.form-stack { display:flex; flex-direction:column; gap:10px; }
.form-stack input, .form-stack button { padding:12px 14px; border:1px solid #334155; background:#0f172a; color:#e6edf3; border-radius:10px; }
pre { white-space:pre-wrap; word-break:break-word; background:#020617; border:1px solid #1e293b; border-radius:12px; padding:14px; min-height:180px; }
@media (max-width: 1100px) {
  #app-shell { flex-direction:column; }
  .sidebar { width:100%; }
  .cards-grid, .cards-grid.two-up, .service-board { grid-template-columns:1fr; }
}
