/** * Dashboard Page Styles */ .dashboard { box-sizing: border-box; width: 100%; max-width: 1200px; margin: 0 auto; padding: 2rem; min-width: 0; } /* Header */ .header { margin-bottom: 2rem; } .header h1 { margin: 0; font-size: 1.75rem; font-weight: 700; color: var(--text-primary, #1a1a1a); } .subtitle { margin: 0.5rem 0 0; color: var(--text-secondary, #666); font-size: 0.9375rem; } /* Content */ .content { display: flex; flex-direction: column; gap: 2rem; } /* Feature Section */ .featureSection { display: flex; flex-direction: column; gap: 1rem; } .sectionTitle { display: flex; align-items: center; gap: 0.75rem; margin: 0; font-size: 1.125rem; font-weight: 600; color: var(--text-primary, #1a1a1a); } /* Instance Grid — min(100%, Npx) keeps one fluid column on narrow viewports (no horizontal clip) */ .instanceGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 1rem; } /* Instance Card */ .instanceCard { display: flex; align-items: center; gap: 1rem; padding: 1.25rem; min-width: 0; background: var(--surface-color, #ffffff); border: 1px solid var(--border-color, #e0e0e0); border-radius: 12px; text-decoration: none; transition: all 0.2s ease; } .instanceCard:hover { border-color: var(--primary-color, #2563eb); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); transform: translateY(-2px); } .cardIcon { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 10px; background: var(--primary-light, #e0e7ff); color: var(--primary-color, #2563eb); flex-shrink: 0; } .cardContent { flex: 1; min-width: 0; } .cardHeader { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.25rem; } .featureLabel { font-size: 0.75rem; font-weight: 500; color: var(--text-tertiary, #888); text-transform: uppercase; letter-spacing: 0.025em; } .roleBadge { font-size: 0.625rem; padding: 0.125rem 0.375rem; background: var(--surface-color, #f0f0f0); border-radius: 9999px; color: var(--text-tertiary, #888); text-transform: uppercase; letter-spacing: 0.025em; } .instanceLabel { margin: 0; font-size: 1rem; font-weight: 600; color: var(--text-primary, #1a1a1a); overflow-wrap: anywhere; line-height: 1.3; } .mandateName { margin: 0.25rem 0 0; font-size: 0.8125rem; color: var(--text-secondary, #666); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .cardArrow { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--surface-color, #f5f5f5); color: var(--text-tertiary, #888); flex-shrink: 0; transition: all 0.2s ease; } .instanceCard:hover .cardArrow { background: var(--primary-color, #2563eb); color: white; } /* Empty State */ .emptyState { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; padding: 2rem; text-align: center; } .emptyIcon { font-size: 4rem; margin-bottom: 1rem; } .emptyState h2 { margin: 0; font-size: 1.5rem; font-weight: 600; color: var(--text-primary, #1a1a1a); } .emptyState p { margin: 0.5rem 0 0; color: var(--text-secondary, #666); font-size: 0.9375rem; } /* Dark Theme */ :global(.dark-theme) .header h1 { color: var(--text-primary-dark, #ffffff); } :global(.dark-theme) .subtitle { color: var(--text-secondary-dark, #aaa); } :global(.dark-theme) .sectionTitle { color: var(--text-primary-dark, #ffffff); } :global(.dark-theme) .instanceCard { background: var(--surface-dark, #1a1a1a); border-color: var(--border-dark, #333); } :global(.dark-theme) .instanceCard:hover { border-color: var(--primary-light, #93c5fd); } :global(.dark-theme) .cardIcon { background: var(--primary-dark-bg, #1e3a5f); color: var(--primary-light, #93c5fd); } :global(.dark-theme) .featureLabel { color: var(--text-tertiary-dark, #888); } :global(.dark-theme) .roleBadge { background: var(--surface-dark, #2a2a2a); color: var(--text-tertiary-dark, #888); } :global(.dark-theme) .instanceLabel { color: var(--text-primary-dark, #ffffff); } :global(.dark-theme) .mandateName { color: var(--text-secondary-dark, #aaa); } :global(.dark-theme) .cardArrow { background: var(--surface-dark, #2a2a2a); color: var(--text-tertiary-dark, #888); } :global(.dark-theme) .instanceCard:hover .cardArrow { background: var(--primary-color, #2563eb); color: white; } :global(.dark-theme) .emptyState h2 { color: var(--text-primary-dark, #ffffff); } :global(.dark-theme) .emptyState p { color: var(--text-secondary-dark, #aaa); } @media (max-width: 600px) { .dashboard { padding: 1rem 0.875rem; } .header h1 { font-size: 1.35rem; } .instanceCard { padding: 1rem; gap: 0.75rem; } .cardIcon { width: 40px; height: 40px; } }