
:root { --primary: #0d6efd; --primary-dark: #0a58ca; --accent: #e74c8b; }
body { font-family: 'Segoe UI', system-ui, -apple-system, sans-serif; background: #f0f2f5; }
.login-icon {
    width: 80px; height: 80px; border-radius: 50%;
    background: linear-gradient(135deg, var(--primary), var(--accent));
    display: flex; align-items: center; justify-content: center;
    font-size: 2rem; color: #fff;
}
.card { border-radius: 12px; }
.stat-card { border-left: 4px solid var(--primary); transition: transform 0.2s; }
.stat-card:hover { transform: translateY(-2px); }
.stat-card .stat-icon { font-size: 2.5rem; opacity: 0.3; }
.stat-card.accent { border-left-color: var(--accent); }
.stat-card.success { border-left-color: #198754; }
.stat-card.warning { border-left-color: #ffc107; }
.stat-card.info { border-left-color: #0dcaf0; }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.photo-grid .photo-item { position: relative; border-radius: 8px; overflow: hidden; aspect-ratio: 1; }
.photo-grid .photo-item img { width: 100%; height: 100%; object-fit: cover; }
.photo-grid .photo-item .photo-overlay {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: linear-gradient(transparent, rgba(0,0,0,0.7));
    padding: 8px; color: #fff; font-size: 0.75rem; opacity: 0; transition: opacity 0.3s;
}
.photo-grid .photo-item:hover .photo-overlay { opacity: 1; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.calendar-day { min-height: 100px; border: 1px solid #dee2e6; padding: 4px; font-size: 0.85rem; }
.calendar-day.today { background: #e8f0fe; }
.calendar-day.other-month { background: #f8f9fa; color: #adb5bd; }
.calendar-event-pill { background: var(--primary); color: #fff; border-radius: 4px; padding: 2px 6px; margin: 2px 0; font-size: 0.72rem; display: block; text-decoration: none; }
.calendar-event-pill:hover { opacity: 0.85; color: #fff; }
.message-item { border-left: 3px solid transparent; transition: all 0.2s; cursor: pointer; }
.message-item:hover { background: #f8f9fa; }
.message-item.unread { border-left-color: var(--primary); background: #f0f7ff; font-weight: 500; }
.table th { font-size: 0.85rem; text-transform: uppercase; color: #6c757d; font-weight: 600; }
.btn-sm { font-size: 0.8rem; }
.nav-tabs .nav-link.active { font-weight: 600; }
@media (max-width: 768px) {
    .calendar-day { min-height: 60px; font-size: 0.7rem; }
    .photo-grid { grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); }
}
