/* Admin dashboard — vintage-paper theme (extends retro.css) */
.admin-wrap { max-width: 1040px; }

.login-box { max-width: 420px; margin: 70px auto; }

/* --- stat tiles --- */
.stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
  margin: 20px 0 8px;
}
.stat {
  border: 3px solid var(--ink);
  border-radius: 8px;
  padding: 18px;
  text-align: center;
  background: var(--card-2);
  box-shadow: 3px 3px 0 var(--shadow);
}
.stat .num { font-family: var(--font); font-size: 1.5rem; color: var(--rust); margin: 12px 0 6px; }
.stat .lbl { font-family: var(--font); font-size: 0.5rem; color: var(--ink-soft); letter-spacing: 1px; }
.stat.pink { border-color: var(--rust); }
.stat.pink .num { color: var(--rust-dark); }
.stat.blue { border-color: var(--teal); }
.stat.blue .num { color: var(--teal); }

/* --- progress bars --- */
.bar-row { margin: 14px 0; }
.bar-row .bar-label { font-family: var(--font); font-size: 0.5rem; color: var(--ink-soft); margin-bottom: 8px; display: flex; justify-content: space-between; }
.bar-track { background: #e0d5b8; border: 2px solid var(--ink); border-radius: 5px; height: 22px; overflow: hidden; }
.bar-fill { height: 100%; background: linear-gradient(90deg, var(--teal), var(--olive)); transition: width 0.6s; }
.bar-fill.vip { background: linear-gradient(90deg, var(--gold), var(--rust)); }

/* --- table --- */
table { width: 100%; border-collapse: collapse; font-size: 1rem; margin-top: 14px; }
th, td { border: 2px solid #d6cbac; padding: 9px 8px; text-align: left; }
th { font-family: var(--font); font-size: 0.5rem; letter-spacing: 1px; color: var(--card); background: var(--ink); }
td { color: var(--ink); }
tr:hover td { background: #efe7cf; }

/* --- status badges --- */
.badge { font-family: var(--font); padding: 3px 7px; border-radius: 4px; font-size: 0.45rem; border: 2px solid var(--ink); }
.badge.paid { background: #e2ecd2; color: var(--olive-dark); border-color: var(--olive); }
.badge.pending { background: #f6ead0; color: #9a6a1e; border-color: var(--gold); }
.badge.failed { background: #f3ddcf; color: var(--rust-dark); border-color: var(--rust); }
.badge.yes { background: #e2ecd2; color: var(--olive-dark); border-color: var(--olive); }
.badge.no { color: var(--ink-soft); border-color: #d6cbac; }

/* --- toolbar --- */
.toolbar { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin: 16px 0; }
.toolbar input, .toolbar select {
  font-family: var(--font-body); font-size: 1.1rem; padding: 9px 10px;
  background: #fbf7ea; color: var(--ink); border: 3px solid var(--ink); border-radius: 5px;
}
.toolbar input:focus, .toolbar select:focus { border-color: var(--rust); outline: none; }
.toolbar .btn { width: auto; padding: 10px 16px; font-size: 0.55rem; }

/* --- live indicator --- */
.live-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--olive); box-shadow: 0 0 0 2px var(--card); animation: pulse 1.4s infinite; }
@keyframes pulse { 50% { opacity: 0.3; } }
