/* =====================================================================
   macv.net admin — macOS 风格后台
   ===================================================================== */
body.admin { background: var(--bg); }
.admin-wrap { display: grid; grid-template-columns: 240px 1fr; min-height: 100vh; }

/* 侧栏 */
.sidebar {
  background: var(--glass-bg);
  backdrop-filter: blur(22px) saturate(180%);
  -webkit-backdrop-filter: blur(22px) saturate(180%);
  border-right: 1px solid var(--glass-border);
  padding: 22px 14px;
  position: sticky; top: 0; height: 100vh; overflow-y: auto;
}
.sidebar .brand {
  display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;
  margin-bottom: 24px; padding: 0 8px;
}
.sidebar .brand-logo { width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#0a84ff,#5e5ce6);display:grid;place-items:center;color:#fff;font-size:16px }
.sidebar nav a {
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:12px;color:var(--text);font-size:14px;font-weight:500;
  transition: background .2s;
}
.sidebar nav a:hover, .sidebar nav a.active { background: var(--accent-soft); color: var(--accent); }
.sidebar .foot { margin-top:auto;padding-top:20px;color:var(--text-tertiary);font-size:12px }

/* 主区 */
.main { padding: 28px 34px; }
.topbar {
  display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;
}
.topbar h1 { font-size:26px;font-weight:700;letter-spacing:-.02em }
.topbar .actions { display:flex;gap:10px;align-items:center }
.topbar .user { font-size:14px;color:var(--text-secondary) }

/* 统计卡 */
.stat-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px }
.stat {
  background:var(--card-bg);border:1px solid var(--glass-border);border-radius:var(--radius);
  padding:20px;box-shadow:var(--shadow-card);
}
.stat .num { font-size:30px;font-weight:700;letter-spacing:-.02em }
.stat .lbl { color:var(--text-tertiary);font-size:13px;margin-top:4px }
.stat .ico { font-size:22px }

/* 表格 */
.table-wrap {
  background:var(--card-bg);border:1px solid var(--glass-border);border-radius:var(--radius);
  box-shadow:var(--shadow-card);overflow:hidden;
}
table.data { width:100%;border-collapse:collapse;font-size:14px }
table.data th, table.data td { padding:14px 16px;text-align:left;border-bottom:1px solid var(--border-soft) }
table.data th { background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:13px }
table.data tr:last-child td { border-bottom:none }
table.data tr:hover { background:var(--border-soft) }
.icon-mini { width:34px;height:34px;border-radius:8px;object-fit:cover;background:var(--accent);display:inline-grid;place-items:center;color:#fff;font-size:16px;vertical-align:middle;margin-right:8px }
.row-actions a { margin-right:8px;font-size:13px }

/* 表单 */
.form-panel {
  background:var(--card-bg);border:1px solid var(--glass-border);border-radius:var(--radius);
  box-shadow:var(--shadow-card);padding:28px;max-width:920px;
}
.field { margin-bottom:20px }
.field label { display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:6px }
.field input, .field select, .field textarea {
  width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:12px;
  background:var(--bg-elevated);color:var(--text);font:inherit;outline:none;transition:border .2s,box-shadow .2s;
}
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft) }
.field textarea { min-height:90px;resize:vertical;font-family:inherit }
.field .hint { color:var(--text-tertiary);font-size:12px;margin-top:4px }
.lang-tabs { display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap }
.lang-tabs button {
  padding:6px 14px;border-radius:980px;border:1px solid var(--border-soft);background:var(--bg-elevated);
  color:var(--text-secondary);cursor:pointer;font:inherit;font-size:13px;
}
.lang-tabs button.active { background:var(--accent);color:#fff;border-color:var(--accent) }
.lang-fields .lf { display:none } .lang-fields .lf.active { display:block }

.form-row { display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px }
.form-row-2 { display:grid;grid-template-columns:1fr 1fr;gap:16px }
@media(max-width:720px){ .form-row,.form-row-2{grid-template-columns:1fr} .stat-grid{grid-template-columns:1fr 1fr} .admin-wrap{grid-template-columns:1fr} .sidebar{position:relative;height:auto} }

.btn-row { display:flex;gap:12px;margin-top:24px }
.flash { padding:10px 16px;border-radius:12px;margin-bottom:18px;font-size:14px }
.flash.ok { background:rgba(52,199,89,.14);color:var(--green) }
.flash.err { background:rgba(255,59,48,.14);color:var(--red) }

/* 登录页 */
.login-wrap { min-height:100vh;display:grid;place-items:center;padding:40px 22px }
.login-card {
  background:var(--card-bg);backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);
  border:1px solid var(--glass-border);box-shadow:var(--shadow-pop);
  border-radius:var(--radius-lg);padding:40px;width:100%;max-width:380px;
}
.login-card .logo { text-align:center;font-size:48px;margin-bottom:6px }
.login-card h1 { text-align:center;font-size:22px;font-weight:700;margin-bottom:4px }
.login-card p { text-align:center;color:var(--text-tertiary);font-size:14px;margin-bottom:24px }
.login-card .field input { padding:12px 14px }
.login-card .btn-primary { width:100%;justify-content:center }
