/* Re 授权后台 —— 克制风格：白卡片浮在浅灰底上，靠留白和字号分层级。
   不用渐变、不用阴影、不用表情当图标。 */
:root{
  --page:#f2f2f7; --card:#fff; --ink:#1d1d1f; --ink2:#6e6e73; --ink3:#a1a1a6;
  --hair:#e5e5ea; --accent:#0071e3; --ok:#34c759; --warn:#ff9f0a; --bad:#ff3b30;
}
*{box-sizing:border-box}
body{margin:0;background:var(--page);color:var(--ink);
  font:13px/1.6 "Microsoft YaHei","PingFang SC",-apple-system,Segoe UI,sans-serif}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

/* 顶栏 */
.topbar{background:var(--card);border-bottom:1px solid var(--hair);
  display:flex;align-items:center;gap:22px;padding:0 22px;height:52px}
.brand{font-size:14px;font-weight:700;letter-spacing:.2px}
.nav{display:flex;gap:18px;flex:1}
.nav a{color:var(--ink2);font-size:13px}
.nav a.on{color:var(--ink);font-weight:700}
.who{color:var(--ink3);font-size:12px}

.wrap{max-width:1180px;margin:0 auto;padding:22px}
.card{background:var(--card);border-radius:10px;padding:18px 20px;margin-bottom:14px}
.card>h2{margin:0 0 2px;font-size:13px;font-weight:700}
.card>p.sub{margin:0 0 14px;color:var(--ink3);font-size:12px}

/* 数字块 */
.stats{display:flex;gap:34px;flex-wrap:wrap}
.stat b{display:block;font-size:22px;font-weight:700;letter-spacing:-.3px}
.stat span{color:var(--ink3);font-size:11px}

/* 表单 */
label{display:block;color:var(--ink2);font-size:12px;margin:0 0 5px}
input[type=text],input[type=password],input[type=number],select,textarea{
  width:100%;padding:8px 10px;border:1px solid #d1d1d6;border-radius:7px;background:#fff;
  font:13px/1.5 inherit;color:var(--ink);outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent)}
.row{display:flex;gap:12px;flex-wrap:wrap}
.row>div{flex:1;min-width:150px}
.field{margin-bottom:12px}

.btn{display:inline-block;padding:8px 16px;border:0;border-radius:980px;cursor:pointer;
  background:var(--accent);color:#fff;font:13px/1 inherit;font-weight:700}
.btn.quiet{background:#fff;color:var(--ink);border:1px solid var(--hair)}
.btn.danger{background:#fff;color:var(--bad);border:1px solid var(--hair)}
.btn.sm{padding:4px 11px;font-size:12px;font-weight:400}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* 表格 */
table{width:100%;border-collapse:collapse;font-size:12.5px}
th{color:var(--ink3);font-weight:400;text-align:left;padding:6px 8px;border-bottom:1px solid var(--hair);
  white-space:nowrap}
td{padding:7px 8px;border-bottom:1px solid #f4f4f6;vertical-align:middle}
tr:last-child td{border-bottom:0}
td.mono,span.mono{font-family:Consolas,Menlo,monospace;font-size:12px}

/* 标签 */
.tag{display:inline-block;padding:1px 8px;border-radius:980px;font-size:11px;white-space:nowrap}
.tag.ok{background:#e8f8ec;color:#1c7a34}
.tag.grey{background:#f0f0f3;color:var(--ink2)}
.tag.bad{background:#fdecea;color:#b3261e}
.tag.warn{background:#fff4e5;color:#9a5b00}

/* 提示条 */
.flash{padding:9px 13px;border-radius:8px;margin-bottom:14px;font-size:12.5px}
.flash.ok{background:#e8f8ec;color:#1c7a34}
.flash.err{background:#fdecea;color:#b3261e}

/* 登录页 */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center}
.login .card{width:330px;margin:0;padding:28px 26px}
.login h1{margin:0 0 4px;font-size:17px;font-weight:700;letter-spacing:-.2px}
.login p.sub{margin:0 0 20px;color:var(--ink3);font-size:12px}
.muted{color:var(--ink3);font-size:12px}
.empty{color:var(--ink3);font-size:12.5px;padding:14px 0}
