* { box-sizing: border-box; }
body { margin: 0; font: 14px/1.45 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #182026; background: #f5f7f8; }
a { color: #1769aa; text-decoration: none; }
.topbar { display: flex; align-items: center; gap: 18px; min-height: 56px; padding: 0 20px; border-bottom: 1px solid #cfd7df; background: #ffffff; position: sticky; top: 0; z-index: 2; }
.brand { font-weight: 700; color: #182026; white-space: nowrap; }
nav { display: flex; flex-wrap: wrap; gap: 12px; flex: 1; }
nav a { color: #314450; }
.logout { margin-left: auto; }
main { max-width: 1440px; margin: 0 auto; padding: 22px; }
h1 { font-size: 24px; margin: 0 0 16px; }
h2 { font-size: 18px; margin: 18px 0 10px; }
button { border: 1px solid #9aa9b5; background: #ffffff; color: #182026; border-radius: 6px; padding: 7px 10px; cursor: pointer; }
button:hover { background: #edf2f5; }
input, select { border: 1px solid #aeb9c2; border-radius: 6px; padding: 7px 9px; min-width: 120px; background: #fff; }
table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid #d5dde3; }
th, td { text-align: left; vertical-align: top; padding: 9px; border-bottom: 1px solid #e3e8ec; }
th { font-size: 12px; text-transform: uppercase; color: #596873; background: #f0f3f5; }
pre { background: #101820; color: #e6edf3; padding: 14px; border-radius: 6px; overflow: auto; }
.auth { max-width: 360px; margin: 8vh auto; background: #fff; border: 1px solid #d5dde3; border-radius: 8px; padding: 22px; }
.auth form, .auth label { display: grid; gap: 8px; }
.auth form { gap: 14px; }
.inline-form, .row-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 12px; }
.row-form { margin: 0 0 7px; }
.danger button { border-color: #b84a4a; color: #9d2424; }
.metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 18px; }
.metrics div { background: #fff; border: 1px solid #d5dde3; border-radius: 8px; padding: 14px; }
.metrics strong { display: block; font-size: 26px; }
.metrics span { color: #596873; }
.flash { padding: 10px 12px; margin: 0 0 12px; border-radius: 6px; border: 1px solid #cfd7df; background: #fff; }
.flash.ok { border-color: #76a878; background: #edf8ee; }
.flash.error { border-color: #c77b7b; background: #fff0f0; }
.flash.warn { border-color: #c4a34a; background: #fff8d9; }
.flash.secret { border-color: #c4a34a; background: #fff8d9; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.flash.secret code { background: #fffbe6; padding: 2px 6px; border: 1px solid #c4a34a; border-radius: 4px; font-size: 14px; }
.confirm-card { background: #fff; border: 1px solid #d5dde3; border-radius: 8px; padding: 18px; max-width: 780px; }
.confirm-card h2 { margin: 0 0 8px; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.confirm-card h3 { margin: 18px 0 8px; font-size: 16px; }
.confirm-card .warn { color: #874a00; background: #fff8d9; padding: 8px 10px; border-radius: 6px; border: 1px solid #c4a34a; }
.confirm-form { display: grid; gap: 12px; margin-top: 14px; }
.confirm-form .actions { display: flex; gap: 10px; align-items: center; }
.confirm-form .actions a.cancel { color: #314450; padding: 7px 10px; }
.danger-btn { border-color: #b84a4a !important; color: #fff !important; background: #b84a4a !important; }
.danger-btn:hover { background: #9d2424 !important; }
table.kv { border: 1px solid #d5dde3; }
table.kv th { width: 200px; text-align: right; background: #f0f3f5; color: #314450; font-weight: 500; }
table.kv td { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.delete-link { color: #9d2424; padding: 4px 10px; border: 1px solid #b84a4a; border-radius: 6px; }
.delete-link:hover { background: #fff0f0; }
.copy-btn { background: #ffd86b; border-color: #c4a34a; }
.pager { display: flex; gap: 18px; align-items: center; margin: 14px 0; }
.pager span { color: #596873; }
@media (max-width: 760px) {
  .topbar { align-items: flex-start; flex-direction: column; padding: 12px; }
  .logout { margin-left: 0; }
  main { padding: 14px; }
  table { display: block; overflow-x: auto; }
  input, select, button { width: 100%; }
  .inline-form, .row-form { display: grid; }
}

