:root{color-scheme:light}
*{box-sizing:border-box}
body{margin:0;background:#f4f6f1;font:14px/1.6 'Segoe UI','Microsoft YaHei',sans-serif;color:#232722}
a{color:#4f6b43;text-decoration:none}
.card{width:min(92vw,380px);margin:12vh auto;background:#fff;border:1px solid #e3e8db;border-radius:18px;padding:30px;box-shadow:0 24px 70px #26331b14;display:flex;flex-direction:column;gap:10px}
.card .logo{width:46px;height:48px;border-radius:13px;background:#263e2c;color:#f0f1db;display:grid;place-items:center;font-size:27px;margin-bottom:6px}
.card h1{font-size:20px;font-weight:600;margin:0}
.card p{color:#8a8d85;font-size:12px;margin:0 0 8px}
input{border:1px solid #dfe3d7;border-radius:9px;padding:11px 12px;font-size:14px;outline:0;background:#fff}
input:focus{border-color:#8a9b85;box-shadow:0 0 0 3px #eef3e7}
button{border:1px solid #dfe6d7;background:#fff;border-radius:9px;padding:8px 13px;font-size:12px;cursor:pointer;color:#4a5642}
button:hover{background:#f7f9f3}
button.primary{background:#506b43;border-color:#506b43;color:#fff}
button.primary:hover{background:#465f3b}
button.danger{color:#a24b36;border-color:#e7d6cf}
button.danger:hover{background:#fbeae4}
.err{color:#a65340;font-size:12px}
.bar{display:flex;align-items:center;gap:12px;padding:14px 26px;background:#fff;border-bottom:1px solid #e6e9df;position:sticky;top:0;z-index:5}
.bar .mark{width:34px;height:36px;border-radius:10px;background:#263e2c;color:#f0f1db;display:grid;place-items:center;font-size:20px}
.bar .brand{display:flex;flex-direction:column;line-height:1.25}
.bar .brand strong{font-size:15px}
.bar .brand small{font-size:10px;color:#98a08f;letter-spacing:1px}
.bar .spacer{flex:1}
main{padding:24px;display:flex;flex-direction:column;gap:18px;max-width:1320px;margin:0 auto}
.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.stat{background:#fff;border:1px solid #e3e8db;border-radius:13px;padding:14px 16px;box-shadow:0 6px 22px #26331b08}
.stat b{display:block;font-size:26px;font-weight:600;color:#3c5534;line-height:1.3}
.stat span{font-size:12px;color:#8a9480}
.panel{background:#fff;border:1px solid #e3e8db;border-radius:15px;padding:18px 20px;box-shadow:0 6px 24px #26331b08}
.panel h2{font-size:16px;margin:0 0 12px;font-weight:550}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.panel-head h2{margin:0}
.panel-head .hint{font-size:11px;color:#98a08f}
#create{display:flex;gap:10px;flex-wrap:wrap}
#create input{flex:1;min-width:180px}
.msg{color:#6d7a60;font-size:12px;margin:10px 0 0;min-height:18px}
.table-wrap{overflow:auto;border:1px solid #eef1e8;border-radius:11px}
table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:900px}
th,td{padding:11px 12px;border-bottom:1px solid #eef1e8;text-align:left;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fafcf7}
th{color:#7d8a70;font-weight:500;background:#f8faf4;position:sticky;top:0}
tr.disabled td{color:#a0a79a}
.badge{display:inline-block;padding:1px 9px;border-radius:999px;font-size:11px;background:#eef1e6;color:#5d6f4d}
.badge.admin{background:#e3eeda;color:#3f5c31}
.badge.off{background:#fbe9e4;color:#a65340}
td.num{font-variant-numeric:tabular-nums}
.row-actions{display:flex;gap:6px}
@media(max-width:800px){main{padding:14px}.bar{padding:12px 14px}}
dialog#pwDialog{border:1px solid #e3e8db;border-radius:16px;padding:22px;width:min(92vw,380px);box-shadow:0 24px 70px #26331b26;background:#fff}
dialog#pwDialog::backdrop{background:#26342155;backdrop-filter:blur(2px)}
dialog#pwDialog h2{font-size:16px;margin:0 0 12px;font-weight:550}
dialog#pwDialog input{width:100%}
dialog#pwDialog .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
