/* AITLab 账号中枢 —— 深色科技风（与产品矩阵一致） */
:root{
  --bg:#0a0f1e; --bg2:#0d1428; --card:rgba(17,25,48,.72); --line:rgba(148,180,255,.14);
  --ink:#e8eefc; --dim:#93a3c4; --cy:#22d3ee; --gr:#34d399; --vi:#818cf8; --red:#fb7185; --amber:#fbbf24;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  background:radial-gradient(1100px 600px at 80% -10%,rgba(34,211,238,.08),transparent 60%),
    radial-gradient(900px 500px at 0% 100%,rgba(129,140,248,.08),transparent 60%),var(--bg);
  color:var(--ink);min-height:100vh}
.bg-grid{position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:radial-gradient(rgba(148,180,255,.09) 1px,transparent 1px);background-size:32px 32px;
  mask-image:radial-gradient(80% 80% at 50% 30%,#000,transparent)}
.hidden{display:none!important}

/* ── 登录卡 ── */
.login-wrap{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login-card{width:380px;padding:36px 34px 28px;border-radius:18px;background:var(--card);
  border:1px solid var(--line);backdrop-filter:blur(16px);
  box-shadow:0 24px 60px rgba(2,6,18,.5);animation:cardIn .6s cubic-bezier(.22,1,.36,1)}
@keyframes cardIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.kicker{font-size:10.5px;letter-spacing:4px;color:var(--cy);font-weight:600}
.login-card h1{margin-top:10px;font-size:24px}
.sub{margin:8px 0 24px;font-size:13px;color:var(--dim)}
.field{display:block;margin-bottom:16px}
.field span{display:block;font-size:12.5px;color:var(--dim);margin-bottom:7px}
.field input{width:100%;padding:12px 14px;border-radius:11px;border:1px solid var(--line);
  background:rgba(8,13,28,.7);color:var(--ink);font-size:14.5px;outline:none;transition:.25s}
.field input:focus{border-color:rgba(34,211,238,.6);box-shadow:0 0 0 3px rgba(34,211,238,.12)}
.err{min-height:18px;font-size:12.5px;color:var(--red);margin-bottom:8px}
.back{display:block;margin-top:18px;text-align:center;font-size:12.5px;color:var(--dim);text-decoration:none}
.back:hover{color:var(--cy)}

/* ── 按钮 ── */
.btn{border:0;border-radius:10px;padding:11px 18px;font-size:14px;font-weight:600;cursor:pointer;
  transition:transform .15s,filter .2s,box-shadow .2s;color:var(--ink);background:rgba(148,180,255,.1)}
.btn:hover{filter:brightness(1.12)}
.btn:active{transform:scale(.97)}
.btn.primary{background:linear-gradient(94deg,var(--cy),var(--gr));color:#04101c}
.btn.ghost{background:transparent;border:1px solid var(--line)}
.btn.ghost:hover{border-color:rgba(34,211,238,.5);color:var(--cy)}
.btn.danger{background:transparent;border:1px solid rgba(251,113,133,.35);color:var(--red)}
.btn.danger:hover{background:rgba(251,113,133,.1)}
.btn.block{width:100%}
.btn.sm{padding:7px 13px;font-size:12.5px;border-radius:8px}
.btn:disabled{opacity:.55;cursor:wait}

/* ── 顶栏 ── */
.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;
  padding:14px 28px;background:rgba(10,15,30,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand-mini{display:flex;align-items:center;gap:10px;font-size:15px}
.hex-dot{width:12px;height:12px;background:conic-gradient(from 30deg,var(--cy),var(--vi),var(--gr),var(--cy));
  clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);animation:spinHue 6s linear infinite}
@keyframes spinHue{to{filter:hue-rotate(360deg)}}
.env{font-size:12px;color:var(--dim);margin-left:6px}
.top-actions{display:flex;align-items:center;gap:10px}
.who{font-size:12.5px;color:var(--dim);margin-right:6px}
.who b{color:var(--cy)}

/* ── 内容 ── */
.content{position:relative;z-index:1;max-width:1280px;margin:0 auto;padding:26px 28px 60px}
.projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:18px}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;
  backdrop-filter:blur(12px);animation:cardIn .5s ease both}
.pcard:nth-child(2){animation-delay:.08s}.pcard:nth-child(3){animation-delay:.16s}
.pcard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.pcard-head h2{font-size:16.5px;font-weight:700}
.pcard-url{font-size:12px;color:var(--dim);margin-top:4px;text-decoration:none;display:inline-block}
.pcard-url:hover{color:var(--cy)}
.meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.tag{font-size:11px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);color:var(--dim)}
.tag.up{color:var(--gr);border-color:rgba(52,211,153,.4)}
.tag.down{color:var(--red);border-color:rgba(251,113,133,.4)}
.tag.hash{color:var(--vi);border-color:rgba(129,140,248,.4)}

.utable{width:100%;border-collapse:collapse;margin-top:14px;font-size:13px}
.utable th{text-align:left;color:var(--dim);font-weight:500;font-size:11.5px;padding:7px 8px;
  border-bottom:1px solid var(--line);letter-spacing:.5px}
.utable td{padding:9px 8px;border-bottom:1px solid rgba(148,180,255,.07);vertical-align:middle}
.utable tr:last-child td{border-bottom:0}
.utable .mono{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--dim)}
.role-b{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px}
.role-admin{background:rgba(34,211,238,.12);color:var(--cy)}
.role-user{background:rgba(148,180,255,.1);color:var(--dim)}
.st-on{color:var(--gr)}.st-off{color:var(--red)}
.rowbtns{display:flex;gap:6px;justify-content:flex-end}
.empty{color:var(--dim);font-size:13px;padding:14px 8px}
.pfoot{margin-top:14px;display:flex;justify-content:flex-end}

/* ── 审计 ── */
.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;margin-top:18px}
.panel-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}
.panel-head h2{font-size:16px}
.hint{font-size:12px;color:var(--dim)}
.audit-list{max-height:300px;overflow:auto;font-size:13px}
.audit-row{display:flex;gap:12px;padding:8px 4px;border-bottom:1px solid rgba(148,180,255,.06)}
.audit-row:last-child{border-bottom:0}
.audit-at{color:var(--dim);font-family:ui-monospace,monospace;font-size:11.5px;flex-shrink:0;width:150px}
.audit-act{flex-shrink:0;width:110px}
.a-act-create-user{color:var(--gr)}.a-act-delete-user{color:var(--red)}
.a-act-reset-password{color:var(--amber)}.a-act-toggle-user{color:var(--vi)}
.audit-detail{color:#c6d3ee}

/* ── 弹窗 ── */
.dlg{border:1px solid var(--line);border-radius:16px;background:#101830;color:var(--ink);
  padding:26px 26px 20px;width:min(400px,92vw);box-shadow:0 30px 80px rgba(0,0,0,.5)}
.dlg::backdrop{background:rgba(4,8,18,.66);backdrop-filter:blur(3px)}
.dlg h3{font-size:17px;margin-bottom:6px}
.dlg-desc{font-size:12.5px;color:var(--dim);margin-bottom:16px}
.dlg-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}
.dlg .field input,.dlg select{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--line);
  background:rgba(8,13,28,.7);color:var(--ink);font-size:14px;outline:none}
.dlg select option{background:#101830}

@media (max-width:640px){
  .content{padding:18px 14px 40px}
  .topbar{padding:12px 14px}
  .env{display:none}
}
