*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:#f3f5f9;color:#1d2433}
header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:#1d3557;color:#fff}
header a{color:#fff}.brand{font-weight:700;text-decoration:none;font-size:18px}
main{max-width:820px;margin:20px auto;padding:0 14px}
.card{background:#fff;border-radius:10px;padding:16px;margin:10px 0;box-shadow:0 1px 3px rgba(0,0,0,.1)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.dev{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit}
label{display:block;margin:8px 0;font-weight:500}
input,select,textarea{width:100%;padding:8px;border:1px solid #c5ccd8;border-radius:6px;font:inherit}
input[type=checkbox]{width:24px;height:24px}
button{padding:8px 16px;border:0;border-radius:6px;background:#2a6fdb;color:#fff;font:inherit;cursor:pointer}
button.danger{background:#c0392b}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid #eef0f4}
.row>label{flex:1 1 180px;margin:0}.row input[type=text],.row input[type=number],.row textarea{flex:2 1 200px;width:auto}
.badge{padding:2px 10px;border-radius:12px;font-size:13px;color:#fff}.badge.on{background:#2e9e5b}.badge.off{background:#8b93a1}
.err{color:#c0392b}.token code{display:block;padding:10px;background:#eef6ff;word-break:break-all;margin:8px 0}
code{background:#eef0f4;padding:2px 5px;border-radius:4px;word-break:break-all}
table{width:100%;font-size:14px;border-collapse:collapse}td{padding:4px 6px;border-bottom:1px solid #eef0f4}
.inline{display:flex;gap:8px;margin-bottom:10px}small{color:#6b7385;font-weight:400}
form.card{max-width:420px}
.btn{display:inline-block;padding:6px 12px;border-radius:6px;background:#2a6fdb;color:#fff;text-decoration:none}
.nav{display:flex;gap:14px;margin:6px 0 14px}.nav a{font-weight:600}
.scroll{overflow-x:auto}table.list th{text-align:left;padding:6px;border-bottom:2px solid #dde1e9;white-space:nowrap}
table.list td{white-space:nowrap}.inline form{margin:0}
