body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial; margin: 0; }
.sidebar { background: #f8f9fa; padding: 0.5rem 1rem; }
.main { margin-top: 1rem; }
.topbar { margin-bottom: 1rem; }
.content { padding: 1rem; background: #fff; border-radius: 4px; box-shadow: 0 1px 2px rgba(0,0,0,0.05);} 
.login-container { max-width: 420px; margin: 0 auto; }

/* Top navigation (sticky) */
.topnav { position: fixed; top: 0; left: 0; right: 0; height: 64px; background: #222; color: #fff; display: flex; align-items: center; z-index: 1000; }
.topnav-container { width: 100%; max-width: 1100px; margin: 0 auto; display: flex; align-items: center; padding: 0 1rem; justify-content: space-between; }
.topnav .brand { color: #fff; font-weight: 700; text-decoration: none; margin-right: 1rem; }
.topnav-links a { color: #ddd; margin-right: 0.75rem; text-decoration: none; }
.topnav-links a:hover { color: #fff; }
.topnav-auth { display: flex; align-items: center; gap: 0.5rem; }
.topnav .auth-link { color: #9dd3ff; text-decoration: none; }
.topnav .greet { margin-right: 0.5rem; color: #fff; }

/* Page content with padding so fixed headers/footers don't overlap */
.page-content { max-width: 1100px; margin: 0 auto; padding: 1rem; padding-top: 84px; padding-bottom: 84px; }

/* Sticky footer */
.site-footer { position: fixed; bottom: 0; left: 0; right: 0; height: 56px; background: #f6f6f6; border-top: 1px solid #e1e1e1; display:flex; align-items:center; }
.footer-container { width: 100%; max-width: 1100px; margin: 0 auto; display:flex; justify-content:space-between; padding: 0 1rem; font-size:0.9rem; color:#444; }

/* Services menu */
.services-list { display:flex; flex-direction:column; gap:0.5rem; }
.service-entry summary { list-style:none; cursor:pointer; padding:0.5rem 0.75rem; background:#fafafa; border:1px solid #eee; display:flex; align-items:center; gap:0.6rem; }
.service-entry[open] summary { background:#fffbe6; }
.service-entry .service-body { padding:0.75rem 1rem; border-left:2px solid #eee; background:#fff; }
.service-status { margin-left:0.6rem; padding:0.15rem 0.5rem; border-radius:12px; font-size:0.85rem; }
.status-healthy { background:#d4edda; color:#155724; border:1px solid #c3e6cb; }
.status-unhealthy { background:#f8d7da; color:#721c24; border:1px solid #f5c6cb; }
.status-unknown { background:#fff3cd; color:#856404; border:1px solid #ffeeba; }

.service-key { margin-left:0.5rem; color:#666; font-size:0.85rem; }

/* Access badge (small fallback) */
.access-badge { box-shadow: 0 1px 2px rgba(0,0,0,0.06); }
.access-num { font-size:0.95rem; }
