- Backend Node.js/Express con PostgreSQL - Frontend React 19 con Vite - Docker Compose para orquestacion - Documentacion completa en README.md - Scripts SQL para base de datos - Configuracion de ejemplo (.env.example)
145 lines
2.1 KiB
CSS
145 lines
2.1 KiB
CSS
.income-page {
|
|
padding: 0;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.page-header {
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.page-title {
|
|
color: #1a1a1a;
|
|
font-size: 28px;
|
|
font-weight: 700;
|
|
margin: 0;
|
|
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
|
letter-spacing: -0.5px;
|
|
}
|
|
|
|
.summary-section {
|
|
background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
|
|
border-radius: 20px;
|
|
padding: 24px;
|
|
margin-bottom: 32px;
|
|
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
|
|
border: 1px solid rgba(0, 0, 0, 0.05);
|
|
}
|
|
|
|
.summary-cards-wrapper {
|
|
display: flex;
|
|
gap: 20px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.table-section {
|
|
background: white;
|
|
border-radius: 16px;
|
|
padding: 24px;
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
|
|
min-height: 400px;
|
|
}
|
|
|
|
.table-loading {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: center;
|
|
min-height: 400px;
|
|
gap: 16px;
|
|
}
|
|
|
|
.loading-spinner-large {
|
|
width: 60px;
|
|
height: 60px;
|
|
border: 5px solid rgba(0, 0, 0, 0.1);
|
|
border-top-color: #fcd200;
|
|
border-radius: 50%;
|
|
animation: spin 0.8s linear infinite;
|
|
}
|
|
|
|
.table-loading p {
|
|
color: #666;
|
|
font-size: 16px;
|
|
font-weight: 500;
|
|
margin: 0;
|
|
}
|
|
|
|
@keyframes spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1400px) {
|
|
.summary-cards-wrapper {
|
|
gap: 16px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1024px) {
|
|
.page-title {
|
|
font-size: 24px;
|
|
}
|
|
|
|
.summary-section {
|
|
padding: 20px;
|
|
}
|
|
|
|
.summary-cards-wrapper {
|
|
gap: 12px;
|
|
}
|
|
|
|
.table-section {
|
|
padding: 20px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.income-page {
|
|
padding: 0;
|
|
}
|
|
|
|
.page-title {
|
|
font-size: 22px;
|
|
}
|
|
|
|
.summary-section {
|
|
padding: 16px;
|
|
border-radius: 16px;
|
|
}
|
|
|
|
.summary-cards-wrapper {
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
}
|
|
|
|
.table-section {
|
|
padding: 16px;
|
|
border-radius: 12px;
|
|
}
|
|
|
|
.table-loading {
|
|
min-height: 300px;
|
|
}
|
|
|
|
.loading-spinner-large {
|
|
width: 50px;
|
|
height: 50px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.page-title {
|
|
font-size: 20px;
|
|
}
|
|
|
|
.summary-section {
|
|
padding: 12px;
|
|
}
|
|
|
|
.table-section {
|
|
padding: 12px;
|
|
}
|
|
}
|
|
|