:root{
  --bg:#0f1419; --card:#1a2129; --card2:#222b35; --line:#2b3642;
  --text:#e8eef5; --muted:#8fa3b8; --acc:#4f8ef7; --ok:#3fbf7f; --err:#e05656;
  --warn:#d9a03f;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font:15px/1.6 system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
.wrap{max-width:1020px;margin:0 auto;padding:0 20px}
a{color:var(--acc);text-decoration:none}

.topbar{background:#141b23;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.topbar-in{display:flex;align-items:center;gap:24px;height:56px}
.brand{font-size:18px;font-weight:700;color:var(--text)}
.nav{display:flex;align-items:center;gap:16px;margin-left:auto;font-size:14px}
.nav a{color:var(--muted)}
.nav a:hover{color:var(--text)}
.who{color:var(--muted);border-left:1px solid var(--line);padding-left:16px}
.logout{color:var(--err)!important}

main{padding:28px 0 60px}
h1{font-size:24px;margin-bottom:6px}
h2.section{font-size:16px;margin:28px 0 12px;color:var(--acc)}
.sub{color:var(--muted);margin-bottom:18px}
.mono{font-family:ui-monospace,Consolas,monospace;font-size:13px;color:var(--muted)}

.flash{padding:10px 14px;border-radius:8px;margin:10px 0;font-size:14px}
.flash.ok{background:#14301f;color:var(--ok);border:1px solid #1d4a30}
.flash.error{background:#361a1a;color:var(--err);border:1px solid #542626}

.auth-card{max-width:400px;margin:60px auto;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:32px}
.auth-card.narrow{max-width:400px}
.auth-card h1{font-size:22px}
.stack{display:flex;flex-direction:column;gap:12px;margin-top:18px}
input,select{background:var(--card2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:10px 12px;font-size:15px;outline:none}
input:focus,select:focus{border-color:var(--acc)}
input::placeholder{color:#5a6d82}
.btn{background:var(--card2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:9px 16px;font-size:14px;cursor:pointer}
.btn:hover{border-color:var(--acc)}
.btn.primary{background:var(--acc);border-color:var(--acc);font-weight:600}
.btn.danger{color:var(--err)}
.btn.danger:hover{border-color:var(--err)}

.hello h1{font-size:26px}
.hello p{color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;margin-top:24px}
.card{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;transition:transform .12s,border-color .12s}
.card:hover{transform:translateY(-2px);border-color:var(--acc)}
.card[aria-disabled]{opacity:.45;cursor:not-allowed}
.card-icon{font-size:30px}
.card-title{font-weight:600;margin-bottom:2px}
.card-desc{color:var(--muted);font-size:13px}
.card-arrow{margin-left:auto;color:var(--muted)}

.grid-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;align-items:end}
.inline{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:14px}
.inline input{width:auto;accent-color:var(--acc)}
.tools-pick{display:flex;flex-wrap:wrap;gap:6px;grid-column:1/-1}
.chip{display:inline-flex;align-items:center;gap:5px;background:var(--card2);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:13px;color:var(--muted);cursor:pointer}
.chip input{accent-color:var(--acc)}

.user-row,.tool-row{display:grid;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px}
.user-row{grid-template-columns:auto 1fr}
.u-id{color:var(--muted);font-family:ui-monospace,monospace;font-size:13px;padding-top:4px}
.u-name{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.tag{font-size:12px;padding:1px 8px;border-radius:999px;background:var(--card2);color:var(--muted)}
.tag.admin{background:#1b2a44;color:var(--acc)}
.tag.off{color:var(--err)}
.u-meta{color:#5a6d82;font-size:12px;margin-left:auto}
.u-fields,.t-fields{display:grid;gap:8px;grid-column:1/-1}
.u-fields{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.u-actions,.t-actions{display:flex;gap:8px;grid-column:1/-1}
.tool-row{grid-template-columns:auto 1fr}
.t-icon{font-size:26px;padding-top:4px}
