* { box-sizing: border-box; }
body { font-family: -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; margin: 0; background: #f4f5f7; color: #1a1a1a; }
nav { background: #1f2430; padding: 12px 20px; display: flex; gap: 18px; align-items: center; }
nav a { color: #cfd6e4; text-decoration: none; font-size: 14px; }
nav a.brand { color: #fff; font-weight: 600; font-size: 16px; margin-right: 10px; }
nav a:hover { color: #fff; }
nav a.logout { margin-left: auto; }
main { padding: 24px; max-width: 1200px; margin: 0 auto; }
h1 { font-size: 22px; margin-bottom: 12px; }
h2 { font-size: 16px; margin-top: 28px; color: #333; }
table { border-collapse: collapse; width: 100%; background: #fff; margin-top: 8px; font-size: 13px; }
th, td { border: 1px solid #e2e4e9; padding: 6px 10px; text-align: left; }
th { background: #eef0f4; }
table.kv th { width: 180px; background: #f7f8fa; }
.muted { color: #888; font-size: 13px; }
.filter-bar { margin: 10px 0 16px; display: flex; gap: 10px; align-items: center; }
.filter-bar input, .filter-bar select { padding: 6px 8px; border: 1px solid #ccc; border-radius: 4px; }
.cards { display: flex; gap: 16px; margin: 16px 0; flex-wrap: wrap; }
.card { background: #fff; border: 1px solid #e2e4e9; border-radius: 8px; padding: 16px 22px; min-width: 140px; }
.card .num { font-size: 26px; font-weight: 700; }
.card .label { font-size: 12px; color: #777; margin-top: 4px; }
.pager { margin-top: 14px; display: flex; gap: 14px; }
.login-body { display: flex; align-items: center; justify-content: center; height: 100vh; background: #1f2430; }
.login-box { background: #fff; padding: 32px; border-radius: 10px; width: 300px; display: flex; flex-direction: column; gap: 8px; }
.login-box h1 { font-size: 18px; text-align: center; margin-bottom: 10px; }
.login-box input { padding: 8px; border: 1px solid #ccc; border-radius: 4px; }
.login-box button { margin-top: 10px; padding: 9px; background: #1f2430; color: #fff; border: none; border-radius: 4px; cursor: pointer; }
.login-box .error { color: #c0392b; font-size: 13px; text-align: center; }
