/* ============================================================
   管理后台样式
   ============================================================ */
.admin{display:flex;min-height:100vh;background:var(--bg)}
.admin-side{
  width:232px;flex:0 0 232px;background:linear-gradient(180deg,#0b2e5c 0%,#0a2748 100%);
  color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;
}
.admin-brand{display:flex;align-items:center;gap:11px;padding:18px 18px 16px;border-bottom:1px solid rgba(255,255,255,.08)}
.admin-brand .logo-mark{width:38px;height:38px;flex:0 0 38px}
.admin-brand .logo-mark svg{width:21px;height:21px}
.admin-brand b{font-size:15px;line-height:1.3;color:#fff;display:block}
.admin-brand span{font-size:11px;color:rgba(255,255,255,.5)}
.admin-nav{padding:12px 10px;flex:1}
.admin-nav .grp{font-size:11px;color:rgba(255,255,255,.4);padding:14px 12px 6px;letter-spacing:1px}
.admin-nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:6px;color:rgba(255,255,255,.78);font-size:14.5px;margin-bottom:2px}
.admin-nav a:hover{background:rgba(255,255,255,.08);color:#fff}
.admin-nav a.on{background:var(--gold);color:#fff;font-weight:500}
.admin-nav a .dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.3);flex:0 0 7px}
.admin-nav a.on .dot{background:#fff}

.admin-main{flex:1;min-width:0;display:flex;flex-direction:column}
.admin-top{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:5}
.admin-top .crumb{font-size:14px;color:var(--ink-2)}
.admin-top .crumb b{color:var(--navy)}
.admin-user{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-2)}
.admin-user .av{width:32px;height:32px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px}
.admin-user a{color:var(--ink-2)}
.admin-user a:hover{color:var(--blue)}
.admin-user .sep{color:var(--line)}
.admin-content{padding:24px;flex:1}

.admin-card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);margin-bottom:20px}
.admin-card .hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.admin-card .hd h3{font-size:16px}
.admin-card .bd{padding:18px}
.admin-card .bd.flush{padding:0}

.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:20px}
.admin-stat{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px 18px}
.admin-stat b{display:block;font-size:25px;color:var(--navy);line-height:1.2}
.admin-stat span{font-size:12.5px;color:var(--muted)}
.admin-stat.blue b{color:var(--blue)}
.admin-stat.green b{color:var(--green)}
.admin-stat.gold b{color:var(--gold)}
.admin-stat.orange b{color:var(--orange)}
.admin-stat.red b{color:var(--red)}

.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.toolbar .sp{flex:1}
.toolbar form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

.mini{font-size:12px;padding:4px 10px}
.inline-form{display:inline}
.row-actions a,.row-actions button,.row-actions form{margin-right:4px}
.row-actions form:last-child,.row-actions a:last-child{margin-right:0}

.chart{display:flex;align-items:flex-end;gap:10px;height:170px;padding:10px 0}
.chart .bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;height:100%}
.chart .bar .col{width:100%;max-width:46px;background:linear-gradient(180deg,var(--blue),var(--navy));border-radius:4px 4px 0 0;min-height:2px}
.chart .bar small{font-size:11px;color:var(--muted)}
.chart .bar .v{font-size:12px;color:var(--ink-2);font-weight:600}

.mono{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.3px}
.kv{font-size:13px;color:var(--muted)}

/* 登录页 */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(120deg,#08284f,#164b8c);padding:20px}
.login-box{width:100%;max-width:400px;background:#fff;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden}
.login-box .lh{padding:24px 30px;background:linear-gradient(120deg,#0b2e5c,#174d8f);color:#fff}
.login-box .lh .logo-mark{background:rgba(255,255,255,.15)}
.login-box .lh h2{color:#fff;font-size:19px;margin-top:12px}
.login-box .lh p{color:rgba(255,255,255,.7);font-size:12.5px;margin:4px 0 0}
.login-box .lb{padding:26px 30px}

@media(max-width:900px){
  .admin-side{display:none}
  .admin-content{padding:16px}
  .chart .bar .col{max-width:30px}
}
