*{box-sizing:border-box}body{margin:0;font:14px/1.45 Verdana,Segoe UI,sans-serif;color:#222;background:#f4f6f8}
.top{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;background:#fff;border-bottom:3px solid #4682b4}
.top h1{font-size:18px;margin:0;color:#2c5d86}.user{display:flex;gap:14px;align-items:center}
.layout{display:flex;min-height:calc(100vh - 56px)}
.menu{width:230px;padding:12px;background:#fff;border-right:1px solid #dde}
.menu h2{font-size:12px;text-transform:uppercase;color:#678;margin:14px 0 4px}
.menu a,.menu .off{display:block;padding:5px 8px;border-radius:4px;text-decoration:none}
.menu a{color:#1b4f7a}.menu a:hover{background:#e8f0f8}.menu .off{color:#aab}
main{flex:1;padding:20px;overflow-x:auto}
.card{background:#fff;border:1px solid #dde;border-radius:6px;padding:14px 18px;margin-bottom:16px}.narrow{max-width:460px}
.card h3 small{color:#889;font-weight:normal}
label{display:block;margin:10px 0 3px;font-weight:600;font-size:12px}
input{width:100%;padding:6px 8px;border:1px solid #bcc;border-radius:4px}
button,.btn{background:#4682b4;color:#fff;border:0;border-radius:4px;padding:7px 14px;cursor:pointer;text-decoration:none;display:inline-block;margin-top:12px}
button.link{background:none;color:#1b4f7a;padding:0;margin:0;text-decoration:underline}button.danger{color:#b22}
form.inline{display:inline}.actions{display:flex;gap:12px;align-items:center}
table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:6px 8px;border-bottom:1px solid #e3e6ea;text-align:left}th{background:#eef2f6;font-size:12px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 16px}.grid .full{grid-column:1/-1}
.err{color:#b22;font-size:12px}.ok{background:#e6f4ea;border:1px solid #9c9;padding:8px 12px;border-radius:4px;margin-bottom:12px}
.bar{display:flex;gap:8px;margin-bottom:12px}.bar input{max-width:300px}.bar button,.bar .btn{margin-top:0}
.errbox{background:#fdeaea;border:1px solid #d99;padding:8px 12px;border-radius:4px;margin-bottom:12px}
.tabs{display:flex;gap:6px;margin:0 0 12px}.tabs a{padding:6px 12px;border:1px solid #cdd;border-radius:4px;text-decoration:none;color:#1b4f7a;background:#fff}.tabs a.on{background:#4682b4;color:#fff;border-color:#4682b4}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px 16px;margin:8px 0}.checks.one{grid-template-columns:1fr}
label.chk{display:flex;align-items:center;gap:6px;font-weight:normal;margin:3px 0}label.chk input{width:auto}
.checks-inline{display:flex;gap:20px;flex-wrap:wrap}
.cols{display:grid;grid-template-columns:minmax(260px,1fr) 2fr;gap:16px;align-items:start}
.tree a{display:block;padding:3px 6px;text-decoration:none;color:#1b4f7a;border-radius:3px;white-space:pre}.tree a:hover{background:#e8f0f8}.tree a.sel{background:#4682b4;color:#fff}
button.secondary{background:#e8eef4;color:#1b4f7a;border:1px solid #bcd}button.secondary.danger{color:#b22}
tr.dim td{color:#999}pre{white-space:pre-wrap;max-height:240px;overflow:auto;background:#f4f6f8;padding:6px}textarea{width:100%;padding:6px 8px;border:1px solid #bcc;border-radius:4px}
select{padding:6px 8px;border:1px solid #bcc;border-radius:4px;background:#fff}
