PlanTempusApp/PlanTempus.Application/wwwroot/css/page.css
Janus C. H. Knudsen abcf8ee75e Adds dashboard booking and notification components
Introduces reusable view components for bookings and notifications
Implements dynamic rendering of booking items and lists
Adds corresponding CSS styles for new dashboard components

Enhances dashboard user interface with interactive elements
2026-01-11 13:11:55 +01:00

204 lines
4.2 KiB
CSS

/**
* Page Layout - Content Area Structure
*
* Page container, headers, cards og grid layouts
*/
/* ===========================================
PAGE CONTAINER
=========================================== */
swp-page-container {
display: block;
max-width: var(--page-max-width);
margin: 0 auto;
padding: var(--spacing-6);
}
/* ===========================================
PAGE HEADER
=========================================== */
swp-page-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
margin-bottom: var(--spacing-6);
}
swp-page-title h1 {
font-size: var(--font-size-2xl);
font-weight: var(--font-weight-semibold);
color: var(--color-text);
margin-bottom: var(--spacing-1);
}
swp-page-title p {
font-size: var(--font-size-base);
color: var(--color-text-secondary);
}
swp-page-actions {
display: flex;
gap: var(--spacing-2);
}
/* ===========================================
CARDS
=========================================== */
swp-card {
display: block;
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--border-radius-lg);
margin-bottom: var(--spacing-5);
}
swp-card-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: var(--spacing-4) var(--spacing-5);
border-bottom: 1px solid var(--color-border);
}
swp-card-title {
display: flex;
align-items: center;
gap: var(--spacing-2);
font-size: var(--font-size-base);
font-weight: var(--font-weight-semibold);
color: var(--color-text);
}
swp-card-title i {
font-size: var(--font-size-xl);
color: var(--color-text-secondary);
}
swp-card-action {
font-size: var(--font-size-md);
color: var(--color-teal);
cursor: pointer;
transition: opacity var(--transition-fast);
}
swp-card-action:hover {
opacity: 0.8;
}
swp-card-content {
padding: var(--spacing-5);
}
/* ===========================================
DASHBOARD GRID
=========================================== */
swp-dashboard-grid {
display: grid;
grid-template-columns: 1fr 380px;
gap: var(--spacing-5);
}
swp-main-column {
display: flex;
flex-direction: column;
}
swp-side-column {
display: flex;
flex-direction: column;
}
/* ===========================================
AI INSIGHT
=========================================== */
swp-ai-insight {
display: block;
padding: var(--spacing-4) var(--spacing-5);
background: linear-gradient(135deg,
color-mix(in srgb, var(--color-purple) 8%, transparent),
color-mix(in srgb, var(--color-teal) 8%, transparent)
);
border-radius: var(--border-radius);
}
swp-ai-header {
display: flex;
align-items: center;
gap: var(--spacing-2);
margin-bottom: var(--spacing-2);
font-size: var(--font-size-sm);
font-weight: var(--font-weight-medium);
color: var(--color-purple);
}
swp-ai-header i {
font-size: var(--font-size-base);
}
swp-ai-text {
font-size: var(--font-size-base);
color: var(--color-text);
line-height: var(--line-height-relaxed);
}
/* ===========================================
QUICK ACTIONS
=========================================== */
swp-quick-actions {
display: flex;
flex-direction: column;
gap: var(--spacing-2);
}
swp-quick-action-btn {
display: flex;
align-items: center;
gap: var(--spacing-2);
padding: var(--spacing-3);
font-size: var(--font-size-base);
font-family: var(--font-family);
color: var(--color-text);
background: var(--color-background);
border: 1px solid var(--color-border);
border-radius: var(--border-radius);
cursor: pointer;
transition: all var(--transition-fast);
}
swp-quick-action-btn:hover {
background: var(--color-background-hover);
border-color: var(--color-teal);
color: var(--color-teal);
}
swp-quick-action-btn i {
font-size: var(--font-size-lg);
}
/* ===========================================
RESPONSIVE
=========================================== */
@media (max-width: 1200px) {
swp-dashboard-grid {
grid-template-columns: 1fr;
}
swp-side-column {
order: -1;
}
}
@media (max-width: 768px) {
swp-page-container {
padding: var(--spacing-4);
}
swp-page-header {
flex-direction: column;
gap: var(--spacing-4);
}
swp-page-actions {
width: 100%;
}
}