
/* Modern, clean CSS for overview page */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    line-height: 1.6;
    color: #333;
    background: #f8fafc;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem;
}

.header {
    margin-bottom: 3rem;
    padding: 2rem;
    background: linear-gradient(135deg, #2d3748 0%, #4a5568 100%);
    color: white;
    border-radius: 12px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}

.header-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.header h1 {
    font-size: 2.5rem;
    margin-bottom: 0.5rem;
}

.navigation {
    margin-top: 1.5rem;
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

/* Two-row navigation layout */
.navigation-two-row {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.nav-row {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    flex-wrap: wrap;
}

.nav-row-primary {
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.nav-row-secondary .nav-link {
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.82rem;
    padding: 0.5rem 0.8rem;
}

.nav-row-secondary .nav-link:hover {
    background: rgba(255, 255, 255, 0.2);
}

.nav-row-secondary .nav-link.active {
    background: rgba(255, 255, 255, 0.3);
}

.nav-link {
    color: white !important;
    text-decoration: none !important;
    padding: 0.6rem 0.9rem;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.12);
    transition: all 0.3s ease;
    font-weight: 500;
    font-size: 0.85rem;
    white-space: nowrap;
    border: 1px solid rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(10px);
    position: relative;
    overflow: hidden;
}

.nav-link::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s ease;
}

.nav-link:hover::before {
    left: 100%;
}

.nav-link:hover {
    background: rgba(255, 255, 255, 0.25);
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
    border-color: rgba(255, 255, 255, 0.3);
}

.nav-link.active {
    background: rgba(255, 255, 255, 0.35);
    font-weight: 600;
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);
    border-color: rgba(255, 255, 255, 0.4);
}

.subtitle {
    font-size: 1.1rem;
    opacity: 0.9;
}

/* Sections */
section {
    margin-bottom: 3rem;
    background: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

section h2 {
    font-size: 1.8rem;
    margin-bottom: 1.5rem;
    color: #2d3748;
    border-bottom: 3px solid #e2e8f0;
    padding-bottom: 0.5rem;
}

/* Stats Dashboard */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.5rem;
    margin-top: 1.5rem;
}

.stat-card {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
    color: white;
    padding: 2rem;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

/* Gradient stat card variations */
.stat-card.gradient-blue {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.stat-card.gradient-purple {
    background: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%);
}

.stat-card.gradient-green {
    background: linear-gradient(135deg, #43e97b 0%, #38d9a9 100%);
}

.stat-card.gradient-orange {
    background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
}

/* Stat card links for clickable cards */
.stat-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
    height: 100%;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.stat-card-link .stat-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.stat-card-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

.stat-card-link:hover .stat-card {
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

/* Project Statistics specific stat card colors */
.stats-dashboard .stats-grid .stat-card-link:nth-child(1) .stat-card,
.stats-dashboard .stats-grid .stat-card:nth-child(3) {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.stats-dashboard .stats-grid .stat-card-link:nth-child(2) .stat-card,
.stats-dashboard .stats-grid .stat-card:nth-child(4) {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}

.stats-dashboard .stats-grid .stat-card:nth-child(3) {
    background: linear-gradient(135deg, #43e97b 0%, #38d9a9 100%);
}

.stats-dashboard .stats-grid .stat-card:nth-child(4) {
    background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
}

.stat-number {
    font-size: 3rem;
    font-weight: bold;
    margin-bottom: 0.5rem;
}

.stat-label {
    font-size: 1.2rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.stat-detail {
    font-size: 0.9rem;
    opacity: 0.9;
}

/* Progress bars */
.progress-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.progress-item {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.progress-bar {
    flex: 1;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #4facfe 0%, #00f2fe 100%);
    transition: width 0.3s ease;
}

/* Feature cards */
.feature-card {
    margin-bottom: 2rem;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
}

.feature-header {
    background: #f7fafc;
    padding: 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #e2e8f0;
}

.feature-header h3 {
    color: #2d3748;
    font-size: 1.3rem;
}

.feature-badges {
    display: flex;
    gap: 0.5rem;
}

.status-badge, .confidence-badge {
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
}

.status-extracted { background: #c6f6d5; color: #22543d; }
.status-normalized { background: #bee3f8; color: #2a4365; }
.status-ai_enhanced { background: #fed7d7; color: #742a2a; }

.confidence-badge {
    background: #edf2f7;
    color: #4a5568;
}

.feature-content {
    padding: 1.5rem;
}

/* Features List Page - Feature Details Section */
.features-section .feature-details-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-top: 0.5rem;
}

/* Force first 3 items to stay in 3 columns */
.features-section .feature-details-grid > .detail-card:nth-child(1),
.features-section .feature-details-grid > .detail-card:nth-child(2),
.features-section .feature-details-grid > .detail-card:nth-child(3) {
    grid-column: auto;
}

/* Full width items */
.features-section .feature-details-grid > .detail-card.full-width {
    grid-column: 1 / -1;
}

@media (max-width: 992px) {
    .features-section .feature-details-grid {
        grid-template-columns: 1fr;
    }
}

.features-section .detail-card {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.features-section .detail-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0;
}

.features-section .detail-icon {
    font-size: 1rem;
    flex-shrink: 0;
}

.features-section .detail-label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    line-height: 1.2;
}

.features-section .detail-value {
    color: #2d3748;
    font-size: 0.875rem;
    line-height: 1.4;
    word-break: break-word;
    font-weight: 500;
}

.features-section .detail-value a {
    color: #3b82f6;
    text-decoration: none;
    font-weight: 600;
}

.features-section .detail-value a:hover {
    text-decoration: underline;
}

/* Full width cards styling */
.features-section .detail-card.full-width {
    text-align: left;
}

.features-section .detail-card.full-width .detail-header {
    margin-bottom: 0.25rem;
    justify-content: flex-start;
    text-align: left;
}

.features-section .detail-card.full-width .detail-label {
    font-size: 0.7rem; /* Same as other labels */
    text-align: left;
}

.features-section .detail-card.full-width .detail-value {
    text-align: left;
    font-size: 0.875rem;
    line-height: 1.5;
}

.content-section {
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid #e2e8f0;
}

.content-section h4 {
    color: #4a5568;
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.toggle-btn {
    background: #4299e1;
    color: white;
    border: none;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.8rem;
    cursor: pointer;
}

.toggle-btn:hover {
    background: #3182ce;
}

.content-block {
    background: #f7fafc;
    border-radius: 8px;
    padding: 1rem;
    margin-top: 0.5rem;
    border-left: 4px solid #4299e1;
}

.content-block.collapsed {
    display: none;
}

.content-block-visible {
    background: #f7fafc;
    border-radius: 8px;
    padding: 1rem;
    margin-top: 0.5rem;
    border-left: 4px solid #4299e1;
}

.content-block pre {
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
}

/* Additional feature card styles */
.error-message {
    color: #e53e3e;
    font-style: italic;
}

.action-link {
    color: #3182ce;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

.action-link:hover {
    color: #2c5282;
    text-decoration: underline;
}

.feature-summary-preview {
    margin-top: 1rem;
    padding: 1rem;
    background: #f7fafc;
    border-radius: 8px;
    border-left: 3px solid #4299e1;
}

.feature-summary-preview h4 {
    margin: 0 0 0.5rem 0;
    color: #2d3748;
    font-size: 0.9rem;
}

.feature-summary-preview p {
    margin: 0;
    color: #4a5568;
    font-size: 0.85rem;
    line-height: 1.5;
}

/* Documents page specific styles */
.documents-overview-section {
    margin-bottom: 3rem;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3);
}

.documents-stats-horizontal {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.documents-stat-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem 1.5rem;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 10px;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    transition: all 0.3s ease;
}

.documents-stat-box:hover {
    background: rgba(255, 255, 255, 0.25);
    transform: translateY(-2px);
}

.documents-stat-number {
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 0.25rem;
}

.documents-stat-label {
    font-size: 0.85rem;
    opacity: 0.9;
    text-align: center;
}

.documents-stat-separator {
    color: rgba(255, 255, 255, 0.7);
    font-size: 1.5rem;
    font-weight: bold;
}

.documents-stat-box.error {
    background: rgba(244, 63, 94, 0.2);
    border-color: rgba(244, 63, 94, 0.3);
}

/* Document status badges */
.document-status-badge {
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
    border: none;
    transition: all 0.2s ease;
}

.document-status-badge.completed {
    background: #c6f6d5;
    color: #22543d;
}

.document-status-badge.pending {
    background: #ffeaa7;
    color: #8b5a00;
}

.document-status-badge.error {
    background: #fed7d7;
    color: #742a2a;
}

/* Document metadata styling */
.document-metadata {
    padding: 1.5rem;
    background: #f8fafc;
    border-radius: 8px;
    margin: 1rem 0;
    border: 1px solid #e2e8f0;
}

.metadata-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid #e2e8f0;
}

.metadata-item:last-child {
    border-bottom: none;
}

.metadata-item.error {
    background: #fef2f2;
    margin: 0 -1rem;
    padding: 0.75rem 1rem;
    border-radius: 6px;
}

.metadata-icon {
    font-size: 1.1rem;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.metadata-content {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 1;
}

.metadata-label {
    font-weight: 600;
    color: #4a5568;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}

.metadata-value {
    color: #2d3748;
    font-size: 0.9rem;
    line-height: 1.4;
}

.metadata-value.error-text {
    color: #e53e3e;
    font-style: italic;
}

/* Document details table */
.document-details-table {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
    margin-top: 1rem;
}

.document-detail-row {
    display: grid;
    grid-template-columns: 40px 120px 1fr;
    align-items: center;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #f3f4f6;
    transition: background 0.2s ease;
}

.document-detail-row:last-child {
    border-bottom: none;
}

.document-detail-row:hover {
    background: #f9fafb;
}

.document-detail-row .detail-icon {
    font-size: 1.1rem;
    text-align: center;
}

.document-detail-row .detail-label {
    color: #6b7280;
    font-weight: 500;
    font-size: 0.9rem;
}

.document-detail-row .detail-value {
    color: #1f2937;
    font-weight: 500;
}

/* Status badge variants for documents */
.feature-status.completed {
    background: #c6f6d5;
    color: #22543d;
}

.feature-status.pending {
    background: #fbb6ce;
    color: #97266d;
}

.feature-status.error {
    background: #fed7d7;
    color: #742a2a;
}

/* Components */
.component-type-section {
    margin-bottom: 2rem;
}

.component-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    margin-top: 1rem;
}

.component-item {
    background: white;
    padding: 1.5rem;
    border-radius: 8px;
    border-left: 4px solid #e2e8f0;
    border: 1px solid #e2e8f0;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.component-item:hover {
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}

/* Component type colors for overview */
.component-item.ui-component {
    border-left-color: #667eea;
    background: linear-gradient(135deg, #ffffff 0%, #f7faff 100%);
}

.component-item.service-component {
    border-left-color: #f093fb;
    background: linear-gradient(135deg, #ffffff 0%, #fef7ff 100%);
}

.component-item.data-component {
    border-left-color: #4facfe;
    background: linear-gradient(135deg, #ffffff 0%, #f0fcff 100%);
}

.component-item.infrastructure-component {
    border-left-color: #43e97b;
    background: linear-gradient(135deg, #ffffff 0%, #f0fff4 100%);
}

.component-item h4 {
    color: #2d3748;
    margin-bottom: 0.5rem;
}

/* Component title links */
.component-title-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
}

.component-title-link:hover {
    color: #667eea;
    text-decoration: underline;
}

.component-tags {
    margin-top: 1rem;
    display: flex;
    gap: 0.5rem;
}

.complexity {
    padding: 0.25rem 0.5rem;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
}

.complexity-low { background: #c6f6d5; color: #22543d; }
.complexity-medium { background: #faf089; color: #744210; }
.complexity-high { background: #fed7d7; color: #742a2a; }

.shared-tag {
    background: #bee3f8;
    color: #2a4365;
    padding: 0.25rem 0.5rem;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
}

/* Roles */
.role-card {
    margin-bottom: 2rem;
    background: #f7fafc;
    border-radius: 12px;
    padding: 1.5rem;
    border-left: 4px solid #9f7aea;
}

.role-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.skill-level {
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
}

.skill-beginner { background: #c6f6d5; color: #22543d; }
.skill-intermediate { background: #bee3f8; color: #2a4365; }
.skill-advanced { background: #faf089; color: #744210; }
.skill-expert { background: #fed7d7; color: #742a2a; }

.stories-list {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}

/* Goals section styling */
.goals-section {
    margin-top: 1.5rem;
}

.goals-section h4 {
    color: #2d3748;
    margin-bottom: 0.75rem;
    font-size: 1rem;
    font-weight: 600;
}

.goals-section ul {
    margin: 0;
    padding-left: 1.5rem;
    list-style-type: disc;
}

.goals-section li {
    color: #4a5568;
    line-height: 1.6;
    margin-bottom: 0.5rem;
}

.story-item {
    background: white;
    padding: 1rem;
    border-radius: 8px;
    border-left: 4px solid #48bb78;
}

.story-format {
    margin: 0.5rem 0;
    font-style: italic;
}

.priority {
    padding: 0.25rem 0.5rem;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
}

.priority-low { background: #e2e8f0; color: #4a5568; }
.priority-medium { background: #faf089; color: #744210; }
.priority-high { background: #fc8181; color: #742a2a; }
.priority-critical { background: #fed7d7; color: #742a2a; }

/* Project overview specific */
.overview-content {
    display: grid;
    gap: 2rem;
}

.overview-details {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 1rem;
    margin: 2rem auto;
    max-width: 1100px;
}

.detail-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: all 0.3s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.detail-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    border-color: #cbd5e0;
}

.detail-icon {
    width: 40px;
    height: 40px;
    background: #f7fafc;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.detail-icon svg {
    color: #4a5568;
    flex-shrink: 0;
}

.detail-icon.complexity-low {
    background: #c6f6d5;
}

.detail-icon.complexity-low svg {
    color: #22543d;
}

.detail-icon.complexity-medium {
    background: #fef3c7;
}

.detail-icon.complexity-medium svg {
    color: #78350f;
}

.detail-icon.complexity-high {
    background: #fed7d7;
}

.detail-icon.complexity-high svg {
    color: #742a2a;
}

.detail-content {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 1;
}

.detail-label {
    font-size: 0.75rem;
    color: #718096;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.detail-value {
    font-size: 1rem;
    color: #2d3748;
    font-weight: 600;
}

.detail-value strong {
    color: #1a202c;
}

.app-type {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.complexity-badge {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 16px;
    font-size: 0.75rem;
    font-weight: 600;
}

.complexity-badge.complexity-low {
    background: #c6f6d5;
    color: #22543d;
}

.complexity-badge.complexity-medium {
    background: #fef3c7;
    color: #78350f;
}

.complexity-badge.complexity-high {
    background: #fed7d7;
    color: #742a2a;
}

@media (max-width: 768px) {
    .overview-details {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 500px) {
    .overview-details {
        grid-template-columns: 1fr;
    }
}

.complexity-low { background: #c6f6d5; color: #22543d; }
.complexity-medium { background: #faf089; color: #744210; }
.complexity-high { background: #fed7d7; color: #742a2a; }

.tech-categories {
    display: grid;
    gap: 0.5rem;
}

.tech-category {
    padding: 1rem;
    background: #f7fafc;
    border-radius: 8px;
    border-left: 4px solid #4299e1;
}

.tech-items {
    color: #4a5568;
}

.areas-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.area-tag {
    background: #e6fffa;
    color: #234e52;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-size: 0.9rem;
    font-weight: 500;
}

/* Documents section */
.documents-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
    gap: 1.5rem;
    margin-top: 1rem;
}

.document-item {
    background: #f7fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
}

.document-header {
    background: #edf2f7;
    padding: 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #e2e8f0;
}

.document-header h4 {
    margin: 0;
    color: #2d3748;
    font-family: monospace;
}

.document-details {
    padding: 1rem;
}

.detail-row {
    display: flex;
    justify-content: space-between;
    padding: 0.25rem 0;
    font-size: 0.9rem;
}

.detail-row.error {
    background: #fed7d7;
    color: #742a2a;
    margin: 0.5rem -1rem;
    padding: 0.5rem 1rem;
}

.detail-row .value {
    font-family: monospace;
    font-size: 0.8rem;
    max-width: 60%;
    word-break: break-all;
}

.status-pending { background: #faf089; color: #744210; }
.status-completed { background: #c6f6d5; color: #22543d; }
.status-processing { background: #bee3f8; color: #2a4365; }
.status-error { background: #fed7d7; color: #742a2a; }

/* Summary tabs */
.summaries-section {
    margin: 2rem 0;
    padding: 1.5rem;
    background: #f7fafc;
    border-radius: 12px;
    border-left: 4px solid #4299e1;
}

.summary-tabs {
    margin-top: 1rem;
}

.tab-buttons {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
    border-bottom: 2px solid #e2e8f0;
}

/* Audience-Specific Summaries */
.audience-summaries-section {
    margin: 2rem 0;
    padding: 1.5rem;
    background: #f7fafc;
    border-radius: 12px;
    border-left: 4px solid #4299e1;
}

.audience-summaries-section h3 {
    color: #2d3748;
    margin-bottom: 1rem;
}

.audience-tabs-container {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.audience-tab-buttons {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0;
    border-bottom: 2px solid #e2e8f0;
    padding-bottom: 0;
}

.audience-tab-button {
    background: transparent;
    border: none;
    padding: 0.75rem 1.5rem;
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 600;
    color: #4a5568;
    border-bottom: 3px solid transparent;
    transition: all 0.2s ease;
    border-radius: 8px 8px 0 0;
    margin-bottom: -2px;
}

.audience-tab-button:hover {
    background: #edf2f7;
    color: #2d3748;
}

.audience-tab-button.active {
    color: #4299e1;
    border-bottom-color: #4299e1;
    background: white;
}

.audience-tab-content {
    background: white;
    border-radius: 0 0 12px 12px;
    min-height: 120px;
}

.audience-tab-pane {
    display: none;
    padding: 1.5rem;
}

.audience-tab-pane.active {
    display: block;
}

.audience-summary-content h4 {
    color: #2d3748;
    margin-bottom: 1rem;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.audience-summary-content p {
    color: #4a5568;
    line-height: 1.7;
    font-size: 0.95rem;
    margin-bottom: 1rem;
}

.audience-summary-content p:last-child {
    margin-bottom: 0;
}

.tab-button {
    background: transparent;
    border: none;
    padding: 0.75rem 1.5rem;
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 600;
    color: #4a5568;
    border-bottom: 3px solid transparent;
    transition: all 0.2s ease;
    border-radius: 8px 8px 0 0;
}

.tab-button:hover {
    background: #edf2f7;
    color: #2d3748;
}

.tab-button.active {
    color: #4299e1;
    border-bottom-color: #4299e1;
    background: white;
}

.tab-content {
    background: white;
    border-radius: 0 12px 12px 12px;
    min-height: 120px;
}

.tab-pane {
    display: none;
    padding: 1.5rem;
}

.tab-pane.active {
    display: block;
}

.summary-content h4 {
    color: #2d3748;
    margin-bottom: 1rem;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.summary-content p {
    color: #4a5568;
    line-height: 1.7;
    font-size: 0.95rem;
    margin-bottom: 1rem;
}

.summary-content p:last-child {
    margin-bottom: 0;
}

/* Architecture and Design system summary paragraphs */
.arch-summary-pane p,
.design-summary-pane p {
    color: #4a5568;
    line-height: 1.7;
    font-size: 0.95rem;
    margin-bottom: 1rem;
}

.arch-summary-pane p:last-child,
.design-summary-pane p:last-child {
    margin-bottom: 0;
}

/* Architecture and Design sections */
.architecture-patterns, .design-system {
    margin: 2rem 0;
}

/* Tech Stack Page Styles */
.tech-categories-section {
    margin-top: 3rem;
}

.tech-categories-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.tech-category-card {
    background: white;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tech-category-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}

.category-header {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: 1.5rem;
}

.category-header h3 {
    margin: 0 0 0.5rem 0;
    font-size: 1.4rem;
    font-weight: 600;
}

.category-stats {
    display: flex;
    gap: 1rem;
    font-size: 0.9rem;
    opacity: 0.9;
}

.tech-count {
    font-weight: 500;
}

.detailed-count {
    font-weight: 400;
    opacity: 0.8;
}

.tech-items-grid {
    padding: 1.5rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
}

.tech-item-modern {
    border-radius: 8px;
    transition: all 0.2s ease;
}

.tech-item-modern.has-details {
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    border: 1px solid #cbd5e0;
}

.tech-item-modern.simple-tech {
    background: #f7fafc;
    border: 1px solid #e2e8f0;
}

.tech-item-modern:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.tech-item-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.tech-item-content {
    padding: 1rem;
}

.tech-item-content.simple {
    padding: 0.75rem;
}

.tech-name-with-icon {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.tech-name {
    font-weight: 600;
    color: #2d3748;
    font-size: 0.95rem;
}

.detail-icon {
    font-size: 0.8rem;
    opacity: 0.6;
}

.tech-description {
    font-size: 0.8rem;
    color: #718096;
    margin-top: 0.5rem;
    font-style: italic;
}

/* Modern Tech Stack for Overview Page */
.tech-stack-modern {
    background: white;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    padding: 2rem;
    margin: 2rem 0;
}

.tech-stack-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #f1f5f9;
}

.tech-stack-header h3 {
    margin: 0;
    color: #2d3748;
    font-size: 1.5rem;
    font-weight: 600;
}

.tech-stack-link-header {
    color: #667eea;
    text-decoration: none;
    font-weight: 500;
    font-size: 0.95rem;
    transition: color 0.2s ease;
}

.tech-stack-link-header:hover {
    color: #5a67d8;
}

.tech-stack-cards {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 2rem;
    align-items: start;
}

.tech-overview-card {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 12px;
    padding: 1.5rem;
    color: white;
}

.tech-overview-stats {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.tech-stat-item {
    text-align: center;
}

.tech-stat-number {
    display: block;
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 0.25rem;
}

.tech-stat-label {
    font-size: 0.85rem;
    opacity: 0.9;
    font-weight: 400;
}

.tech-stat-divider {
    width: 1px;
    height: 40px;
    background: rgba(255,255,255,0.3);
}

.tech-categories-modern {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
}

.tech-category-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.tech-category-modern {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1rem;
    transition: all 0.2s ease;
    cursor: pointer;
}

.tech-category-modern:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    border-color: #cbd5e0;
    background: #f1f5f9;
}

.category-name {
    font-weight: 600;
    color: #2d3748;
    margin-bottom: 0.25rem;
    font-size: 0.95rem;
}

.category-count {
    font-size: 0.8rem;
    color: #718096;
    margin-bottom: 0.75rem;
}

.category-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.tech-preview-tag {
    background: #e2e8f0;
    color: #4a5568;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 500;
    transition: all 0.2s ease;
}

.tech-preview-tag.clickable {
    background: #667eea;
    color: white;
    cursor: pointer;
    position: relative;
}

.tech-preview-tag.clickable:hover {
    background: #5a67d8;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
}

.tech-preview-tag.clickable::after {
    content: "📖";
    margin-left: 0.25rem;
    font-size: 0.6rem;
}

.tech-preview-more {
    background: #cbd5e0;
    color: #718096;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 500;
    font-style: italic;
}

@media (max-width: 768px) {
    .tech-stack-cards {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .tech-overview-stats {
        flex-direction: column;
        gap: 1rem;
    }
    
    .tech-stat-divider {
        width: 100%;
        height: 1px;
    }
    
    .tech-categories-modern {
        grid-template-columns: 1fr;
    }
    
    /* Documents page responsive */
    .documents-stats-horizontal {
        flex-direction: column;
        gap: 1rem;
        align-items: stretch;
    }
    
    .documents-stat-separator {
        display: none;
    }
    
    .documents-stat-box {
        flex-direction: row;
        justify-content: space-between;
        padding: 1rem;
    }
    
    .documents-stat-number {
        font-size: 1.5rem;
        margin-bottom: 0;
    }
    
    .documents-stat-label {
        text-align: right;
    }
    
    .document-detail-row {
        grid-template-columns: 30px 100px 1fr;
        gap: 0.5rem;
    }
    
    .metadata-item {
        flex-direction: column;
        gap: 0.5rem;
        align-items: flex-start;
    }
    
    .metadata-content {
        gap: 0.125rem;
    }
}


.architecture-content, .design-content {
    margin-top: 1rem;
}

.pattern-section, .design-category {
    margin-bottom: 1.5rem;
}

.pattern-section h4, .design-category h4 {
    color: #2d3748;
    margin-bottom: 0.75rem;
    font-size: 1rem;
    font-weight: 600;
}

.pattern-list, .design-items {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.pattern-tag, .design-item {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.missing-info {
    margin-top: 1.5rem;
    padding: 1rem;
    background: #fff3cd;
    border-radius: 8px;
    border-left: 4px solid #ffc107;
}

.missing-info h4 {
    color: #856404;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}

.missing-info ul {
    color: #856404;
    margin-left: 1rem;
}

.missing-info li {
    margin-bottom: 0.25rem;
    font-size: 0.85rem;
}

/* Technical stack item summaries */
.tech-item, .pattern-item, .design-item-wrapper {
    margin-bottom: 1rem;
    padding: 1rem;
    background: white;
    border-radius: 8px;
    border-left: 3px solid #4299e1;
}

.tech-item.has-summaries, .pattern-item.has-summaries, .design-item-wrapper.has-summaries {
    border-left-color: #9f7aea;
}

.tech-name {
    font-weight: 600;
    color: #2d3748;
    display: block;
    margin-bottom: 0.5rem;
}

.tech-summaries, .pattern-summaries, .design-summaries {
    margin-top: 0.75rem;
}

.summary-tabs-mini {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.tab-btn-mini {
    background: #f7fafc;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 500;
    transition: all 0.2s ease;
    text-align: center;
    white-space: nowrap;
}

.tab-btn-mini:hover {
    background: #edf2f7;
    border-color: #cbd5e0;
}

.tab-btn-mini.active {
    background: #4299e1;
    color: white;
    border-color: #4299e1;
}

.summary-content-mini {
    background: #f8fafc;
    border-radius: 6px;
    padding: 0.75rem;
    border: 1px solid #e2e8f0;
}

.summary-pane-mini {
    display: none;
    font-size: 0.85rem;
    line-height: 1.5;
    color: #4a5568;
}

.summary-pane-mini.active {
    display: block;
}

/* Technical Stack Redesign */
.tech-stack-tabs {
    margin-bottom: 2rem;
    padding: 1rem;
    background: #f7fafc;
    border-radius: 12px;
    border-left: 4px solid #4299e1;
}

.tech-stack-tabs .tab-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
}

.tech-categories-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 2rem;
    margin-top: 1rem;
}

.tech-category {
    background: white;
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-left: 4px solid #9f7aea;
}

.tech-category h4 {
    color: #2d3748;
    margin-bottom: 1rem;
    font-size: 1.1rem;
    font-weight: 600;
    text-transform: capitalize;
}

.tech-items {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.tech-item {
    background: #f8fafc;
    border-radius: 8px;
    padding: 1rem;
    border-left: 3px solid #4299e1;
}

.tech-item.has-summaries {
    border-left-color: #9f7aea;
}

.tech-item-header {
    margin-bottom: 0.75rem;
}

.tech-name {
    font-weight: 600;
    color: #2d3748;
    font-size: 1rem;
}

.tech-summaries {
    margin-top: 0.75rem;
}

.tech-summary-pane {
    display: none;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #4a5568;
    padding: 0.75rem;
    background: white;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
}

.tech-summary-pane.active {
    display: block;
}

/* Architecture patterns */
.arch-stack-tabs .tab-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    margin-bottom: 1rem;
}

.architecture-content-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 1.5rem;
}

.architecture-category {
    background: white;
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-left: 4px solid #4299e1;
}

.architecture-category h4 {
    color: #2d3748;
    margin-bottom: 1rem;
    font-size: 1.1rem;
    font-weight: 600;
    text-transform: capitalize;
}

.pattern-items {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pattern-item-wrapper {
    background: #f8fafc;
    border-radius: 8px;
    padding: 1rem;
    border-left: 3px solid #4299e1;
}

.pattern-item-wrapper.has-summaries {
    border-left-color: #9f7aea;
}

.pattern-item-header {
    margin-bottom: 0.75rem;
}

.pattern-tag {
    font-weight: 600;
    color: #2d3748;
    font-size: 1rem;
    background: #e2e8f0;
    padding: 0.25rem 0.75rem;
    border-radius: 12px;
    display: inline-block;
}

.pattern-summaries {
    margin-top: 0.75rem;
}

.arch-summary-pane {
    display: none;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #4a5568;
    padding: 0.75rem;
    background: white;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
}

.arch-summary-pane.active {
    display: block;
}

/* Design system */
.design-stack-tabs .tab-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    margin-bottom: 1rem;
}

.design-content-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 1.5rem;
}

.design-category {
    background: white;
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-left: 4px solid #4299e1;
}

.design-category h4 {
    color: #2d3748;
    margin-bottom: 1rem;
    font-size: 1.1rem;
    font-weight: 600;
    text-transform: capitalize;
}

.design-items {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.design-item-wrapper {
    background: #f8fafc;
    border-radius: 8px;
    padding: 1rem;
    border-left: 3px solid #4299e1;
}

.design-item-wrapper.has-summaries {
    border-left-color: #9f7aea;
}

.design-item-header {
    margin-bottom: 0.75rem;
}

.design-item {
    font-weight: 600;
    color: #2d3748;
    font-size: 1rem;
    background: #e2e8f0;
    padding: 0.25rem 0.75rem;
    border-radius: 12px;
    display: inline-block;
}

.design-summaries {
    margin-top: 0.75rem;
}

.design-summary-pane {
    display: none;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #4a5568;
    padding: 0.75rem;
    background: white;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
}

.design-summary-pane.active {
    display: block;
}

.pattern-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Feature details formatting */
.feature-details-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-top: 1rem;
}

.detail-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.detail-card.full-width {
    grid-column: 1 / -1;
}

.detail-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
    font-weight: 600;
    color: #2d3748;
}

.detail-icon {
    font-size: 1.1rem;
}

.detail-label {
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #4a5568;
}

.detail-value {
    color: #2d3748;
    line-height: 1.5;
}

.complexity-badge {
    padding: 0.25rem 0.75rem;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
}

.complexity-low { background: #c6f6d5; color: #22543d; }
.complexity-medium { background: #faf089; color: #744210; }
.complexity-high { background: #fed7d7; color: #742a2a; }
.complexity-unknown { background: #e2e8f0; color: #4a5568; }

/* Metadata formatting */
.metadata-summary {
    background: #f8fafc;
    border-radius: 8px;
    padding: 1.5rem;
    margin-top: 1rem;
}

.metadata-header h5 {
    margin: 0 0 1rem 0;
    color: #2d3748;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.metadata-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.metadata-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem;
    background: white;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
}

.metadata-label {
    font-weight: 600;
    color: #4a5568;
    font-size: 0.9rem;
}

.metadata-value {
    color: #2d3748;
    font-weight: 500;
}

.metadata-section {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e2e8f0;
}

.metadata-section h6 {
    margin: 0 0 0.75rem 0;
    color: #2d3748;
    font-size: 1rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.metadata-section p {
    margin: 0;
    color: #4a5568;
    line-height: 1.6;
}

/* Features Summary Card */
.features-summary-section {
    margin-bottom: 3rem;
}

.features-summary-card {
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    color: #2d3748;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
    border: 1px solid #e2e8f0;
}

.features-summary-card .summary-header h2 {
    color: #2d3748;
}

.features-summary-card .summary-description {
    background: rgba(45, 55, 72, 0.05);
    color: #4a5568;
    border: 1px solid rgba(45, 55, 72, 0.1);
}

/* Components Summary Card */
.components-summary-section {
    margin-bottom: 3rem;
}

.components-summary-card {
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    color: #2d3748;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
    border: 1px solid #e2e8f0;
}

.components-summary-card .summary-header h2 {
    color: #2d3748;
}

.components-summary-card .summary-description {
    background: rgba(45, 55, 72, 0.05);
    color: #4a5568;
    border: 1px solid rgba(45, 55, 72, 0.1);
}

/* Components summary specific button styling */
.components-summary-card .view-all-btn {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
}

.components-summary-card .view-all-btn:hover {
    background: linear-gradient(135deg, #5a6fd8 0%, #6a4190 100%);
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

/* Data Models Summary Card */
.data-models-summary-card .summary-header h2 {
    color: #2d3748;
}

/* Integrations Summary Card */
.integrations-summary-card .summary-header h2 {
    color: #2d3748;
}

/* Documents Summary Card */
.documents-summary-card .summary-header h2 {
    color: #2d3748;
}

/* User Roles Summary Card */
.user-roles-summary-card .summary-header h2 {
    color: #2d3748;
}

/* Areas Summary Card */
.areas-summary-section {
    margin-bottom: 3rem;
}

.areas-summary-card {
    background: linear-gradient(135deg, #a29bfe 0%, #6c5ce7 100%);
    color: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}

.areas-summary-card .summary-header h2 {
    color: white;
    border-bottom: none;
    margin-bottom: 0;
    font-size: 1.8rem;
}

.areas-summary-card .summary-description {
    background: rgba(255, 255, 255, 0.1);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 1.5rem;
    border-radius: 8px;
    line-height: 1.7;
}

.areas-summary-card .view-all-btn {
    background: rgba(255, 255, 255, 0.2);
    color: white;
    text-decoration: none;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    transition: all 0.3s ease;
    font-weight: 600;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.areas-summary-card .view-all-btn:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

/* Architecture & Design Summary Card */
.architecture-summary-section {
    margin-bottom: 3rem;
}

.architecture-summary-card {
    background: linear-gradient(135deg, #43e97b 0%, #38d9a9 100%);
    color: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}

.architecture-summary-card .summary-header h2 {
    color: white;
    border-bottom: none;
    margin-bottom: 0;
    font-size: 1.8rem;
}

.architecture-summary-card .summary-description {
    background: rgba(255, 255, 255, 0.1);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 1.5rem;
    border-radius: 8px;
    line-height: 1.7;
}

.architecture-summary-card .view-all-btn {
    background: rgba(255, 255, 255, 0.2);
    color: white;
    text-decoration: none;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    transition: all 0.3s ease;
    font-weight: 600;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.architecture-summary-card .view-all-btn:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

.summary-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}

.summary-header h2 {
    color: white;
    border-bottom: none;
    margin-bottom: 0;
    font-size: 1.8rem;
}

.view-all-btn {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    text-decoration: none;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    transition: all 0.3s ease;
    font-weight: 600;
    border: none;
}

.view-all-btn:hover {
    background: linear-gradient(135deg, #5a6fd8 0%, #6a4190 100%);
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

/* Features summary specific button styling */
.features-summary-card .view-all-btn {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
}

.features-summary-card .view-all-btn:hover {
    background: linear-gradient(135deg, #5a6fd8 0%, #6a4190 100%);
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

.summary-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.summary-stat {
    text-align: center;
    padding: 1.5rem 1rem;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    color: white;
    font-weight: 600;
    transition: transform 0.3s ease;
}

.summary-stat:hover {
    transform: translateY(-2px);
}

.summary-stat .stat-number {
    font-size: 2rem;
    font-weight: bold;
    display: block;
    margin-bottom: 0.25rem;
    line-height: 1;
}

.summary-stat .stat-label {
    font-size: 0.85rem;
    opacity: 0.95;
    font-weight: 500;
    line-height: 1.2;
}

.summary-stat .stat-label-link {
    color: inherit;
    text-decoration: none;
    font-size: 0.85rem;
    opacity: 0.95;
    font-weight: 500;
    line-height: 1.2;
    transition: opacity 0.3s ease;
}

.summary-stat .stat-label-link:hover {
    opacity: 1;
    text-decoration: underline;
}

/* Overview component-specific stat colors */
.summary-stat:nth-child(1) {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.summary-stat:nth-child(2) {
    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
}

.summary-stat:nth-child(3) {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}

.summary-stat:nth-child(4) {
    background: linear-gradient(135deg, #43e97b 0%, #38d9a9 100%);
}

.summary-stat:nth-child(5) {
    background: linear-gradient(135deg, #fd79a8 0%, #fdcb6e 100%);
}

.summary-stat:nth-child(6) {
    background: linear-gradient(135deg, #a29bfe 0%, #6c5ce7 100%);
}

.summary-description {
    background: rgba(103, 126, 234, 0.08);
    padding: 1.5rem;
    border-radius: 8px;
    line-height: 1.7;
    border: 1px solid rgba(103, 126, 234, 0.15);
    color: #4a5568;
}

.summary-description p {
    margin-bottom: 1rem;
}

.summary-description p:last-child {
    margin-bottom: 0;
}

/* Features stats for dedicated features page */
.features-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.features-stats .stat-card {
    padding: 1.5rem 1rem;
    text-align: center;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    color: white;
    font-weight: 600;
}

.features-stats .stat-number {
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 0.25rem;
    line-height: 1;
}

.features-stats .stat-label {
    font-size: 0.85rem;
    font-weight: 500;
    opacity: 0.95;
    line-height: 1.2;
}

/* Feature-specific stat card colors */
.features-stats .stat-card:nth-child(1) {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.features-stats .stat-card:nth-child(2) {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}

.features-stats .stat-card:nth-child(3) {
    background: linear-gradient(135deg, #43e97b 0%, #38d9a9 100%);
}

/* Components stats for dedicated components page */
.components-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}

.components-stats .stat-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
    height: 100%;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.components-stats .stat-card-link:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

.components-stats .stat-card-link .stat-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.components-stats .stat-card {
    padding: 1.5rem 1rem;
    text-align: center;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    color: white;
    font-weight: 600;
}

.components-stats .stat-number {
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 0.25rem;
    line-height: 1;
}

.components-stats .stat-label {
    font-size: 0.85rem;
    font-weight: 500;
    opacity: 0.95;
    line-height: 1.2;
}

/* Shared Components Page Styling */
.shared-components-header {
    margin-bottom: 3rem;
}

.shared-hero {
    background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
    color: #2d3748;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 2rem;
}

.shared-hero-content {
    flex: 1;
    min-width: 300px;
}

.shared-hero h2 {
    font-size: 2.5rem;
    margin: 1rem 0;
    border: none;
    color: #2d3748;
}

.shared-description {
    font-size: 1.2rem;
    line-height: 1.6;
    color: #4a5568;
}

.shared-stats-mini {
    display: flex;
    gap: 2rem;
    flex-wrap: wrap;
}

.shared-stats-mini .stat-mini {
    text-align: center;
    background: rgba(45, 55, 72, 0.1);
    color: #2d3748;
    padding: 1rem;
    border-radius: 8px;
    min-width: 80px;
    border: 1px solid rgba(45, 55, 72, 0.2);
}

.related-pages-section {
    margin-top: 3rem;
}

.related-pages-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.5rem;
    margin-top: 1.5rem;
}

.related-page-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    transition: all 0.3s ease;
}

.related-page-card:hover {
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}

.related-page-card h3 {
    margin-bottom: 0.5rem;
    border: none;
}

.page-link {
    color: #667eea;
    text-decoration: none;
    transition: color 0.3s ease;
}

.page-link:hover {
    color: #5a6fd8;
    text-decoration: underline;
}

/* Component-specific stat card colors */
.components-stats .stat-card:nth-child(1) {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.components-stats .stat-card:nth-child(2) {
    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
}

.components-stats .stat-card:nth-child(3) {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}

.components-stats .stat-card:nth-child(4) {
    background: linear-gradient(135deg, #43e97b 0%, #38d9a9 100%);
}

.components-stats .stat-card:nth-child(5) {
    background: linear-gradient(135deg, #fd79a8 0%, #fdcb6e 100%);
}

.components-stats .stat-card:nth-child(6) {
    background: linear-gradient(135deg, #a29bfe 0%, #6c5ce7 100%);
}

.shared-badge {
    background: #EC4899;
    color: white;
    padding: 0.25rem 0.5rem;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
}

.component-badges {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.responsibilities-list ul,
.interfaces-list ul {
    margin: 0;
    padding-left: 1.5rem;
}

.responsibilities-list li,
.interfaces-list li {
    margin-bottom: 0.5rem;
    color: #4a5568;
}

.feature-tag {
    background: #e2e8f0;
    color: #2d3748;
    padding: 0.25rem 0.75rem;
    border-radius: 12px;
    font-size: 0.9rem;
    font-weight: 500;
}

/* Feature title links */
.feature-title-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
}

.feature-title-link:hover {
    color: #667eea;
    text-decoration: underline;
}

/* Feature Detail Page Styles */
.feature-detail-header {
    margin-bottom: 3rem;
}

.feature-hero {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
    color: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 2rem;
}

.feature-hero-content {
    flex: 1;
    min-width: 300px;
}

.feature-hero h2 {
    font-size: 2.5rem;
    margin: 1rem 0;
    border: none;
    color: white;
}

.feature-description {
    font-size: 1rem;
    line-height: 1.6;
    opacity: 0.95;
}

.feature-stats-mini {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 1rem;
    width: 100%;
    max-width: 300px;
}

.stat-mini {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: rgba(255, 255, 255, 0.15);
    padding: 1rem;
    border-radius: 8px;
    min-height: 80px;
    min-width: 80px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.stat-mini .stat-number {
    font-size: 2rem;
    font-weight: bold;
    display: block;
    margin-bottom: 0.5rem;
}

.stat-mini .stat-label {
    font-size: 0.9rem;
    opacity: 0.9;
}

/* Component Type Sections */
.component-type-section {
    margin-bottom: 2rem;
}

.component-type-section h3 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: #2d3748;
    border-bottom: 2px solid #e2e8f0;
    padding-bottom: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.component-type-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
}

.component-type-link:hover {
    color: #667eea;
    text-decoration: underline;
}

/* Component type specific styling using clean CSS classes */

/* UI Components */
.ui-button {
    background: linear-gradient(135deg, #3B82F6 0%, #1E40AF 100%);
}

.ui-button:hover {
    background: linear-gradient(135deg, #1E40AF 0%, #1E3A8A 100%);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

.ui-header h3 {
    border-bottom-color: #3B82F6;
}

/* Service Components */
.service-button {
    background: linear-gradient(135deg, #8B5CF6 0%, #6D28D9 100%);
}

.service-button:hover {
    background: linear-gradient(135deg, #6D28D9 0%, #5B21B6 100%);
    box-shadow: 0 4px 12px rgba(139, 92, 246, 0.3);
}

.service-header h3 {
    border-bottom-color: #8B5CF6;
}

/* Data Components */
.data-button {
    background: linear-gradient(135deg, #F59E0B 0%, #D97706 100%);
}

.data-button:hover {
    background: linear-gradient(135deg, #D97706 0%, #B45309 100%);
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
}

.data-header h3 {
    border-bottom-color: #F59E0B;
}

/* Infrastructure Components */
.infrastructure-button {
    background: linear-gradient(135deg, #64748B 0%, #475569 100%);
}

.infrastructure-button:hover {
    background: linear-gradient(135deg, #475569 0%, #334155 100%);
    box-shadow: 0 4px 12px rgba(100, 116, 139, 0.3);
}

.infrastructure-header h3 {
    border-bottom-color: #64748B;
}

/* Shared Components */
.shared-button {
    background: linear-gradient(135deg, #EC4899 0%, #BE185D 100%);
}

.shared-button:hover {
    background: linear-gradient(135deg, #BE185D 0%, #9D174D 100%);
    box-shadow: 0 4px 12px rgba(236, 72, 153, 0.3);
}

.shared-header h3 {
    border-bottom-color: #EC4899;
}

.component-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}

.component-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1.5rem;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    border-left: 4px solid #e2e8f0;
}

/* Component type colors - removed nth-child selectors, using class-based selectors instead */

/* Specific component type colors by class */
.component-card.ui-component {
    border-left-color: #3B82F6;
    background: linear-gradient(135deg, #ffffff 0%, #eff6ff 100%);
}

.component-card.service-component {
    border-left-color: #8B5CF6;
    background: linear-gradient(135deg, #ffffff 0%, #f3e8ff 100%);
}

.component-card.data-component {
    border-left-color: #F59E0B;
    background: linear-gradient(135deg, #ffffff 0%, #fffbeb 100%);
}

.component-card.infrastructure-component {
    border-left-color: #64748B;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
}

.component-card:hover {
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}

.component-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.component-header h4 {
    font-size: 1.2rem;
    color: #2d3748;
    margin: 0;
}

.component-description {
    color: #4a5568;
    margin-bottom: 1rem;
    line-height: 1.5;
}

.component-responsibilities,
.component-interfaces {
    margin-top: 1rem;
}

.component-responsibilities h5,
.component-interfaces h5 {
    font-size: 1rem;
    color: #2d3748;
    margin-bottom: 0.5rem;
}

.component-responsibilities ul {
    list-style-type: disc;
    margin-left: 1.5rem;
    color: #4a5568;
}

.interface-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.interface-list li {
    margin-bottom: 0.25rem;
}

.interface-list code {
    background: #f7fafc;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.9rem;
    color: #2d3748;
}

/* User Stories Grid */
.user-stories-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 1.5rem;
}

.user-story-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.story-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.story-header h4 {
    font-size: 1.2rem;
    color: #2d3748;
    margin: 0;
}

.story-format {
    background: #f7fafc;
    padding: 1rem;
    border-radius: 6px;
    margin-bottom: 1rem;
    border-left: 4px solid #667eea;
}

.story-format p {
    margin-bottom: 0.5rem;
    color: #4a5568;
}

.story-format p:last-child {
    margin-bottom: 0;
}

.acceptance-criteria {
    margin-top: 1rem;
}

.acceptance-criteria h5 {
    font-size: 1rem;
    color: #2d3748;
    margin-bottom: 0.5rem;
}

.acceptance-criteria ul {
    list-style-type: disc;
    margin-left: 1.5rem;
    color: #4a5568;
}

/* Dependencies */
.dependencies-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.dependency-tag {
    background: #e2e8f0;
    color: #2d3748;
    padding: 0.25rem 0.75rem;
    border-radius: 12px;
    font-size: 0.9rem;
    font-weight: 500;
}

/* No data sections */
.no-data {
    text-align: center;
    padding: 3rem 2rem;
    color: #718096;
    background: #f7fafc;
    border-radius: 8px;
    border: 2px dashed #e2e8f0;
}

.no-data p {
    margin: 0;
    font-size: 1.1rem;
    line-height: 1.6;
}

/* Component Detail Page Styles */
.component-detail-header {
    margin-bottom: 3rem;
}

/* Component Details Information Boxes Fix */
.component-details-section .details-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    margin-top: 1rem;
}

@media (max-width: 1200px) {
    .component-details-section .details-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .component-details-section .details-grid {
        grid-template-columns: 1fr;
    }
}

.component-details-section .detail-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1.25rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.component-details-section .detail-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    border-color: #cbd5e0;
}

.component-details-section .detail-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}

.component-details-section .detail-icon {
    font-size: 1.1rem;
    width: auto;
    height: auto;
    background: none;
    flex-shrink: 0;
}

.component-details-section .detail-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    line-height: 1.2;
}

.component-details-section .detail-value {
    color: #2d3748;
    font-size: 0.95rem;
    line-height: 1.4;
    word-break: break-word;
    font-weight: 500;
}

.component-details-section .detail-value a {
    text-decoration: none;
}

.component-details-section .detail-card.full-width {
    grid-column: 1 / -1;
}

/* Component Summaries Section Fix */
.component-summaries-section {
    margin-bottom: 3rem;
    background: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

.component-summaries-section h2 {
    color: #2d3748;
    margin-bottom: 2rem;
    border-bottom: 3px solid #e2e8f0;
    padding-bottom: 0.5rem;
}

.component-summaries-section .summary-tabs {
    margin-top: 0;
    display: block !important;
    gap: 0 !important;
    margin-bottom: 0 !important;
    border-bottom: none !important;
}

.component-summaries-section .tab-buttons {
    display: flex;
    background: #f1f5f9;
    border-radius: 8px;
    padding: 4px;
    gap: 4px;
    margin-bottom: 2rem;
    border-bottom: none;
}

.component-summaries-section .tab-button {
    flex: 1;
    padding: 0.75rem 1rem;
    border: none;
    background: transparent;
    border-radius: 6px;
    font-weight: 600;
    font-size: 0.9rem;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    border-bottom: none;
}

.component-summaries-section .tab-button.active {
    background: linear-gradient(135deg, #3B82F6 0%, #2563EB 100%);
    color: white;
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.3);
}

.component-summaries-section .tab-button:hover:not(.active) {
    background: rgba(59, 130, 246, 0.1);
    color: #3B82F6;
}

.component-summaries-section .tab-content {
    background: #f8fafc;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
    min-height: 200px;
}

.component-summaries-section .tab-pane {
    display: none;
    padding: 2rem;
}

.component-summaries-section .tab-pane.active {
    display: block;
}

.component-summaries-section .summary-content h4 {
    color: #1e293b;
    margin-bottom: 1rem;
    font-size: 1.2rem;
    font-weight: 600;
}

.component-summaries-section .summary-content p {
    color: #475569;
    line-height: 1.7;
    font-size: 1rem;
    margin-bottom: 1rem;
}

.component-summaries-section .summary-content p:last-child {
    margin-bottom: 0;
}

.component-hero {
    color: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 2rem;
}

.component-hero.ui-component {
    background: linear-gradient(135deg, #3B82F6 0%, #1E40AF 100%);
}

.component-hero.service-component {
    background: linear-gradient(135deg, #8B5CF6 0%, #6D28D9 100%);
}

.component-hero.data-component {
    background: linear-gradient(135deg, #F59E0B 0%, #D97706 100%);
}

.component-hero.infrastructure-component {
    background: linear-gradient(135deg, #64748B 0%, #475569 100%);
}

.component-hero-content {
    flex: 1;
    min-width: 300px;
}

.component-hero h2 {
    font-size: 2.5rem;
    margin: 1rem 0;
    border: none;
    color: white;
}

.component-hero .component-description {
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.1rem;
    line-height: 1.6;
}

.type-badge {
    padding: 0.25rem 0.75rem;
    border-radius: 12px;
    font-size: 0.9rem;
    font-weight: 600;
    color: white;
}

.ui-badge {
    background: rgba(30, 64, 175, 0.9);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.service-badge {
    background: rgba(109, 40, 217, 0.9);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.data-badge {
    background: rgba(217, 119, 6, 0.9);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.infrastructure-badge {
    background: rgba(71, 85, 105, 0.9);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.details-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.5rem;
}

/* Feature Details Section Specific Styles */
.feature-details-section .feature-details-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 1rem;
}

/* Force first 3 items to stay in 3 columns */
.feature-details-section .feature-details-grid > .detail-card:nth-child(1),
.feature-details-section .feature-details-grid > .detail-card:nth-child(2),
.feature-details-section .feature-details-grid > .detail-card:nth-child(3) {
    grid-column: auto;
}

/* Full width items start from row 2 */
.feature-details-section .feature-details-grid > .detail-card.full-width {
    grid-column: 1 / -1;
}

@media (max-width: 992px) {
    .feature-details-section .feature-details-grid {
        grid-template-columns: 1fr;
    }
}

.feature-details-section .detail-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1.25rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.feature-details-section .detail-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    border-color: #cbd5e0;
}

.feature-details-section .detail-card.full-width {
    grid-column: 1 / -1;
}

.feature-details-section .detail-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0;
}

.feature-details-section .detail-icon {
    font-size: 1.1rem;
    flex-shrink: 0;
}

.feature-details-section .detail-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    line-height: 1.2;
}

.feature-details-section .detail-value {
    color: #2d3748;
    font-size: 0.95rem;
    line-height: 1.4;
    word-break: break-word;
    font-weight: 500;
}

.feature-details-section .detail-value a {
    color: #3b82f6;
    text-decoration: none;
    font-weight: 600;
}

.feature-details-section .detail-value a:hover {
    text-decoration: underline;
}

/* Ensure consistent label sizing for full-width cards */
.feature-details-section .detail-card.full-width .detail-header {
    margin-bottom: 0.5rem;
    justify-content: flex-start;
}

.feature-details-section .detail-card.full-width .detail-label {
    font-size: 0.75rem; /* Same as other labels */
}

.feature-details-section .detail-card.full-width .detail-value {
    font-size: 0.95rem;
    line-height: 1.6;
    text-align: left;
}

.technical-details-section {
    margin-bottom: 3rem;
}

.technical-content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.responsibilities-section,
.interfaces-section {
    background: white;
    padding: 1.5rem;
    border-radius: 8px;
    border-left: 4px solid #e2e8f0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.responsibilities-list,
.interface-list {
    list-style-type: disc;
    margin: 1rem 0 0 1.5rem;
    color: #4a5568;
}

.responsibilities-list li,
.interface-list li {
    margin-bottom: 0.5rem;
}

.interface-list code {
    background: #f7fafc;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.9rem;
}

.relationships-section {
    margin-bottom: 3rem;
}

/* Layout for dependencies and dependents in columns */
.relationships-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}

/* On mobile, stack sections vertically */
@media (max-width: 768px) {
    .relationships-content {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

.dependencies-section,
.dependents-section {
    margin-bottom: 2rem;
}

.section-description {
    color: #718096;
    margin-bottom: 1.5rem;
    font-style: italic;
}

.related-component-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1.5rem;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    border-left: 4px solid #e2e8f0;
}

.related-component-card:hover {
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}

.component-meta {
    margin-top: 1rem;
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.type-tag {
    background: #e2e8f0;
    color: #2d3748;
    padding: 0.25rem 0.5rem;
    border-radius: 6px;
    font-size: 0.8rem;
    font-weight: 500;
}

.ui-tag {
    background: #e6f3ff;
    color: #2b6cb0;
}

.service-tag {
    background: #fdf2f8;
    color: #97266d;
}

.data-tag {
    background: #e6fffa;
    color: #065f46;
}

.infrastructure-tag {
    background: #f0fff4;
    color: #276749;
}

.feature-link {
    color: #667eea;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.3s ease;
}

.feature-link:hover {
    color: #4c51bf;
    text-decoration: underline;
}

/* Responsive */
@media (max-width: 768px) {
    .container {
        padding: 1rem;
    }
    
    .header {
        padding: 1rem;
    }
    
    .header h1 {
        font-size: 2rem;
    }
    
    .navigation {
        gap: 0.5rem;
        justify-content: center;
    }
    
    .navigation-two-row {
        gap: 0.5rem;
    }
    
    .nav-row {
        gap: 0.4rem;
    }
    
    .nav-row-primary {
        padding-bottom: 0.4rem;
    }
    
    .nav-link {
        text-align: center;
        padding: 0.5rem 0.8rem;
        font-size: 0.8rem;
        min-width: 100px;
        flex: 0 1 auto;
    }
    
    .nav-row-secondary .nav-link {
        font-size: 0.78rem;
        padding: 0.4rem 0.7rem;
    }
}

/* Extra small screens - stack navigation vertically */
@media (max-width: 480px) {
    .navigation {
        flex-direction: column;
        gap: 0.5rem;
        align-items: center;
    }
    
    .nav-link {
        width: 200px;
        max-width: 90vw;
        justify-content: center;
        padding: 0.75rem 1rem;
    }
    
    .summary-header {
        flex-direction: column;
        gap: 1rem;
        text-align: center;
    }
    
    .summary-stats {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    
    .feature-hero {
        flex-direction: column;
        text-align: center;
    }
    
    .feature-hero-content {
        min-width: auto;
    }
    
    .feature-hero h2 {
        font-size: 2rem;
    }
    
    .feature-stats-mini {
        max-width: 250px;
        margin: 0 auto;
    }
    
    .component-grid {
        grid-template-columns: 1fr;
    }
    
    .user-stories-grid {
        grid-template-columns: 1fr;
    }
    
    .component-hero {
        flex-direction: column;
        text-align: center;
    }
    
    .component-hero-content {
        min-width: auto;
    }
    
    .component-hero h2 {
        font-size: 2rem;
    }
    
    .technical-content {
        grid-template-columns: 1fr;
    }
    
    .details-grid {
        grid-template-columns: 1fr;
    }
    
    .stats-grid {
        grid-template-columns: 1fr;
    }
    
    .component-grid {
        grid-template-columns: 1fr;
    }
    
    .feature-details-grid {
        grid-template-columns: 1fr;
    }
    
    .metadata-grid {
        grid-template-columns: 1fr;
    }
    
    .metadata-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
}

/* Documents Section Styling */
.documents-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}

.doc-stat-card {
    background: linear-gradient(135deg, #4299e1 0%, #3182ce 100%);
    color: white;
    padding: 1.5rem;
    border-radius: 10px;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.doc-stat-card.error {
    background: linear-gradient(135deg, #ff6b6b 0%, #ee5a52 100%);
}

.doc-stat-number {
    font-size: 2.5rem;
    font-weight: bold;
    margin-bottom: 0.5rem;
}

.doc-stat-label {
    font-size: 1rem;
    font-weight: 500;
    opacity: 0.9;
}

.documents-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: 1.5rem;
}

.document-item {
    background: white;
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    border-left: 4px solid #4299e1;
    transition: all 0.3s ease;
}

.document-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

.document-item.completed {
    border-left-color: #48bb78;
}

.document-item.error {
    border-left-color: #f56565;
}

.document-item.pending {
    border-left-color: #ed8936;
}

.document-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.document-header h4 {
    margin: 0;
    color: #2d3748;
    font-size: 1.2rem;
    flex: 1;
}

.document-title-link {
    color: #2d3748;
    text-decoration: none;
    transition: color 0.3s ease;
}

.document-title-link:hover {
    color: #4299e1;
}

.document-details {
    margin-bottom: 1rem;
}

.document-details .detail-row {
    display: flex;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}

.document-details .detail-row .label {
    font-weight: 600;
    color: #4a5568;
    min-width: 100px;
    margin-right: 0.5rem;
}

.document-details .detail-row .value {
    color: #2d3748;
    flex: 1;
    word-break: break-all;
}

.document-details .detail-row.error .label,
.document-details .detail-row.error .value {
    color: #e53e3e;
}

.document-actions {
    display: flex;
    gap: 0.75rem;
    margin-top: 1rem;
}

.doc-action-btn {
    padding: 0.5rem 1rem;
    border-radius: 6px;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 500;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
}

.doc-action-btn.primary {
    background: linear-gradient(135deg, #4299e1 0%, #3182ce 100%);
    color: white;
}

.doc-action-btn.primary:hover {
    background: linear-gradient(135deg, #3182ce 0%, #2c5282 100%);
    transform: translateY(-1px);
}

.doc-action-btn.secondary {
    background: #e2e8f0;
    color: #4a5568;
    cursor: default;
}

/* Component Group Pages */
.breadcrumb-section {
    margin-bottom: 2rem;
}

.breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    border: 1px solid #e2e8f0;
    font-size: 0.95rem;
    position: relative;
    overflow: hidden;
}

.breadcrumb::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
}

.breadcrumb-link {
    color: #667eea;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.3s ease;
    padding: 0.25rem 0.5rem;
    border-radius: 6px;
    position: relative;
}

.breadcrumb-link:hover {
    color: #4c51bf;
    background: rgba(102, 126, 234, 0.1);
    transform: translateY(-1px);
}

.breadcrumb-separator {
    color: #cbd5e0;
    font-weight: 600;
    font-size: 1.1rem;
    margin: 0 0.25rem;
}

.breadcrumb-current {
    color: #2d3748;
    font-weight: 700;
    padding: 0.25rem 0.75rem;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(102, 126, 234, 0.3);
}

.component-group-section {
    margin-bottom: 3rem;
}

.group-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
    margin: 2rem 0;
}

.ui-stat { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
.service-stat { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); }
.data-stat { background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); }
.infrastructure-stat { background: linear-gradient(135deg, #43e97b 0%, #38d9a9 100%); }

.component-group-description {
    background: #f7fafc;
    padding: 1.5rem;
    border-radius: 8px;
    border-left: 4px solid #667eea;
    margin: 2rem 0;
}

.component-group-description p {
    color: #4a5568;
    line-height: 1.6;
    margin: 0;
}

.related-types-section {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 2px solid #e2e8f0;
}

.related-types-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
    margin-top: 1.5rem;
}

.related-type-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    transition: all 0.3s ease;
}

.related-type-card:hover {
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}

.related-type-card.ui-component {
    border-left: 4px solid #667eea;
}

.related-type-card.service-component {
    border-left: 4px solid #f093fb;
}

.related-type-card.data-component {
    border-left: 4px solid #4facfe;
}

.related-type-card.infrastructure-component {
    border-left: 4px solid #43e97b;
}

.related-type-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.related-type-header h3 {
    margin: 0;
    font-size: 1.2rem;
}

.related-type-link {
    color: #2d3748;
    text-decoration: none;
    transition: color 0.3s ease;
}

.related-type-link:hover {
    color: #667eea;
}

.component-count {
    background: #e2e8f0;
    color: #4a5568;
    padding: 0.25rem 0.75rem;
    border-radius: 12px;
    font-size: 0.9rem;
    font-weight: 600;
}

.related-type-description {
    color: #4a5568;
    line-height: 1.5;
    margin: 0;
}

/* Responsive design for component group pages */
@media (max-width: 768px) {
    .breadcrumb {
        flex-wrap: wrap;
        padding: 0.75rem 1rem;
        gap: 0.5rem;
    }
    
    .breadcrumb-link {
        padding: 0.2rem 0.4rem;
        font-size: 0.9rem;
    }
    
    .breadcrumb-current {
        padding: 0.2rem 0.6rem;
        font-size: 0.9rem;
    }
    
    .breadcrumb-separator {
        font-size: 1rem;
        margin: 0 0.1rem;
    }
    
    .group-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }
    
    .related-types-grid {
        grid-template-columns: 1fr;
    }
    
    .related-type-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
}

/* Tech Stack Detail Page Improvements */
.tech-item-stats-horizontal {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1rem;
    color: #64748b;
}

.stat-item {
    font-weight: 500;
}

.stat-separator {
    color: #cbd5e1;
    font-weight: bold;
}

/* Tight tabs without gap */
.tech-stack-tabs-tight {
    margin-bottom: 0;
}

.tech-stack-tabs-tight .tab-buttons {
    display: flex;
    background: #f1f5f9;
    border-radius: 8px;
    padding: 4px;
    margin-bottom: 0;
}

.tech-summaries-container {
    margin-top: 0;
    padding-top: 1.5rem;
}

/* Modern Category Context */
.category-context-sexy {
    margin: 2rem 0;
}

.context-card-modern {
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.context-header-modern {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.category-badge-large {
    background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
    color: white;
    padding: 0.5rem 1rem;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.9rem;
}

.context-label {
    color: #64748b;
    font-size: 0.875rem;
    font-weight: 500;
}

.context-description {
    margin: 1.5rem 0;
    color: #475569;
    line-height: 1.7;
}

.context-actions-modern {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.action-btn-sexy {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.2s ease;
    font-size: 0.9rem;
}

.action-btn-sexy.primary {
    background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
    color: white;
}

.action-btn-sexy.primary:hover {
    background: linear-gradient(135deg, #2563eb 0%, #1e40af 100%);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

.action-btn-sexy.secondary {
    background: #f8fafc;
    color: #475569;
    border: 1px solid #e2e8f0;
}

.action-btn-sexy.secondary:hover {
    background: #e2e8f0;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.btn-icon {
    font-size: 1rem;
}

.btn-text {
    font-weight: 500;
}

/* Modern Related Links */
.related-info-sexy {
    margin: 2rem 0;
}

.related-grid-modern {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
    margin-top: 1.5rem;
}

.related-card-sexy {
    display: flex;
    align-items: center;
    padding: 1.5rem;
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.related-card-sexy:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
    border-color: #cbd5e1;
}

.related-card-sexy.features-card:hover {
    border-color: #f59e0b;
    box-shadow: 0 8px 25px rgba(245, 158, 11, 0.2);
}

.related-card-sexy.components-card:hover {
    border-color: #8b5cf6;
    box-shadow: 0 8px 25px rgba(139, 92, 246, 0.2);
}

.related-card-sexy.tech-stack-card:hover {
    border-color: #10b981;
    box-shadow: 0 8px 25px rgba(16, 185, 129, 0.2);
}

.card-icon {
    font-size: 2rem;
    margin-right: 1rem;
    flex-shrink: 0;
}

.card-content {
    flex: 1;
}

.card-content h4 {
    color: #1e293b;
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.card-content p {
    color: #64748b;
    font-size: 0.875rem;
    margin: 0;
}

.card-arrow {
    font-size: 1.25rem;
    color: #94a3b8;
    margin-left: 1rem;
    transition: transform 0.2s ease;
}

.related-card-sexy:hover .card-arrow {
    transform: translateX(4px);
    color: #475569;
}

/* Improved link colors throughout */
a {
    color: #3b82f6;
    transition: color 0.2s ease;
}

a:hover {
    color: #1d4ed8;
}

.tech-name-link {
    color: #1e293b;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s ease;
}

.tech-name-link:hover {
    color: #3b82f6;
    text-decoration: underline;
}

/* Navigation styles are defined above - removing duplicate */

/* ========================================= */
/* AREAS SECTION - Beautiful purple theme   */
/* ========================================= */
.areas-modern {
    margin-bottom: 3rem;
    background: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

.areas-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #f1f5f9;
}

.areas-header h3 {
    font-size: 1.5rem;
    color: #2d3748;
    margin: 0;
    font-weight: 700;
}

.areas-link-header {
    color: #9333ea;
    text-decoration: none;
    font-weight: 600;
    font-size: 1rem;
    padding: 0.5rem 1rem;
    border-radius: 6px;
    transition: all 0.3s ease;
    background: rgba(147, 51, 234, 0.1);
}

.areas-link-header:hover {
    background: rgba(147, 51, 234, 0.2);
    transform: translateX(4px);
}

.areas-summary-card {
    background: linear-gradient(135deg, #a29bfe 0%, #6c5ce7 100%);
    color: white;
    border-radius: 12px;
    padding: 1.5rem;
    margin-bottom: 2rem;
    box-shadow: 0 6px 20px rgba(162, 155, 254, 0.3);
}

.areas-stats {
    display: flex;
    justify-content: space-around;
    align-items: center;
}

.area-stat-item {
    text-align: center;
    flex: 1;
}

.area-stat-number {
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 0.25rem;
    color: white;
}

.area-stat-label {
    font-size: 0.9rem;
    font-weight: 500;
    opacity: 0.9;
    color: white;
}

.area-stat-divider {
    width: 1px;
    height: 40px;
    background: rgba(255, 255, 255, 0.3);
}

.areas-preview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
}

.area-preview-card {
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 1.5rem;
    text-decoration: none;
    color: inherit;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.area-preview-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(147, 51, 234, 0.15);
    border-color: #a29bfe;
}

.area-preview-content {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.area-preview-icon {
    font-size: 2rem;
    margin-right: 0.5rem;
}

.area-preview-name {
    font-size: 1.1rem;
    font-weight: 600;
    color: #2d3748;
    line-height: 1.3;
}

/* ========================================= */
/* DATA MODELS - Professional teal/cyan theme */
/* ========================================= */

/* Data Models Overview Section */
.data-models-overview-section {
    margin-bottom: 3rem;
    background: linear-gradient(135deg, #0891b2 0%, #0e7490 100%);
    color: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 8px 25px rgba(8, 145, 178, 0.3);
}

.data-models-hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 2rem;
}

.data-models-hero-content h2 {
    font-size: 2.2rem;
    margin-bottom: 0.5rem;
    color: white;
}

.data-models-tagline {
    font-size: 1.1rem;
    opacity: 0.9;
    margin: 0;
    color: white;
}

.data-models-stats-horizontal {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.data-models-stats-horizontal .stat-item {
    text-align: center;
    min-width: 80px;
}

.data-models-stats-horizontal .stat-number {
    display: block;
    font-size: 2rem;
    font-weight: bold;
    color: white;
    line-height: 1;
}

.data-models-stats-horizontal .stat-label {
    display: block;
    font-size: 0.9rem;
    opacity: 0.9;
    color: white;
    margin-top: 0.25rem;
}

.data-models-stats-horizontal .stat-separator {
    color: rgba(255, 255, 255, 0.6);
    font-size: 1.2rem;
}

/* Category Statistics Section */
.data-models-stats-section {
    margin-bottom: 3rem;
}

.data-models-stats-section h2 {
    color: #0e7490;
    margin-bottom: 1.5rem;
    font-size: 1.8rem;
}

.category-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
}

.category-stat-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    border-left: 4px solid #0891b2;
}

.category-stat-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(8, 145, 178, 0.15);
}

.category-stat-card.core-category {
    border-left-color: #0891b2;
    background: linear-gradient(135deg, rgba(8, 145, 178, 0.05) 0%, rgba(255, 255, 255, 0.9) 100%);
}

.data-models-stats-section .category-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid #e0f2fe;
}

.data-models-stats-section .category-header h3 {
    color: #0e7490;
    margin: 0;
    font-size: 1.3rem;
}

.category-count {
    background: #0891b2;
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-weight: bold;
    font-size: 0.9rem;
}

.category-description {
    margin-bottom: 1.5rem;
}

.category-description p {
    color: #4a5568;
    margin: 0;
    line-height: 1.5;
}

.category-entities {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.entity-tag {
    background: #f0f9ff;
    color: #0e7490;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    border: 1px solid #bae6fd;
}

.entity-tag-link {
    text-decoration: none;
    transition: all 0.3s ease;
}

.entity-tag-link:hover {
    background: #0891b2;
    color: white;
    border-color: #0891b2;
}

.entity-tag.more {
    background: #e2e8f0;
    color: #64748b;
    border-color: #cbd5e1;
}

/* Data Models List Section */
.data-models-list-section {
    margin-bottom: 3rem;
}

.data-models-list-section h2 {
    color: #0e7490;
    margin-bottom: 1.5rem;
    font-size: 1.8rem;
}

.data-models-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 1.5rem;
}

.data-model-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    border-left: 4px solid #0891b2;
}

.data-model-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(8, 145, 178, 0.15);
}

.data-model-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.data-model-header h3 {
    margin: 0;
    font-size: 1.3rem;
}

.data-model-title-link {
    color: #0e7490;
    text-decoration: none;
    transition: color 0.3s ease;
}

.data-model-title-link:hover {
    color: #0891b2;
}

.category-badge {
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
}

.core-badge {
    background: #0891b2;
    color: white;
}

.data-model-description {
    color: #4a5568;
    margin-bottom: 1.5rem;
    line-height: 1.5;
}

.data-model-stats {
    display: flex;
    justify-content: space-around;
    padding-top: 1rem;
    border-top: 1px solid #e2e8f0;
}

.model-stat {
    text-align: center;
    flex: 1;
}

.model-stat .stat-number {
    display: block;
    font-size: 1.5rem;
    font-weight: bold;
    color: #0891b2;
    line-height: 1;
}

.model-stat .stat-label {
    display: block;
    font-size: 0.8rem;
    color: #64748b;
    margin-top: 0.25rem;
    text-transform: uppercase;
    font-weight: 500;
}

/* Entity Relationships Section */
.relationships-overview-section {
    margin-bottom: 3rem;
}

.relationships-overview-section h2 {
    color: #0e7490;
    margin-bottom: 1.5rem;
    font-size: 1.8rem;
}

.relationships-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
}

.relationship-type-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    border-left: 4px solid #06b6d4;
}

.relationship-type-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(6, 182, 212, 0.15);
}

.relationship-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}

.relationship-header h3 {
    color: #0e7490;
    margin: 0;
    font-size: 1.3rem;
}

/* Style for unknown relationship types */
.relationship-type-card.unknown-type {
    opacity: 0.8;
    border-left-color: #cbd5e1;
    background: #f8fafc;
}

.relationship-type-card.unknown-type .relationship-header h3 {
    color: #94a3b8;
    font-style: italic;
}

.relationship-type-card.unknown-type .relationship-count {
    background: #94a3b8;
    opacity: 0.8;
}

.relationship-type-card.unknown-type .relationship-example {
    opacity: 0.7;
}

.relationship-count {
    background: #06b6d4;
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-weight: bold;
    font-size: 0.9rem;
}

.relationship-examples {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.relationship-example {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    background: #f0f9ff;
    border-radius: 8px;
    border: 1px solid #bae6fd;
}

.from-entity,
.to-entity {
    background: white;
    color: #0e7490;
    padding: 0.25rem 0.75rem;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    text-decoration: none;
    border: 1px solid #e2e8f0;
    transition: all 0.3s ease;
    min-width: 80px;
    text-align: center;
}

/* Style for unknown/missing entities */
.from-entity[href*="unknown"],
.to-entity[href*="unknown"] {
    background: #f1f5f9;
    color: #94a3b8;
    border-color: #e2e8f0;
    font-style: italic;
    opacity: 0.7;
}

.from-entity:hover,
.to-entity:hover {
    background: #0891b2;
    color: white;
    border-color: #0891b2;
}

.relationship-arrow {
    color: #06b6d4;
    font-weight: bold;
    font-size: 1.2rem;
}

.no-relationships {
    text-align: center;
    padding: 3rem 2rem;
    color: #64748b;
    font-style: italic;
    background: #f8fafc;
    border-radius: 12px;
    border: 1px dashed #e2e8f0;
}

/* Data Model Entities List */
.data-model-entities {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid #e2e8f0;
}

.data-model-entities h4 {
    color: #0e7490;
    font-size: 1rem;
    margin-bottom: 0.75rem;
}

.data-model-entities .entity-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.entity-name-link {
    background: #f0f9ff;
    color: #0e7490;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    text-decoration: none;
    border: 1px solid #bae6fd;
    transition: all 0.3s ease;
}

.entity-name-link:hover {
    background: #0891b2;
    color: white;
    border-color: #0891b2;
}

.entity-more {
    background: #e2e8f0;
    color: #64748b;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    border: 1px solid #cbd5e1;
}

/* Responsive Design for Data Models */
@media (max-width: 768px) {
    .data-models-hero {
        flex-direction: column;
        text-align: center;
    }
    
    .data-models-stats-horizontal {
        justify-content: center;
    }
    
    .category-stats-grid,
    .data-models-grid,
    .relationships-grid {
        grid-template-columns: 1fr;
    }
    
    .relationship-example {
        flex-direction: column;
        gap: 0.5rem;
        text-align: center;
    }
    
    .from-entity,
    .to-entity {
        min-width: auto;
        flex: 1;
    }
}

/* ========================================= */
/* ARCHITECTURE & DESIGN - Beautiful green theme */
/* ========================================= */
.arch-design-modern {
    margin-bottom: 3rem;
    background: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

.arch-design-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #f1f5f9;
}

.arch-design-header h3 {
    font-size: 1.5rem;
    color: #2d3748;
    margin: 0;
    font-weight: 700;
}

.arch-design-link-header {
    color: #047857;
    text-decoration: none;
    font-weight: 600;
    font-size: 1rem;
    padding: 0.5rem 1rem;
    border-radius: 6px;
    transition: all 0.3s ease;
    background: rgba(4, 120, 87, 0.1);
}

.arch-design-link-header:hover {
    background: rgba(4, 120, 87, 0.2);
    transform: translateX(4px);
}

.arch-design-cards {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.arch-design-overview-card {
    background: linear-gradient(135deg, #10b981 0%, #047857 100%);
    color: white;
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 6px 20px rgba(16, 185, 129, 0.3);
}

.arch-design-overview-stats {
    display: flex;
    justify-content: space-around;
    align-items: center;
}

.arch-design-stat-item {
    text-align: center;
    flex: 1;
}

.arch-design-stat-number {
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 0.25rem;
    color: white;
}

.arch-design-stat-label {
    font-size: 0.9rem;
    font-weight: 500;
    opacity: 0.9;
    color: white;
}

.arch-design-stat-divider {
    width: 1px;
    height: 40px;
    background: rgba(255, 255, 255, 0.3);
}

.arch-design-categories-modern {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
}

.arch-design-category-link {
    text-decoration: none;
    color: inherit;
}

.arch-design-category-modern {
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 1.5rem;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.arch-design-category-modern:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(16, 185, 129, 0.15);
    border-color: #10b981;
}

.arch-design-category-modern .category-name {
    font-size: 1.1rem;
    font-weight: 600;
    color: #2d3748;
    margin-bottom: 0.5rem;
}

.arch-design-category-modern .category-count {
    font-size: 0.9rem;
    color: #64748b;
    margin-bottom: 1rem;
}

.arch-design-category-modern .category-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.arch-design-preview-tag {
    background: linear-gradient(135deg, #10b981 0%, #047857 100%);
    color: white;
    padding: 0.4rem 0.8rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 2px 6px rgba(16, 185, 129, 0.2);
}

.arch-design-preview-tag:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
    color: white;
}

.arch-design-preview-tag.clickable {
    cursor: pointer;
}

/* Responsive design for both sections */
@media (max-width: 768px) {
    .areas-preview-grid,
    .arch-design-categories-modern {
        grid-template-columns: 1fr;
    }
    
    .areas-stats,
    .arch-design-overview-stats {
        flex-direction: column;
        gap: 1rem;
    }
    
    .area-stat-divider,
    .arch-design-stat-divider {
        display: none;
    }
    
    .areas-header,
    .arch-design-header {
        flex-direction: column;
        gap: 1rem;
        text-align: center;
    }
}

/* ========================================= */
/* AREA DETAIL PAGES - Purple theme styling */
/* ========================================= */

/* Area Detail Header */
.area-detail-header {
    margin-bottom: 3rem;
}

.area-hero {
    background: linear-gradient(135deg, #a29bfe 0%, #6c5ce7 100%);
    color: white;
    border-radius: 12px;
    padding: 3rem 2rem;
    box-shadow: 0 8px 25px rgba(162, 155, 254, 0.3);
    position: relative;
    overflow: hidden;
}

.area-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.05) 100%);
    pointer-events: none;
}

.area-hero-content {
    position: relative;
    z-index: 2;
    text-align: center;
    margin-bottom: 2rem;
}

.area-badges-large {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.complexity-badge-large,
.priority-badge-large,
.status-badge-large {
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    background: rgba(255, 255, 255, 0.2);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.area-hero h2 {
    font-size: 2.5rem;
    margin-bottom: 0.5rem;
    color: white !important;
    font-weight: 700;
}

.area-tagline {
    font-size: 1.1rem;
    opacity: 0.9;
    color: white;
}

.area-stats-horizontal {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    font-size: 1rem;
    color: white;
    opacity: 0.9;
    position: relative;
    z-index: 2;
}

.stat-separator {
    color: rgba(255, 255, 255, 0.6);
    font-weight: bold;
}

.stat-item {
    font-weight: 500;
}

/* Area Description Section */
.area-description-section {
    margin-bottom: 3rem;
    background: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

.area-description-section h2 {
    color: #2d3748;
    margin-bottom: 1.5rem;
    border-bottom: 3px solid #e2e8f0;
    padding-bottom: 0.5rem;
}

.description-content p {
    line-height: 1.7;
    color: #4a5568;
    font-size: 1.1rem;
}

/* Area Perspectives/Tabs Section */
.area-perspectives-section {
    margin-bottom: 3rem;
    background: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

.area-tabs {
    margin-bottom: 2rem;
}

.area-tabs .tab-buttons {
    display: flex;
    background: #f1f5f9;
    border-radius: 8px;
    padding: 4px;
    gap: 4px;
}

.area-tabs .tab-button {
    flex: 1;
    padding: 0.75rem 1rem;
    border: none;
    background: transparent;
    border-radius: 6px;
    font-weight: 600;
    font-size: 0.9rem;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
}

.area-tabs .tab-button.active {
    background: linear-gradient(135deg, #a29bfe 0%, #6c5ce7 100%);
    color: white;
    box-shadow: 0 2px 8px rgba(162, 155, 254, 0.3);
}

.area-tabs .tab-button:hover:not(.active) {
    background: rgba(162, 155, 254, 0.1);
    color: #6c5ce7;
}

.area-summaries-container {
    position: relative;
    min-height: 200px;
}

.area-summary-pane {
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.area-summary-pane.active {
    display: block;
    opacity: 1;
}

.area-summary-pane .summary-card {
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 2rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.area-summary-pane .summary-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #f1f5f9;
}

.area-summary-pane .summary-header h3 {
    color: #2d3748;
    margin: 0;
    font-size: 1.3rem;
}

.audience-tag {
    background: linear-gradient(135deg, #a29bfe 0%, #6c5ce7 100%);
    color: white;
    padding: 0.4rem 0.8rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
}

.area-summary-pane .summary-content p {
    line-height: 1.7;
    color: #4a5568;
    font-size: 1rem;
}

/* Related Items Section */
.related-items-section {
    margin-bottom: 3rem;
    background: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

.related-items-section h2 {
    color: #2d3748;
    margin-bottom: 1.5rem;
    border-bottom: 3px solid #e2e8f0;
    padding-bottom: 0.5rem;
}

.related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.related-card {
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.related-card h3 {
    color: #2d3748;
    margin-bottom: 1rem;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.related-items {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.related-item-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    background: rgba(162, 155, 254, 0.05);
    border: 1px solid rgba(162, 155, 254, 0.15);
    border-radius: 8px;
    text-decoration: none;
    color: #2d3748;
    transition: all 0.3s ease;
}

.related-item-link:hover {
    background: rgba(162, 155, 254, 0.1);
    border-color: #a29bfe;
    transform: translateX(4px);
}

.related-icon {
    font-size: 1.2rem;
    width: 30px;
    text-align: center;
}

.related-name {
    font-weight: 600;
    flex: 1;
}

/* Area Actions Section */
.area-actions-section {
    margin-bottom: 2rem;
}

.action-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.action-btn {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.action-btn.primary {
    background: linear-gradient(135deg, #a29bfe 0%, #6c5ce7 100%);
    color: white;
    box-shadow: 0 4px 12px rgba(162, 155, 254, 0.3);
}

.action-btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(162, 155, 254, 0.4);
}

.action-btn.secondary {
    background: white;
    color: #6c5ce7;
    border-color: #a29bfe;
}

.action-btn.secondary:hover {
    background: rgba(162, 155, 254, 0.1);
    transform: translateY(-2px);
}

.btn-icon {
    font-size: 1.1rem;
}

.btn-text {
    font-size: 1rem;
}

/* Responsive design for area detail pages */
@media (max-width: 768px) {
    .area-hero {
        padding: 2rem 1rem;
    }
    
    .area-hero h2 {
        font-size: 2rem;
    }
    
    .area-badges-large {
        flex-direction: column;
        align-items: center;
    }
    
    .area-stats-horizontal {
        flex-direction: column;
        gap: 0.5rem;
    }
    
    .stat-separator {
        display: none;
    }
    
    .area-tabs .tab-buttons {
        flex-direction: column;
    }
    
    .related-grid {
        grid-template-columns: 1fr;
    }
    
    .action-buttons {
        flex-direction: column;
        align-items: center;
    }
    
    .action-btn {
        width: 100%;
        max-width: 300px;
        justify-content: center;
    }
}

/* ========================================= */
/* AREAS LISTING PAGE - Purple theme styling */
/* ========================================= */

/* Areas Listing Section */
.areas-listing-section {
    margin-bottom: 3rem;
    background: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

.areas-listing-section h2 {
    color: #2d3748;
    margin-bottom: 2rem;
    border-bottom: 3px solid #e2e8f0;
    padding-bottom: 0.5rem;
    font-size: 1.8rem;
}

.areas-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 2rem;
}

/* Area Card Styling */
.area-card {
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 0;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    overflow: hidden;
}

.area-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(162, 155, 254, 0.15);
    border-color: #a29bfe;
}

.area-card-header {
    background: linear-gradient(135deg, #a29bfe 0%, #6c5ce7 100%);
    color: white;
    padding: 1.5rem;
    position: relative;
}

.area-card-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.05) 100%);
    pointer-events: none;
}

.area-title-section {
    position: relative;
    z-index: 2;
}

.area-title-section h3 {
    margin: 0 0 1rem 0;
    font-size: 1.4rem;
    font-weight: 700;
}

.area-title-link {
    color: white;
    text-decoration: none;
    transition: all 0.3s ease;
}

.area-title-link:hover {
    color: rgba(255, 255, 255, 0.9);
    text-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.area-badges {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.complexity-badge,
.priority-badge {
    padding: 0.4rem 0.8rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    background: rgba(255, 255, 255, 0.2);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.complexity-medium {
    background: rgba(255, 193, 7, 0.2);
    border-color: rgba(255, 193, 7, 0.4);
}

.priority-medium {
    background: rgba(0, 123, 255, 0.2);
    border-color: rgba(0, 123, 255, 0.4);
}

.area-card-content {
    padding: 1.5rem;
}

.area-description {
    margin-bottom: 1rem;
}

.area-description p {
    line-height: 1.6;
    color: #4a5568;
    font-size: 0.95rem;
    margin: 0;
}

.area-card-footer {
    padding: 1rem 1.5rem;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
}

.area-detail-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: #6c5ce7;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.3s ease;
    padding: 0.5rem 0;
}

.area-detail-link:hover {
    color: #5a4fcf;
    transform: translateX(4px);
}

.area-detail-link::after {
    content: '→';
    transition: transform 0.3s ease;
}

.area-detail-link:hover::after {
    transform: translateX(2px);
}

/* Breadcrumb Section */
.breadcrumb-section {
    margin-bottom: 2rem;
}

.breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    border: 1px solid #e2e8f0;
    font-size: 0.95rem;
    position: relative;
    overflow: hidden;
}

.breadcrumb::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
}

.breadcrumb-link {
    color: #667eea;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.3s ease;
    padding: 0.25rem 0.5rem;
    border-radius: 6px;
    position: relative;
}

.breadcrumb-link:hover {
    color: #4c51bf;
    background: rgba(102, 126, 234, 0.1);
    transform: translateY(-1px);
}

.breadcrumb-separator {
    color: #cbd5e0;
    font-weight: 600;
    font-size: 1.1rem;
    margin: 0 0.25rem;
}

.breadcrumb-current {
    color: #2d3748;
    font-weight: 700;
    padding: 0.25rem 0.75rem;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(102, 126, 234, 0.3);
}

/* Responsive design for areas listing */
@media (max-width: 768px) {
    .areas-grid {
        grid-template-columns: 1fr;
    }
    
    .area-card {
        margin-bottom: 1rem;
    }
    
    .area-badges {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .breadcrumb {
        flex-wrap: wrap;
        padding: 0.75rem 1rem;
        gap: 0.5rem;
    }
    
    .breadcrumb-link {
        padding: 0.2rem 0.4rem;
        font-size: 0.9rem;
    }
    
    .breadcrumb-current {
        padding: 0.2rem 0.6rem;
        font-size: 0.9rem;
    }
    
    .breadcrumb-separator {
        font-size: 1rem;
        margin: 0 0.1rem;
    }
    
    .areas-listing-section {
        padding: 1rem;
    }
}

/* ============================================== */
/* COMPONENT COLOR SYSTEM - Consistent across all pages */
/* ============================================== */

:root {
    /* Component Type System - Professional 4-Color System */
    --ui-color: #3B82F6;
    --ui-color-light: #93C5FD;
    --ui-color-dark: #1E40AF;
    --ui-bg: rgba(59, 130, 246, 0.1);
    --ui-border: rgba(59, 130, 246, 0.2);
    
    --service-color: #8B5CF6;
    --service-color-light: #C4B5FD;
    --service-color-dark: #6D28D9;
    --service-bg: rgba(139, 92, 246, 0.1);
    --service-border: rgba(139, 92, 246, 0.2);
    
    --data-color: #F59E0B;
    --data-color-light: #FCD34D;
    --data-color-dark: #D97706;
    --data-bg: rgba(245, 158, 11, 0.1);
    --data-border: rgba(245, 158, 11, 0.2);
    
    --infrastructure-color: #64748B;
    --infrastructure-color-light: #94A3B8;
    --infrastructure-color-dark: #475569;
    --infrastructure-bg: rgba(100, 116, 139, 0.1);
    --infrastructure-border: rgba(100, 116, 139, 0.2);
    
    --shared-color: #EC4899;
    --shared-color-light: #F9A8D4;
    --shared-color-dark: #BE185D;
    --shared-bg: rgba(236, 72, 153, 0.1);
    --shared-border: rgba(236, 72, 153, 0.2);
}

/* Component Type Colors - UI Components */
.ui-component,
.component-card.ui-component,
.component-preview-card.ui-component {
    border-left: 4px solid var(--ui-color);
    background: linear-gradient(135deg, var(--ui-bg) 0%, rgba(255, 255, 255, 0.9) 100%);
}

.ui-component .component-header {
    background: linear-gradient(135deg, var(--ui-bg) 0%, rgba(255, 255, 255, 0.9) 100%);
    color: #2d3748;
}

.ui-component .component-title-link {
    color: #2d3748;
}

.ui-component .component-title-link:hover {
    color: var(--ui-color-dark);
}

.ui-component .preview-title-link {
    color: var(--ui-color-dark);
}

.ui-component .preview-title-link:hover {
    color: var(--ui-color);
}

/* Component Type Colors - Service Components */
.service-component,
.component-card.service-component,
.component-preview-card.service-component {
    border-left: 4px solid var(--service-color);
    background: linear-gradient(135deg, var(--service-bg) 0%, rgba(255, 255, 255, 0.9) 100%);
}

.service-component .component-header {
    background: linear-gradient(135deg, var(--service-bg) 0%, rgba(255, 255, 255, 0.9) 100%);
    color: #2d3748;
}

.service-component .component-title-link {
    color: #2d3748;
}

.service-component .component-title-link:hover {
    color: var(--service-color-dark);
}

.service-component .preview-title-link {
    color: var(--service-color-dark);
}

.service-component .preview-title-link:hover {
    color: var(--service-color);
}

/* Component Type Colors - Data Components */
.data-component,
.component-card.data-component,
.component-preview-card.data-component {
    border-left: 4px solid var(--data-color);
    background: linear-gradient(135deg, var(--data-bg) 0%, rgba(255, 255, 255, 0.9) 100%);
}

.data-component .component-header {
    background: linear-gradient(135deg, var(--data-bg) 0%, rgba(255, 255, 255, 0.9) 100%);
    color: #2d3748;
}

.data-component .component-title-link {
    color: #2d3748;
}

.data-component .component-title-link:hover {
    color: var(--data-color-dark);
}

.data-component .preview-title-link {
    color: var(--data-color-dark);
}

.data-component .preview-title-link:hover {
    color: var(--data-color);
}

/* Component Type Colors - Infrastructure Components */
.infrastructure-component,
.component-card.infrastructure-component,
.component-preview-card.infrastructure-component {
    border-left: 4px solid var(--infrastructure-color);
    background: linear-gradient(135deg, var(--infrastructure-bg) 0%, rgba(255, 255, 255, 0.9) 100%);
}

.infrastructure-component .component-header {
    background: linear-gradient(135deg, var(--infrastructure-bg) 0%, rgba(255, 255, 255, 0.9) 100%);
    color: #2d3748;
}

.infrastructure-component .component-title-link {
    color: #2d3748;
}

.infrastructure-component .component-title-link:hover {
    color: var(--infrastructure-color-dark);
}

.infrastructure-component .preview-title-link {
    color: var(--infrastructure-color-dark);
}

.infrastructure-component .preview-title-link:hover {
    color: var(--infrastructure-color);
}

/* Component Type Colors - Shared Components */
.shared-component,
.component-card.shared-component,
.component-preview-card.shared-component {
    border-left: 4px solid var(--shared-color);
    background: linear-gradient(135deg, var(--shared-bg) 0%, rgba(255, 255, 255, 0.9) 100%);
}

.shared-component .component-header {
    background: linear-gradient(135deg, var(--shared-bg) 0%, rgba(255, 255, 255, 0.9) 100%);
    color: #2d3748;
}

.shared-component .component-title-link {
    color: #2d3748;
}

.shared-component .component-title-link:hover {
    color: var(--shared-color-dark);
}

.shared-component .preview-title-link {
    color: var(--shared-color-dark);
}

.shared-component .preview-title-link:hover {
    color: var(--shared-color);
}

/* ============================================== */
/* COMPONENTS PAGE - Expand/Collapse & Preview System */
/* ============================================== */

/* Component Type Section */
.component-type-section {
    margin-bottom: 3rem;
    background: white;
    border-radius: 12px;
    padding: 0;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    overflow: hidden;
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem 2rem;
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    border-bottom: 1px solid #e2e8f0;
}

.section-header h3 {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
}

.component-type-link {
    color: #2d3748;
    text-decoration: none;
    transition: color 0.3s ease;
}

.component-type-link:hover {
    color: #4299e1;
}

.collapse-btn {
    background: linear-gradient(135deg, #4299e1 0%, #3182ce 100%);
    color: white;
    border: none;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: 0.9rem;
}

.collapse-btn:hover {
    background: linear-gradient(135deg, #3182ce 0%, #2c5282 100%);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(66, 153, 225, 0.3);
}

/* Component type specific button colors - now using onclick attribute selectors above */

/* Component Preview Grid (when collapsed) */
.component-preview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1rem;
    padding: 2rem;
    background: #f8fafc;
}

.component-preview-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1rem;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    position: relative;
}

.component-preview-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.1);
}

.preview-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.preview-title-link {
    font-weight: 600;
    text-decoration: none;
    font-size: 0.95rem;
    line-height: 1.3;
    flex: 1;
    transition: color 0.3s ease;
}

.preview-shared-badge {
    background: linear-gradient(135deg, var(--shared-color) 0%, var(--shared-color-dark) 100%);
    color: white;
    padding: 0.25rem 0.6rem;
    border-radius: 12px;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

/* Component Grid (when expanded) */
.component-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 2rem;
    padding: 2rem;
    transition: all 0.5s ease;
    opacity: 1;
    max-height: none;
    overflow: visible;
}

.component-grid.collapsed {
    display: none;
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    padding: 0;
}

/* Component Card Styling */
.component-card {
    border-radius: 12px;
    padding: 0;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    overflow: hidden;
    border: 1px solid #e2e8f0;
}

/* Component card hover effects with type-specific colors */
.ui-component.component-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(59, 130, 246, 0.2);
    border-color: var(--ui-color);
}

.service-component.component-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(139, 92, 246, 0.2);
    border-color: var(--service-color);
}

.data-component.component-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(245, 158, 11, 0.2);
    border-color: var(--data-color);
}

.infrastructure-component.component-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(100, 116, 139, 0.2);
    border-color: var(--infrastructure-color);
}

.shared-component.component-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(16, 185, 129, 0.2);
    border-color: var(--shared-color);
}

.component-header {
    padding: 1.5rem;
    color: white;
    position: relative;
}

.component-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.05) 100%);
    pointer-events: none;
}

.component-header h3 {
    margin: 0 0 1rem 0;
    font-size: 1.3rem;
    font-weight: 700;
    position: relative;
    z-index: 2;
}

.component-title-link {
    color: white;
    text-decoration: none;
    transition: all 0.3s ease;
}

.component-title-link:hover {
    color: rgba(255, 255, 255, 0.9);
    text-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.component-badges {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    position: relative;
    z-index: 2;
}

.complexity-badge,
.shared-badge {
    padding: 0.4rem 0.8rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    background: rgba(255, 255, 255, 0.9);
    color: #2d3748;
    border: 1px solid rgba(45, 55, 72, 0.2);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.complexity-low {
    background: rgba(34, 197, 94, 0.9);
    color: white;
    border-color: rgba(34, 197, 94, 1);
}

.complexity-medium {
    background: rgba(255, 193, 7, 0.9);
    color: #2d3748;
    border-color: rgba(255, 193, 7, 1);
}

.complexity-high {
    background: rgba(239, 68, 68, 0.9);
    color: white;
    border-color: rgba(239, 68, 68, 1);
}

.shared-badge {
    background: rgba(16, 185, 129, 0.9);
    color: white;
    border-color: rgba(16, 185, 129, 1);
}

/* Component Content */
.component-content {
    padding: 1.5rem;
}

.component-description {
    margin-bottom: 1.5rem;
}

.component-description p {
    color: #4a5568;
    line-height: 1.6;
    font-size: 1rem;
    margin: 0;
}

.content-section {
    margin-bottom: 1.5rem;
}

.content-section h4 {
    color: #2d3748;
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.responsibilities-list ul {
    margin: 0;
    padding-left: 1.5rem;
    color: #4a5568;
}

.responsibilities-list li {
    margin-bottom: 0.5rem;
    line-height: 1.5;
}

.feature-link a {
    color: #4299e1;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.3s ease;
}

.feature-link a:hover {
    color: #3182ce;
    text-decoration: underline;
}

/* Hide/Show System */
.hidden {
    display: none !important;
}

/* Responsive Design for Components */
@media (max-width: 768px) {
    .component-preview-grid {
        grid-template-columns: 1fr;
        padding: 1rem;
    }
    
    .component-grid {
        grid-template-columns: 1fr;
        padding: 1rem;
    }
    
    .section-header {
        flex-direction: column;
        gap: 1rem;
        text-align: center;
    }
    
    .component-badges {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .preview-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
}

/* ==================== INTEGRATIONS PAGE STYLES ==================== */

/* Integrations Section */
.integrations-section {
    margin-bottom: 3rem;
}

.integrations-section h2 {
    color: #2d3748;
    margin-bottom: 2rem;
    font-size: 2rem;
    text-align: center;
    font-weight: 700;
}

/* Integrations Stats */
.integrations-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.5rem;
    margin-bottom: 3rem;
}

.integrations-stats .stat-card {
    background: white;
    padding: 1.5rem;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    text-align: center;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.integrations-stats .stat-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

.integrations-stats .stat-card:nth-child(1) {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
}

.integrations-stats .stat-card:nth-child(2) {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
    color: white;
}

.integrations-stats .stat-card:nth-child(3) {
    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
    color: white;
}

.integrations-stats .stat-card:nth-child(4) {
    background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
    color: white;
}

/* Integration Types Section */
.integration-types-section {
    margin-bottom: 3rem;
}

.integration-types-section h3 {
    color: #2d3748;
    margin-bottom: 1.5rem;
    font-size: 1.5rem;
    font-weight: 600;
}

.integration-types-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
}

.type-card {
    background: white;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    overflow: hidden;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.type-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
    border-color: #667eea;
}

.type-header {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.type-icon {
    font-size: 1.5rem;
}

.type-header h3 {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 600;
    color: white;
}

.type-stats {
    padding: 1rem 1.5rem;
    text-align: center;
    border-bottom: 1px solid #e2e8f0;
}

.type-count {
    font-size: 2rem;
    font-weight: 700;
    color: #667eea;
    margin-bottom: 0.25rem;
}

.type-label {
    color: #64748b;
    font-size: 0.9rem;
}

.type-items {
    padding: 1rem 1.5rem;
}

.type-item {
    background: #f8fafc;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
    color: #475569;
    border-left: 3px solid #667eea;
}

.type-item:last-child {
    margin-bottom: 0;
}

/* All Integrations Section */
.integrations-list-section {
    margin-bottom: 3rem;
}

.integrations-list-section h3 {
    color: #2d3748;
    margin-bottom: 1.5rem;
    font-size: 1.5rem;
    font-weight: 600;
}

.integrations-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 1.5rem;
}

.integration-card {
    background: white;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    overflow: hidden;
    transition: all 0.3s ease;
    border: 2px solid transparent;
    cursor: pointer;
}

.integration-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
    border-color: #667eea;
}

.integration-header {
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    padding: 1.5rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    border-bottom: 1px solid #e2e8f0;
}

.integration-icon {
    font-size: 2rem;
    flex-shrink: 0;
}

.integration-title {
    flex: 1;
}

.integration-title h3 {
    margin: 0 0 0.5rem 0;
    color: #2d3748;
    font-size: 1.2rem;
    font-weight: 600;
}

.integration-subtitle {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.integration-type {
    background: #667eea;
    color: white;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 500;
}

.integration-provider {
    color: #64748b;
    font-size: 0.8rem;
}

.integration-flow {
    font-size: 1.5rem;
    color: #64748b;
}

.integration-body {
    padding: 1.5rem;
}

.integration-description {
    color: #475569;
    margin-bottom: 1rem;
    line-height: 1.6;
}

.integration-details {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
}

.detail-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0;
    border-bottom: 1px solid #f1f5f9;
}

.detail-label {
    color: #64748b;
    font-size: 0.9rem;
    font-weight: 500;
}

.detail-value {
    color: #2d3748;
    font-weight: 600;
    font-size: 0.9rem;
}

.integration-footer {
    padding: 1rem 1.5rem;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
}

.integration-tags {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.tag {
    padding: 0.25rem 0.5rem;
    background: #e2e8f0;
    color: #475569;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 500;
}

.tag-bidirectional {
    background: #dbeafe;
    color: #3b82f6;
}

.tag-outbound {
    background: #fef3c7;
    color: #f59e0b;
}

.tag-inbound {
    background: #d1fae5;
    color: #10b981;
}

.tag-rest-api,
.tag-database-connection {
    background: #f3e8ff;
    color: #8b5cf6;
}

/* Responsive adjustments for integrations */
@media (max-width: 768px) {
    .integrations-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }
    
    .integration-types-grid {
        grid-template-columns: 1fr;
    }
    
    .integrations-grid {
        grid-template-columns: 1fr;
    }
    
    .integration-details {
        grid-template-columns: 1fr;
    }
    
    .integration-header {
        flex-direction: column;
        text-align: center;
        gap: 0.75rem;
    }
}

/* User Roles Page Styles */
.user-roles-section {
    margin-bottom: 3rem;
}

.user-roles-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(500px, 1fr));
    gap: 2rem;
}

.user-role-card {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 0;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    overflow: hidden;
}

.user-role-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(103, 126, 234, 0.15);
    border-color: #667eea;
}

.role-header {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    padding: 1.5rem;
    color: white;
}

.role-title-section h3 {
    margin: 0 0 0.75rem 0;
    font-size: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.role-badges {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.skill-badge, .stories-badge {
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 600;
}

.skill-badge {
    background: rgba(255, 255, 255, 0.2);
    color: white;
}

.skill-beginner {
    background: rgba(34, 197, 94, 0.2);
}

.skill-intermediate {
    background: rgba(251, 146, 60, 0.2);
}

.skill-advanced {
    background: rgba(139, 92, 246, 0.2);
}

.skill-expert {
    background: rgba(239, 68, 68, 0.2);
}

.stories-badge {
    background: rgba(255, 255, 255, 0.15);
    color: white;
}

.role-content {
    padding: 1.5rem;
}

.role-description {
    margin-bottom: 1.5rem;
    color: #4a5568;
    line-height: 1.6;
}

.role-description p {
    margin-bottom: 1rem;
}

.role-description p:last-child {
    margin-bottom: 0;
}

/* Role Summaries with Tabs */
.role-summaries {
    margin-bottom: 1.5rem;
}

.summary-tabs {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
    border-bottom: 2px solid #e2e8f0;
}

.summary-tab {
    padding: 0.5rem 1rem;
    background: none;
    border: none;
    color: #64748b;
    cursor: pointer;
    font-weight: 500;
    font-size: 0.9rem;
    transition: all 0.3s ease;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
}

.summary-tab:hover {
    color: #667eea;
}

.summary-tab.active {
    color: #667eea;
    border-bottom-color: #667eea;
}

.summary-contents {
    background: #f8fafc;
    border-radius: 8px;
    padding: 1.5rem;
}

.role-summary-content {
    display: none;
    color: #4a5568;
    line-height: 1.6;
}

.role-summary-content p {
    margin-bottom: 1rem;
}

.role-summary-content p:last-child {
    margin-bottom: 0;
}

/* Role Stories Preview */
.role-stories-preview {
    background: #f8fafc;
    border-radius: 8px;
    padding: 1.5rem;
}

.role-stories-preview h4 {
    margin: 0 0 1rem 0;
    color: #2d3748;
    font-size: 1.1rem;
}

.stories-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.story-preview {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1rem;
    transition: all 0.3s ease;
}

.story-preview:hover {
    border-color: #667eea;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.story-title {
    font-weight: 600;
    color: #2d3748;
    margin-bottom: 0.5rem;
}

.story-criteria {
    color: #64748b;
    font-size: 0.9rem;
    line-height: 1.4;
}

.story-description {
    color: #64748b;
    font-size: 0.85rem;
    line-height: 1.5;
    margin-top: 0.25rem;
}

.more-stories {
    text-align: center;
    color: #667eea;
    font-weight: 600;
    font-size: 0.9rem;
    padding: 0.5rem;
}

/* Skill Level Distribution */
.skill-distribution-section {
    margin-bottom: 3rem;
}

.skill-distribution {
    background: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

.skill-bars {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.skill-bar-container {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.skill-bar-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.skill-name {
    font-weight: 600;
    color: #2d3748;
}

.skill-count {
    color: #64748b;
    font-size: 0.9rem;
}

.skill-bar-track {
    height: 10px;
    background: #e2e8f0;
    border-radius: 5px;
    overflow: hidden;
}

.skill-bar-fill {
    height: 100%;
    transition: width 0.5s ease;
}

.skill-bar-fill.skill-beginner {
    background: linear-gradient(90deg, #22c55e 0%, #10b981 100%);
}

.skill-bar-fill.skill-intermediate {
    background: linear-gradient(90deg, #fb923c 0%, #f97316 100%);
}

.skill-bar-fill.skill-advanced {
    background: linear-gradient(90deg, #8b5cf6 0%, #7c3aed 100%);
}

.skill-bar-fill.skill-expert {
    background: linear-gradient(90deg, #ef4444 0%, #dc2626 100%);
}

/* Responsive adjustments for user roles */
@media (max-width: 768px) {
    .user-roles-grid {
        grid-template-columns: 1fr;
    }
    
    .role-badges {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .summary-tabs {
        flex-wrap: wrap;
    }
    
    .skill-distribution {
        padding: 1.5rem;
    }
}
