* { box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; margin: 0; background: #f7f7f9; color: #222; }
.topnav { display: flex; gap: 1rem; align-items: center; padding: .6rem 1rem; background: #1f2a44; color: #fff; }
.topnav a { color: #e8ecf7; text-decoration: none; font-size: .95rem; }
.topnav a:hover { color: #fff; text-decoration: underline; }
.topnav .brand { font-weight: 700; margin-right: 1rem; }
.topnav .spacer { flex: 1; }
.topnav .who { font-size: .85rem; color: #cfd6ea; margin-right: .5rem; }
.topnav .link { background: none; border: none; color: #e8ecf7; cursor: pointer; font-size: .95rem; padding: 0; }
.container { max-width: 1100px; margin: 1.5rem auto; padding: 0 1rem; }
h1 { font-size: 1.3rem; margin: 0 0 1rem; }
h2 { font-size: 1.05rem; margin: 1.2rem 0 .5rem; color: #444; }
.card { background: #fff; border: 1px solid #e4e6ee; border-radius: 6px; padding: 1rem; margin-bottom: 1rem; }
table { width: 100%; border-collapse: collapse; background: #fff; }
th, td { text-align: left; padding: .45rem .6rem; border-bottom: 1px solid #eef0f5; font-size: .9rem; }
th { background: #f2f3f8; font-weight: 600; }
tr:hover td { background: #fafbfe; }
form.inline { display: inline; }
input[type=text], input[type=email], input[type=password], input[type=number], select, textarea {
  font: inherit; padding: .4rem .55rem; border: 1px solid #c8ccd9; border-radius: 4px; background: #fff;
}
button, .btn { font: inherit; padding: .45rem .9rem; border: 1px solid #2f3c63; background: #2f3c63; color: #fff; border-radius: 4px; cursor: pointer; }
button.secondary { background: #fff; color: #2f3c63; }
button:hover { background: #3b4a78; }
.error { color: #b33; background: #fde8e8; border: 1px solid #f3c4c4; padding: .5rem .7rem; border-radius: 4px; margin-bottom: 1rem; }
.muted { color: #667; font-size: .85rem; }
.login-box { max-width: 360px; margin: 4rem auto; }
.kv { display: grid; grid-template-columns: max-content 1fr; gap: .3rem 1rem; }
.kv dt { color: #667; }
.badge { display: inline-block; font-size: .75rem; padding: .1rem .45rem; border-radius: 10px; background: #eef; color: #336; }
.badge.warn { background: #fff1c6; color: #664600; }
.badge.ok { background: #e2f5d6; color: #2a5e1a; }
.badge.err { background: #f8d7d7; color: #7a1a1a; }
