* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
background: #f5f5f5;
color: #333;
padding: 16px;
}
.container {
max-width: 600px;
margin: 0 auto;
}
.header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 20px;
}
.header h1 {
font-size: 24px;
font-weight: 600;
color: #1a1a1a;
}
.events-list {
display: flex;
flex-direction: column;
gap: 12px;
}
.event-card {
background: white;
border-radius: 12px;
padding: 16px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
transition: transform 0.2s, box-shadow 0.2s;
}
.event-card:hover {
transform: translateY(-2px);
box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}
.event-date {
display: flex;
align-items: center;
gap: 8px;
font-size: 13px;
color: #666;
margin-bottom: 8px;
}
.event-date .icon {
font-size: 14px;
}
.event-title {
font-size: 18px;
font-weight: 600;
color: #1a1a1a;
margin-bottom: 8px;
}
.event-location {
display: flex;
align-items: center;
gap: 6px;
font-size: 14px;
color: #555;
margin-bottom: 12px;
}
.event-categories {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.category-tag {
font-size: 12px;
padding: 4px 10px;
border-radius: 16px;
background: #e8f4fd;
color: #0066cc;
}
.event-price {
margin-top: 12px;
font-size: 14px;
font-weight: 500;
}
.price-free {
color: #00875a;
}
.price-paid {
color: #666;
}
.empty-state {
text-align: center;
padding: 40px 20px;
color: #666;
}
.empty-state h2 {
font-size: 18px;
margin-bottom: 8px;
}
.loading {
display: flex;
justify-content: center;
padding: 40px;
}
.loading::after {
content: '';
width: 32px;
height: 32px;
border: 3px solid #e0e0e0;
border-top-color: #0066cc;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
.event-description {
margin: 12px 0;
color: #555;
line-height: 1.5;
}
.event-organizer {
margin-top: 12px;
font-size: 13px;
color: #888;
}