diff --git a/frontend/js/admin/sections/overview.js b/frontend/js/admin/sections/overview.js index 499a3c7..cf2fdc8 100644 --- a/frontend/js/admin/sections/overview.js +++ b/frontend/js/admin/sections/overview.js @@ -79,8 +79,27 @@ .ov-quick-btn { display: flex; align-items: center; gap: 10px; padding: 14px 16px; background: var(--surface); border: 1px solid var(--border); border-radius: 12px; cursor: pointer; font-family: inherit; font-size: 0.88rem; font-weight: 600; color: var(--text); text-align: left; transition: background .12s, border-color .12s, transform .12s; } .ov-quick-btn:hover { background: rgba(155,93,229,0.06); border-color: rgba(155,93,229,0.3); color: var(--violet); transform: translateY(-1px); } .ov-quick-btn svg { width: 16px; height: 16px; flex-shrink: 0; } + /* ── avatar pills ───────────────────────────────────────────── */ + .ov-avatar { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; font-size: 10px; font-weight: 700; color: #fff; margin-right: 6px; vertical-align: middle; flex-shrink: 0; } + .ov-cell-user { display: flex; align-items: center; } + /* ── skeleton loader ────────────────────────────────────────── */ + @keyframes ov-shimmer { 0%{background-position:-400px 0} 100%{background-position:400px 0} } + .ov-skel-box { border-radius: 12px; background: linear-gradient(90deg,var(--border) 25%,var(--surface) 50%,var(--border) 75%); background-size: 400px 100%; animation: ov-shimmer 1.4s infinite linear; } + .ov-skel-cards { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 16px; margin-bottom: 28px; } + .ov-skel-card { height: 110px; } + .ov-skel-rows { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; } + .ov-skel-row { height: 38px; } /* ── misc ───────────────────────────────────────────────────── */ .ov-empty { padding: 18px; text-align: center; color: var(--text-3); font-size: 0.85rem; } + /* ── mobile breakpoints ─────────────────────────────────────── */ + @media (max-width: 640px) { + .ov-grid.ov-grid-main { grid-template-columns: 1fr 1fr; } + .ov-card.hero .ov-card-val { font-size: 1.9rem; } + .ov-card.hero .ov-card-icon { width: 38px; height: 38px; border-radius: 12px; } + .ov-results-grid { grid-template-columns: 1fr; } + .ov-quick-grid { grid-template-columns: 1fr 1fr; } + .ov-skel-cards { grid-template-columns: 1fr 1fr; } + } `; document.head.appendChild(s); } @@ -129,6 +148,45 @@ return '