Redesign visitor log as readable cards replacing dense table

Each visit is now a card showing name/IP, page path, location, device,
visit count, new/returning tag, and timestamp at a glance. Logged-in users
show their display name prominently. Click to expand still shows full page
history and raw details. Adds a purple "Logged in" tag for study users.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
nmemmert
2026-06-17 14:24:16 -04:00
parent 31426fccba
commit 945a2e160e
2 changed files with 185 additions and 69 deletions
+124
View File
@@ -7886,6 +7886,130 @@
color: var(--brand-gold);
}
/* ── Visitor cards ── */
.admin-visitor-cards {
display: flex;
flex-direction: column;
gap: 0.4rem;
margin-top: 0.5rem;
}
.admin-visitor-card {
border: 1px solid rgba(201, 168, 76, 0.12);
border-radius: 0.5rem;
background: #0d0d0a;
overflow: hidden;
transition: border-color 0.15s;
}
.admin-visitor-card--expanded {
border-color: rgba(201, 168, 76, 0.35);
}
.admin-visitor-card__main {
display: flex;
align-items: center;
gap: 1rem;
width: 100%;
padding: 0.65rem 1rem;
background: none;
border: none;
cursor: pointer;
text-align: left;
color: inherit;
}
.admin-visitor-card__main:hover {
background: rgba(201, 168, 76, 0.04);
}
.admin-visitor-card__left {
display: flex;
flex-direction: column;
gap: 0.15rem;
flex: 1;
min-width: 0;
}
.admin-visitor-card__name {
font-size: 0.88rem;
font-weight: 600;
color: var(--brand-warm-white);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.admin-visitor-card__path {
font-size: 0.78rem;
color: var(--brand-gold);
opacity: 0.8;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-family: monospace;
}
.admin-visitor-card__right {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 0.2rem;
flex-shrink: 0;
}
.admin-visitor-card__meta {
font-size: 0.76rem;
color: #8a7f5a;
white-space: nowrap;
}
.admin-visitor-card__tags {
display: flex;
align-items: center;
gap: 0.4rem;
flex-wrap: wrap;
justify-content: flex-end;
}
.admin-visitor-card__time {
font-size: 0.72rem;
color: #666;
}
.admin-visitor-card__chevron {
font-size: 0.65rem;
color: #555;
flex-shrink: 0;
margin-left: 0.25rem;
}
.admin-visitor-tag--user {
background: #1a1a3a;
color: #8888dd;
border: 1px solid #2a2a5a;
}
.admin-visitor-card__detail {
padding: 0.75rem 1rem 1rem;
border-top: 1px solid rgba(201, 168, 76, 0.1);
background: #080807;
}
.admin-visitor-card__detail-meta {
display: flex;
flex-wrap: wrap;
gap: 0.5rem 1.5rem;
margin-bottom: 0.75rem;
font-size: 0.78rem;
color: #8a7f5a;
}
.admin-visitor-card__detail-meta strong {
color: #b0a48c;
font-weight: 600;
}
/* ── Podcast hub tabs ── */
.admin-tabs--podcast {
margin-bottom: 2rem;