diff --git a/static/style.css b/static/style.css index a50eff2..d49f46d 100644 --- a/static/style.css +++ b/static/style.css @@ -386,3 +386,123 @@ form button[type="submit"]:hover { margin-bottom: 16px; font-size: 0.9em; } + +/* ---- Activity feed ---- */ +.feed-meta { + display: flex; + align-items: center; + gap: 0.5rem; + margin-top: 0.25rem; + font-size: 0.8rem; + opacity: 0.7; +} +.feed-user { + color: var(--primary); + text-decoration: none; + font-weight: 600; +} +.feed-user:hover { text-decoration: underline; } +.feed-time { opacity: 0.6; } + +/* ---- Users list ---- */ +.users-list { display: flex; flex-direction: column; gap: 0.75rem; } +.page-title { font-size: 1.2rem; font-weight: 700; margin-bottom: 1rem; opacity: 0.9; } +.user-row { + display: flex; + align-items: center; + gap: 1rem; + background: rgba(255,255,255,0.07); + border-radius: 12px; + padding: 0.75rem 1rem; +} +.user-avatar { + width: 40px; height: 40px; + border-radius: 50%; + background: rgba(74,158,255,0.2); + display: flex; align-items: center; justify-content: center; + font-size: 1.1rem; font-weight: 700; + flex-shrink: 0; +} +.user-info { flex: 1; } +.user-name { font-weight: 600; font-size: 0.95rem; } +.user-meta { font-size: 0.8rem; opacity: 0.6; margin-top: 0.1rem; } +.btn-secondary { + color: var(--primary); + font-size: 0.85rem; + text-decoration: none; + white-space: nowrap; +} +.btn-secondary:hover { text-decoration: underline; } + +/* ---- Profile stats header ---- */ +.profile { display: flex; flex-direction: column; gap: 1rem; } +.stats-header { + background: rgba(255,255,255,0.06); + border-radius: 14px; + padding: 1rem 1.25rem; +} +.profile-name { font-size: 1.1rem; font-weight: 700; margin-bottom: 0.75rem; } +.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem; } +.stat-tile { + background: rgba(255,255,255,0.06); + border-radius: 10px; + padding: 0.6rem 0.5rem; + text-align: center; +} +.stat-value { font-size: 1.1rem; font-weight: 700; color: var(--primary); } +.stat-label { font-size: 0.7rem; opacity: 0.5; margin-top: 0.1rem; } + +/* ---- View tabs ---- */ +.view-tabs { display: flex; gap: 0.4rem; flex-wrap: wrap; } +.view-tab { + padding: 0.3rem 0.75rem; + border-radius: 8px; + font-size: 0.85rem; + text-decoration: none; + color: rgba(255,255,255,0.7); + background: rgba(255,255,255,0.08); + transition: background 0.15s; +} +.view-tab:hover { background: rgba(255,255,255,0.14); } +.view-tab.active { background: var(--primary); color: #fff; font-weight: 600; } + +/* ---- History heatmap ---- */ +.heatmap-section { background: rgba(255,255,255,0.06); border-radius: 12px; padding: 1rem; } +.heatmap-label { font-size: 0.8rem; opacity: 0.5; margin-bottom: 0.6rem; } +.heatmap { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px; } +.heatmap-cell { + border-radius: 6px; + padding: 0.4rem 0.2rem; + text-align: center; + min-height: 48px; + display: flex; flex-direction: column; align-items: center; justify-content: center; +} +.heatmap-count { font-size: 0.85rem; font-weight: 700; } +.heatmap-month { font-size: 0.65rem; opacity: 0.6; margin-top: 2px; } + +/* ---- History month sections ---- */ +.history-month { margin-top: 1rem; } +.month-heading { font-size: 0.95rem; font-weight: 600; margin-bottom: 0.5rem; opacity: 0.8; } +.month-count { font-size: 0.8rem; opacity: 0.5; font-weight: 400; } + +/* ---- Trends charts ---- */ +.trends-section { display: flex; flex-direction: column; gap: 1.25rem; } +.chart-block { background: rgba(255,255,255,0.06); border-radius: 12px; padding: 1rem; } +.chart-label { font-size: 0.8rem; opacity: 0.5; margin-bottom: 0.75rem; } + +.bar-chart { + display: flex; + align-items: flex-end; + gap: 4px; + height: 80px; +} +.bar-col { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 3px; } +.bar-fill { width: 100%; background: var(--primary); border-radius: 3px 3px 0 0; min-height: 4px; opacity: 0.8; } +.bar-month { font-size: 0.65rem; opacity: 0.5; } + +.director-chart { display: flex; flex-direction: column; gap: 6px; } +.director-row { display: flex; align-items: center; gap: 0.6rem; } +.director-name { font-size: 0.85rem; width: 140px; flex-shrink: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.director-bar { flex: 1; background: rgba(255,255,255,0.08); border-radius: 4px; height: 10px; overflow: hidden; } +.director-bar-fill { height: 100%; background: var(--primary); border-radius: 4px; opacity: 0.8; } +.director-count { font-size: 0.8rem; opacity: 0.5; width: 20px; text-align: right; }