:root{--bg:#f6f7f9;--card:#fff;--ink:#1d2433;--mut:#6b7385;--line:#dfe3ea;--acc:#2456d6;
--red:#f8c9c4;--yellow:#fbe9b0;--green:#d7efd3;--none:#eceff3;--sub:#dfe6f5}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 -apple-system,"PingFang SC","Microsoft YaHei",Segoe UI,Arial,sans-serif}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
header{background:#fff;border-bottom:1px solid var(--line)}
.bar{max-width:1280px;margin:0 auto;padding:8px 16px;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}
.brand{font-weight:700;font-size:16px;color:var(--ink)}
nav{display:flex;flex-wrap:wrap;gap:4px 14px;flex:1}
nav a{padding:2px 0}nav a.on{font-weight:700;border-bottom:2px solid var(--acc)}
.user{color:var(--mut);font-size:13px;display:flex;gap:10px;align-items:center}
main{max-width:1280px;margin:0 auto;padding:16px}
h1{font-size:20px;margin:4px 0 12px}h2{font-size:16px;margin:22px 0 8px}h3{font-size:14px;margin:14px 0 6px}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:14px}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:14px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:10px 14px}
.stat b{display:block;font-size:24px}.stat span{color:var(--mut);font-size:12px}
.scroll{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:8px;margin-bottom:14px}
table{border-collapse:collapse;width:100%;font-size:13px}
th,td{padding:6px 9px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
th{background:#f1f3f7;text-align:center;font-weight:600}
td.l,th.l{text-align:left}td.c{text-align:center}
tr:last-child td{border-bottom:0}
.b{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px}
.b.red{background:var(--red)}.b.yellow{background:var(--yellow)}.b.green{background:var(--green)}
.b.none{background:var(--none)}.b.sub{background:var(--sub)}
td.red{background:var(--red)}td.yellow{background:var(--yellow)}
.msg{padding:9px 12px;border-radius:6px;margin-bottom:10px;border:1px solid}
.msg.ok{background:#e6f5e6;border-color:#b6dfb6}.msg.error{background:#fde8e6;border-color:#f3b8b2}
.msg.warn{background:#fff4d6;border-color:#f0d78a}
form.inline{display:inline;margin:0}
label{display:block;font-size:12px;color:var(--mut);margin-bottom:2px}
input,select,textarea,button{font:inherit}
input[type=text],input[type=password],input[type=number],input[type=date],input[type=file],select,textarea{
 padding:6px 8px;border:1px solid #c6ccd8;border-radius:6px;background:#fff;max-width:100%}
input.sm{width:78px}input.md{width:140px}
button,.btn{background:var(--acc);color:#fff;border:0;border-radius:6px;padding:6px 14px;cursor:pointer;display:inline-block}
button.sec,.btn.sec{background:#fff;color:var(--ink);border:1px solid #c6ccd8}
button.danger{background:#c9302c}
.row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin-bottom:8px}
.mut{color:var(--mut)}.small{font-size:12px}
.tabs{display:flex;gap:14px;margin-bottom:12px;border-bottom:1px solid var(--line)}
.tabs a{padding:6px 2px}.tabs a.on{font-weight:700;border-bottom:2px solid var(--acc)}
.login{max-width:340px;margin:80px auto}
.pager{display:flex;gap:12px;align-items:center;margin:8px 0}
.mailbox{background:#fff;border:1px solid var(--line);padding:12px;overflow-x:auto}
ul.flat{margin:4px 0;padding-left:18px}
@media(max-width:700px){main{padding:10px}.bar{padding:8px 10px}}
