/* _content/Ayva.ModuleExplorer/ModuleExplorer/ApiTester/ApiEndpointBrowser.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 30) — API endpoint browser. */
.api-endpoint-browser[b-1h4o7qrwwt] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.filters[b-1h4o7qrwwt] {
    display: flex;
    gap: var(--space-md);
}

.endpoint-search[b-1h4o7qrwwt] {
    flex: 1;
    padding: var(--space-sm) var(--space-md);
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    font-family: var(--font-primary);
}

.endpoint-search:focus[b-1h4o7qrwwt] {
    outline: none;
    border-color: var(--accent-color-30);
    box-shadow: var(--shadow-focus);
}

.endpoint-list[b-1h4o7qrwwt] {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.muted[b-1h4o7qrwwt], .loading[b-1h4o7qrwwt] {
    color: var(--text-muted);
    padding: var(--space-md);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/ApiTester/ApiEndpointCard.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 14) — endpoint card. */
.api-endpoint-card[b-wha68vtqef] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.api-endpoint-card[data-expanded="true"][b-wha68vtqef] {
    border-color: var(--accent-color-30);
}

.endpoint-row[b-wha68vtqef] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: var(--space-md);
    align-items: center;
    width: 100%;
    padding: var(--space-sm) var(--space-md);
    background: transparent;
    border: 0;
    color: var(--text-secondary);
    font-family: var(--font-primary);
    cursor: pointer;
    text-align: left;
}

.endpoint-row:hover[b-wha68vtqef] {
    background: var(--bg-hover);
    color: var(--text-primary);
}

.method-chip[b-wha68vtqef] {
    padding: var(--space-xs) var(--space-md);
    border-radius: var(--radius-full);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
}

.api-endpoint-card[data-method="GET"]    .method-chip[b-wha68vtqef] { background: var(--info-color-15); color: var(--info-text); }
.api-endpoint-card[data-method="POST"]   .method-chip[b-wha68vtqef] { background: var(--accent-color-15); color: var(--accent-color-light); }
.api-endpoint-card[data-method="PUT"]    .method-chip[b-wha68vtqef] { background: var(--warning-color-15); color: var(--warning-text); }
.api-endpoint-card[data-method="DELETE"] .method-chip[b-wha68vtqef] { background: var(--error-color-15); color: var(--error-text); }
.api-endpoint-card[data-method="PATCH"]  .method-chip[b-wha68vtqef] { background: var(--warning-color-15); color: var(--warning-text); }

.endpoint-path[b-wha68vtqef] {
    font-family: var(--font-mono);
    color: var(--text-primary);
    font-size: var(--text-sm);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.endpoint-meta[b-wha68vtqef] {
    display: flex;
    gap: var(--space-xs);
}

.meta-chip[b-wha68vtqef] {
    padding: 2px var(--space-sm);
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    border: 1px solid var(--border-subtle);
}

.meta-chip.deprecated[b-wha68vtqef] { background: var(--bg-secondary); color: var(--text-muted); }
.meta-chip.warning[b-wha68vtqef]    { background: var(--warning-color-15); color: var(--warning-text); border-color: var(--warning-color-30); }
.meta-chip.muted[b-wha68vtqef]      { background: var(--bg-secondary); color: var(--text-muted); }
/* _content/Ayva.ModuleExplorer/ModuleExplorer/ApiTester/ResponseViewer.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 31) — response viewer. */
.response-viewer[b-zvisqcn3vg] {
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-inset-deep);
    padding: var(--space-md);
}

.rv-header[b-zvisqcn3vg] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-md);
}

.status-badge[b-zvisqcn3vg] {
    padding: var(--space-xs) var(--space-md);
    border-radius: var(--radius-full);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    font-weight: 600;
    border: 1px solid transparent;
}

.status-badge[data-status="2xx"][b-zvisqcn3vg] { background: var(--success-color-15); color: var(--success-text); border-color: var(--success-color-30); }
.status-badge[data-status="3xx"][b-zvisqcn3vg] { background: var(--info-color-15); color: var(--info-text); border-color: var(--info-color-30); }
.status-badge[data-status="4xx"][b-zvisqcn3vg] { background: var(--warning-color-15); color: var(--warning-text); border-color: var(--warning-color-30); }
.status-badge[data-status="5xx"][b-zvisqcn3vg] { background: var(--error-color-15); color: var(--error-text); border-color: var(--error-color-30); }

.rv-timing[b-zvisqcn3vg] {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

.rv-body[b-zvisqcn3vg] {
    background: transparent;
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    margin: 0;
    padding: var(--space-sm);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    overflow-x: auto;
    max-height: 50vh;
    white-space: pre-wrap;
    word-break: break-all;
}

.response-viewer[data-sensitive="true"][b-zvisqcn3vg] {
    border-color: var(--error-color-40);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/ApiTester/StreamingResponseViewer.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 31) — streaming response viewer. */
.streaming-viewer[b-598ve3e9gk] {
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-inset-deep);
    padding: var(--space-md);
}

.sv-toolbar[b-598ve3e9gk] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-md);
}

.sv-stop[b-598ve3e9gk] {
    padding: var(--space-xs) var(--space-md);
    background: var(--error-color-15);
    border: 1px solid var(--error-color-30);
    border-radius: var(--radius-sm);
    color: var(--error-text);
    font-family: var(--font-primary);
    cursor: pointer;
}

.sv-stop:disabled[b-598ve3e9gk] {
    opacity: 0.5;
    cursor: not-allowed;
}

.sv-stats[b-598ve3e9gk] {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

.sv-events[b-598ve3e9gk] {
    max-height: 60vh;
    overflow-y: auto;
}

.sv-event[b-598ve3e9gk] {
    padding: var(--space-xs) var(--space-md);
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

.muted[b-598ve3e9gk] {
    color: var(--text-muted);
    padding: var(--space-md);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/ApiTester/TestTargetField.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 30) — test target field. */
.test-target-field[b-8mmumfhv7c] {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.ttf-label[b-8mmumfhv7c] {
    color: var(--text-muted);
    font-family: var(--font-primary);
    font-size: var(--text-sm);
}

.ttf-input[b-8mmumfhv7c] {
    padding: var(--space-sm) var(--space-md);
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

.test-target-field[data-valid="false"] .ttf-input[b-8mmumfhv7c] {
    border-color: var(--error-color-40);
}

.test-target-field[data-valid="true"] .ttf-input[b-8mmumfhv7c] {
    border-color: var(--success-color-30);
}

.ttf-error[b-8mmumfhv7c] {
    color: var(--error-text);
    font-size: var(--text-xs);
    margin: 0;
}

.ttf-hint[b-8mmumfhv7c] {
    color: var(--success-text);
    font-size: var(--text-xs);
    margin: 0;
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/ApiTester/TryItPanel.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 30) — Try-It panel. */
.try-it-panel[b-w8gxr1ttvb] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border-top: 1px solid var(--border-subtle);
    padding: var(--space-md);
    display: grid;
    grid-template-rows: auto auto auto auto auto auto;
    gap: var(--space-md);
}

.panel-row[b-w8gxr1ttvb] { display: flex; flex-direction: column; gap: var(--space-xs); }

.panel-label[b-w8gxr1ttvb] {
    color: var(--text-muted);
    font-family: var(--font-primary);
    font-size: var(--text-sm);
}

.body-editor[b-w8gxr1ttvb] {
    width: 100%;
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    padding: var(--space-sm);
    resize: vertical;
}

.panel-actions[b-w8gxr1ttvb] {
    display: flex;
    gap: var(--space-md);
    align-items: center;
}

.send-button[b-w8gxr1ttvb] {
    padding: var(--space-sm) var(--space-lg);
    background: var(--accent-color-15);
    border: 1px solid var(--accent-color-30);
    border-radius: var(--radius-md);
    color: var(--accent-color-light);
    font-family: var(--font-primary);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.send-button:hover:not(:disabled)[b-w8gxr1ttvb] {
    background: var(--accent-color-30);
    color: var(--text-primary);
}

.send-button:disabled[b-w8gxr1ttvb] {
    opacity: 0.5;
    cursor: not-allowed;
}

.send-button[data-destructive="true"][b-w8gxr1ttvb] {
    background: var(--error-color-15);
    border-color: var(--error-color-30);
    color: var(--error-text);
}

.production-banner[b-w8gxr1ttvb] {
    background: var(--error-color-15);
    border: 1px solid var(--error-color-40);
    color: var(--error-text);
    border-radius: var(--radius-md);
    padding: var(--space-sm) var(--space-md);
    font-weight: 600;
    margin: 0;
}

.timing[b-w8gxr1ttvb] {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

.body-row-head[b-w8gxr1ttvb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    flex-wrap: wrap;
}

.body-row-actions[b-w8gxr1ttvb] {
    display: flex;
    gap: var(--space-xs);
}

.body-action[b-w8gxr1ttvb] {
    padding: 4px var(--space-sm);
    background: transparent;
    color: var(--text-muted);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    cursor: pointer;
    transition: var(--transition-fast);
}
.body-action:hover[b-w8gxr1ttvb] {
    color: var(--accent-color-light);
    border-color: var(--accent-color-30);
}

.schema-pre[b-w8gxr1ttvb] {
    margin: var(--space-xs) 0 0;
    padding: var(--space-sm) var(--space-md);
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    line-height: 1.5;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 320px;
    overflow: auto;
}

.response-schema-details[b-w8gxr1ttvb] {
    margin-top: var(--space-sm);
}
.response-schema-details > summary[b-w8gxr1ttvb] {
    cursor: pointer;
    color: var(--text-muted);
    font-size: var(--text-xs);
    padding: var(--space-xs) 0;
    user-select: none;
}

.muted[b-w8gxr1ttvb] {
    color: var(--text-muted);
    font-size: var(--text-sm);
    font-style: italic;
    margin: 0;
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Components/ApiExplorerPanel.razor.rz.scp.css */
.api-explorer-page[b-aozzvz7ezf] {
    padding: var(--space-md);
    background:
        var(--bg-radial-accent),
        var(--bg-radial-secondary),
        var(--bg-base);
    min-height: 100vh;
    color: var(--text-primary);
    font-family: var(--font-primary);
}

.ae-header[b-aozzvz7ezf] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    padding: var(--space-lg);
    margin-bottom: var(--space-md);
    box-shadow: var(--glass-paper-shadow);
}

.ae-header h1[b-aozzvz7ezf] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    margin: 0 0 var(--space-sm);
}

.ae-header p[b-aozzvz7ezf] {
    color: var(--text-secondary);
    margin: 0;
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Components/CommandPalette.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 10) — command palette. */
.command-palette-overlay[b-81x7wfh23i] {
    position: fixed;
    inset: 0;
    background: var(--menu-backdrop);
    backdrop-filter: var(--glass-blur);
    align-items: flex-start;
    justify-content: center;
    padding-top: 18vh;
    z-index: 1200;
}

.command-palette-overlay.open[b-81x7wfh23i] {
    display: flex;
}

.command-palette[b-81x7wfh23i] {
    width: min(640px, 92vw);
    background:
        linear-gradient(180deg, var(--white-overlay-04) 0%, transparent 60%),
        var(--glass-elevated);
    backdrop-filter: var(--glass-blur-strong);
    border: 1px solid var(--border-color-medium);
    border-radius: var(--radius-2xl);
    box-shadow: var(--glass-paper-shadow-hover);
    overflow: hidden;
}

.cp-input[b-81x7wfh23i] {
    width: 100%;
    padding: var(--space-lg);
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    outline: none;
}

.cp-input:focus[b-81x7wfh23i] {
    box-shadow: var(--shadow-focus);
}

.cp-results[b-81x7wfh23i] {
    list-style: none;
    max-height: 50vh;
    overflow-y: auto;
    padding: var(--space-sm);
    margin: 0;
}

.cp-item[b-81x7wfh23i] {
    padding: var(--space-md);
    border-radius: var(--radius-md);
    display: flex;
    gap: var(--space-md);
    cursor: pointer;
    transition: background var(--transition-fast);
    color: var(--text-secondary);
    border-left: 2px solid transparent;
}

.cp-item:hover[b-81x7wfh23i] {
    background: var(--bg-hover);
}

.cp-item[data-active="true"][b-81x7wfh23i] {
    background: var(--bg-hover);
    border-left-color: var(--accent-color);
    color: var(--text-primary);
}

.cp-icon[b-81x7wfh23i] {
    color: var(--accent-color-light);
    font-family: var(--font-mono);
    width: 20px;
    text-align: center;
}

.cp-empty[b-81x7wfh23i] {
    padding: var(--space-md);
    color: var(--text-muted);
    text-align: center;
}

.cp-hint[b-81x7wfh23i] {
    padding: var(--space-md);
    color: var(--text-muted);
    font-size: var(--text-xs);
    border-top: 1px solid var(--border-subtle);
}

.cp-hint kbd[b-81x7wfh23i] {
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-xs);
    padding: 0 var(--space-xs);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
}

@media (prefers-reduced-motion: reduce) {
    .cp-item[b-81x7wfh23i] {
        transition: none;
    }
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Components/Dialogs/ModuleLeakDialog.razor.rz.scp.css */
.module-leak-dialog .leak-summary[b-oyllbnb9qa] {
    display: flex;
    gap: var(--spacing-md, 1rem);
    align-items: flex-start;
    padding: var(--spacing-sm, 0.5rem) 0;
}

.module-leak-dialog .leak-subtitle[b-oyllbnb9qa] {
    color: var(--text-secondary, #a0a0a0);
    margin-top: var(--spacing-xs, 0.25rem);
}

.module-leak-dialog .leak-subtitle code[b-oyllbnb9qa],
.module-leak-dialog .leak-detail-table code[b-oyllbnb9qa] {
    font-family: var(--font-mono, 'Fira Code', monospace);
    background: var(--surface-elevated, rgba(255, 255, 255, 0.04));
    padding: 0.1rem 0.35rem;
    border-radius: var(--radius-sm, 4px);
    font-size: 0.85rem;
}

.module-leak-dialog .leak-detail-table th[b-oyllbnb9qa] {
    text-align: left;
    width: 180px;
    color: var(--text-muted, #808080);
    font-weight: 500;
    padding: var(--spacing-xs, 0.25rem) var(--spacing-sm, 0.5rem);
}

.module-leak-dialog .leak-detail-table td[b-oyllbnb9qa] {
    padding: var(--spacing-xs, 0.25rem) var(--spacing-sm, 0.5rem);
}

.module-leak-dialog .leak-hint[b-oyllbnb9qa] {
    font-style: italic;
    color: var(--text-secondary, #a0a0a0);
    line-height: 1.45;
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Components/MobileEmptyState.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 7) — mobile empty state.
   Critical #C10 — visibility is controlled by @media in ModuleExplorerPage.razor.css. */
.mobile-empty-state[b-mwn3xed7li] {
    padding: var(--space-lg);
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mes-card[b-mwn3xed7li] {
    max-width: 480px;
    width: 100%;
    padding: var(--space-lg);
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    box-shadow: var(--glass-paper-shadow);
    text-align: center;
}

.mes-icon[b-mwn3xed7li] {
    color: var(--text-muted);
    margin-bottom: var(--space-md);
}

.mes-card h3[b-mwn3xed7li] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    margin: 0 0 var(--space-sm);
}

.mes-card p[b-mwn3xed7li] {
    color: var(--text-secondary);
    margin: 0 0 var(--space-md);
}

.mes-modules-preview[b-mwn3xed7li] {
    margin-top: var(--space-md);
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-sm);
}

.mes-table[b-mwn3xed7li] {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

.mes-table td[b-mwn3xed7li] {
    padding: var(--space-xs) var(--space-sm);
    color: var(--text-secondary);
    text-align: left;
}

.mes-dot[b-mwn3xed7li] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    background: var(--text-muted);
}

.mes-dot[data-state="Loaded"][b-mwn3xed7li]      { background: var(--success-color); }
.mes-dot[data-state="Quarantined"][b-mwn3xed7li] { background: var(--warning-color); }
.mes-dot[data-state="Failed"][b-mwn3xed7li]      { background: var(--error-color); }
.mes-dot[data-state="Unloaded"][b-mwn3xed7li]    { background: var(--text-muted); }

.mes-empty[b-mwn3xed7li] {
    color: var(--text-muted);
    font-size: var(--text-sm);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Components/ModuleExplorerPanel.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 3) — page shell. */
.me-page[b-5h8u73086c] {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
    background:
        var(--bg-radial-accent),
        var(--bg-radial-secondary),
        var(--bg-base);
    color: var(--text-primary);
    font-family: var(--font-primary);
    transition: background var(--transition-data);
}

/* The shell is the second child (after MobileEmptyState which is hidden
   on desktop). Stretch it to claim every remaining pixel. */
.me-page[b-5h8u73086c] >  .module-explorer-shell {
    flex: 1 1 auto;
    min-height: 0;
}

/*
   Critical #C10 — pure-CSS shell swap. Both shells always render;
   @media toggles which one is visible.
*/
.me-page[b-5h8u73086c] >  .mobile-empty-state { display: none; }
.me-page[b-5h8u73086c] >  .module-explorer-shell { display: grid; }
.me-page[b-5h8u73086c] >  .command-palette-overlay { display: none; }
.me-page[b-5h8u73086c] >  .command-palette-overlay.open { display: flex; }

@media (max-width: 1023px) {
    .me-page[b-5h8u73086c] >  .module-explorer-shell { display: none; }
    .me-page[b-5h8u73086c] >  .command-palette-overlay { display: none; }
    .me-page[b-5h8u73086c] >  .mobile-empty-state { display: block; }
}

/* Concern #Cn4 — data-state hooks. */
.me-page[data-state="empty"][b-5h8u73086c] {
    /* Empty-state padding handled by ModuleExplorerShell. */
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Components/ModuleExplorerShell.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 5) — 2-pane layout that fills the
   AdminPanel host (.panel-viewport is flex:1 height; .me-page is the
   immediate child here). The shell stretches to its parent's full
   width + height instead of using a viewport-based min-height
   that would over-fill inside the panel container. */
.module-explorer-shell[b-kwkiufbydt] {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: var(--space-md);
    padding: var(--space-md);
    width: 100%;
    height: 100%;
    min-height: 0;
    box-sizing: border-box;
}

.me-detail[b-kwkiufbydt] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    min-width: 0;
    min-height: 0;
}

.me-stats-strip[b-kwkiufbydt] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
    gap: var(--space-md);
}

.me-base-tabs[b-kwkiufbydt] {
    display: flex;
    gap: var(--space-xs);
    border-bottom: 1px solid var(--border-subtle);
    flex-shrink: 0;
}

.me-base-tab[b-kwkiufbydt] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-sm) var(--space-md);
    background: transparent;
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    color: var(--text-secondary);
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    cursor: pointer;
    transition: var(--transition-fast);
    margin-bottom: -1px;            /* overlap the bottom border */
}

.me-base-tab:hover:not(.active)[b-kwkiufbydt] {
    color: var(--text-primary);
    background: var(--glass-inset);
}

.me-base-tab.active[b-kwkiufbydt] {
    color: var(--accent-color-light);
    background: var(--glass-elevated);
    border-color: var(--border-subtle);
    border-bottom-color: var(--glass-elevated);
}

.me-base-tab .material-icons[b-kwkiufbydt] {
    font-size: var(--text-base);
}

.me-base-tab-count[b-kwkiufbydt] {
    margin-left: var(--space-xs);
    padding: 2px var(--space-xs);
    background: var(--glass-inset);
    color: var(--text-muted);
    border-radius: var(--radius-full);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
}

.me-base-panel[b-kwkiufbydt] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.me-base-panel[data-tab="architecture"][b-kwkiufbydt] {
    /* The dep-graph fills its container directly. */
    overflow: hidden;
    background: var(--glass-elevated);
    border: 1px solid var(--border-subtle);
    border-top: none;
    border-radius: 0 var(--radius-md) var(--radius-md) var(--radius-md);
}

.me-base-panel[data-tab="modules"][b-kwkiufbydt] {
    overflow-y: auto;
}

/* Critical #C25 — illustrated empty state. */
.module-explorer-shell[data-state="empty"][b-kwkiufbydt] {
    display: block;
    padding: var(--space-2xl, 2rem);
    text-align: center;
    min-height: 60vh;
}

.me-empty[b-kwkiufbydt] {
    max-width: 560px;
    margin: 12vh auto 0;
    padding: var(--space-lg);
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    box-shadow: var(--glass-paper-shadow);
}

.me-empty-illustration[b-kwkiufbydt] {
    color: var(--text-muted);
    margin-bottom: var(--space-md);
}

.me-empty h2[b-kwkiufbydt] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-xl, 1.25rem);
    margin: 0 0 var(--space-md);
}

.me-empty p[b-kwkiufbydt] {
    color: var(--text-secondary);
    margin: 0 0 var(--space-sm);
}

.me-empty .me-empty-hint[b-kwkiufbydt] {
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.me-empty code[b-kwkiufbydt] {
    font-family: var(--font-mono);
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-xs);
    padding: 0 var(--space-xs);
}

.me-empty a[b-kwkiufbydt] {
    color: var(--accent-color-light);
    text-decoration: none;
}

.me-empty a:hover[b-kwkiufbydt] {
    text-decoration: underline;
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Components/ModuleHero.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 9) — module hero. */
.me-hero[b-sbfel1rngl] {
    position: relative;
    isolation: isolate;
    min-height: 132px;
    padding: var(--space-lg);
    background:
        linear-gradient(180deg, var(--white-overlay-04) 0%, transparent 60%),
        var(--glass-elevated);
    backdrop-filter: var(--glass-blur-strong);
    border: 1px solid var(--border-color-medium);
    border-radius: var(--radius-2xl);
    box-shadow: var(--glass-paper-shadow-hover);
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: var(--space-md);
}

.me-hero[b-sbfel1rngl]::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: var(--bg-radial-accent), var(--bg-radial-secondary);
    opacity: 0.7;
    border-radius: inherit;
    z-index: -1;
}

.hero-titles[b-sbfel1rngl] {
    min-width: 0;
}

.hero-name[b-sbfel1rngl] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-2xl, 1.5rem);
    font-weight: 700;
    margin: 0 0 var(--space-xs);
}

.hero-subtitle[b-sbfel1rngl] {
    display: flex;
    gap: var(--space-md);
    align-items: center;
    margin: 0 0 var(--space-sm);
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.hero-id[b-sbfel1rngl], .hero-version[b-sbfel1rngl] {
    font-family: var(--font-mono);
    color: var(--text-muted);
}

/* "build NNNN" chip beside the manifest semver — sources from the
   auto-bumped 4-part AssemblyVersion (modules/Directory.Build.targets).
   Subtle by design: operators read it for "is this fresher than what
   the watcher last reloaded?", not as primary identity. */
.hero-build[b-sbfel1rngl] {
    display: inline-flex;
    align-items: center;
    padding: 1px var(--space-sm);
    border-radius: var(--radius-sm);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--text-secondary);
    background: var(--bg-secondary);
    border: 1px solid var(--border-subtle);
    cursor: help;
}

.state-chip[b-sbfel1rngl] {
    padding: 2px var(--space-md);
    border-radius: var(--radius-full);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border: 1px solid transparent;
}

.state-chip[data-state="Loaded"][b-sbfel1rngl]      { background: var(--success-color-15); color: var(--success-text); border-color: var(--success-color-30); }
.state-chip[data-state="Quarantined"][b-sbfel1rngl] { background: var(--warning-color-15); color: var(--warning-text); border-color: var(--warning-color-30); }
.state-chip[data-state="Failed"][b-sbfel1rngl]      { background: var(--error-color-15);   color: var(--error-text);   border-color: var(--error-color-30); }
.state-chip[data-state="Unloaded"][b-sbfel1rngl]    { background: var(--bg-secondary);     color: var(--text-secondary); border-color: var(--border-subtle); }

.me-hero[data-state="Loaded"]      .state-chip[b-sbfel1rngl] { box-shadow: var(--state-loaded-glow);     animation: hero-halo-b-sbfel1rngl 2.4s ease-in-out infinite; }
.me-hero[data-state="Quarantined"] .state-chip[b-sbfel1rngl] { box-shadow: var(--state-quarantine-glow); animation: hero-halo-b-sbfel1rngl 1.4s ease-in-out infinite; border: 2px dashed var(--warning-color); }
.me-hero[data-state="Failed"]      .state-chip[b-sbfel1rngl] { box-shadow: var(--state-failed-glow); }

@keyframes hero-halo-b-sbfel1rngl {
    0%, 100% { box-shadow: var(--state-loaded-glow); }
    50%      { box-shadow: 0 0 18px var(--accent-color-50); }
}

.me-vitals[b-sbfel1rngl] {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    font-variant-numeric: tabular-nums;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    align-items: center;
}

.me-vitals .dot[b-sbfel1rngl] {
    color: var(--border-color-medium);
}

.hero-actions[b-sbfel1rngl] {
    display: flex;
    gap: var(--space-sm);
    align-items: center;
}

.hero-btn[b-sbfel1rngl] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-sm) var(--space-md);
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    color: var(--text-secondary);
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.hero-btn:hover[b-sbfel1rngl] {
    background: var(--bg-hover);
    color: var(--text-primary);
    border-color: var(--accent-color-30);
}

.hero-btn.primary[b-sbfel1rngl] {
    background: var(--accent-color-15);
    color: var(--accent-color-light);
    border-color: var(--accent-color-30);
}

/* Module-enablement controls — Disable / Enable + Required chip. Same
   metrics as .hero-btn so the row stays visually flush. */
.hero-btn-danger[b-sbfel1rngl] {
    background: color-mix(in srgb, var(--color-error) 12%, transparent);
    color: var(--color-error);
    border: 1px solid color-mix(in srgb, var(--color-error) 30%, transparent);
    padding: var(--space-xs) var(--space-sm);
    border-radius: var(--radius-md);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: 500;
    cursor: pointer;
    transition: var(--transition-fast);
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
}
.hero-btn-danger:hover[b-sbfel1rngl] { filter: brightness(1.15); }
.hero-btn-danger:disabled[b-sbfel1rngl] { opacity: 0.5; cursor: not-allowed; }

/* Swap button — appears next to a disabled Load/Enable button when a
   loaded peer declares the current module in Conflicts. Visually
   distinct (accent-tinted) so the operator notices the affordance. */
.hero-btn-swap[b-sbfel1rngl] {
    background: color-mix(in srgb, var(--color-accent, #2563eb) 12%, transparent);
    color: var(--color-accent, #2563eb);
    border: 1px solid color-mix(in srgb, var(--color-accent, #2563eb) 30%, transparent);
    padding: var(--space-xs) var(--space-sm);
    border-radius: var(--radius-sm);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
}
.hero-btn-swap:hover[b-sbfel1rngl] { filter: brightness(1.15); }
.hero-btn-swap:disabled[b-sbfel1rngl] { opacity: 0.5; cursor: not-allowed; }

/* Ships-disabled badge — surfaces a manifest's DefaultEnabled=false
   so operators understand why the module is in a Disabled/Skipped state
   without consulting source. */
.hero-default-badge[b-sbfel1rngl] {
    display: inline-flex;
    align-items: center;
    margin-left: var(--space-sm);
    padding: 2px var(--space-xs);
    font-size: var(--text-xs);
    background: var(--bg-elevated);
    color: var(--text-tertiary);
    border: 1px dashed var(--border-color);
    border-radius: var(--radius-sm);
    font-style: italic;
}

.hero-required-chip[b-sbfel1rngl] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-xs) var(--space-sm);
    background: var(--bg-elevated);
    color: var(--text-tertiary);
    border: 1px dashed var(--border-color);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
}

/* Audit + retry badges — rendered below the hero-actions row. */
.hero-disabled-badge[b-sbfel1rngl],
.hero-warn-badge[b-sbfel1rngl] {
    grid-column: 1 / -1;
    margin-top: var(--space-sm);
    padding: var(--space-xs) var(--space-sm);
    background: var(--bg-elevated);
    color: var(--text-secondary);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
}
.hero-disabled-badge strong[b-sbfel1rngl] { color: var(--text-primary); font-weight: 600; }
.hero-warn-badge[b-sbfel1rngl] {
    border-left: 3px solid var(--color-warning);
    color: var(--text-primary);
}
.hero-warn-badge .material-icons[b-sbfel1rngl] {
    color: var(--color-warning);
    font-size: 1.1em;
}
.hero-btn.inline-btn[b-sbfel1rngl] {
    padding: 2px var(--space-sm);
    font-size: var(--text-xs);
    margin-left: auto;
}

@media (prefers-reduced-motion: reduce) {
    .me-hero .state-chip[b-sbfel1rngl],
    .me-hero[data-state="Loaded"] .state-chip[b-sbfel1rngl],
    .me-hero[data-state="Quarantined"] .state-chip[b-sbfel1rngl] {
        animation: none;
    }
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Components/ModuleIndexGrid.razor.rz.scp.css */
/* Module Explorer — base-view module index grid. */
.module-index[b-p9zd5hx6he] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.module-index-toolbar[b-p9zd5hx6he] {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-sm) 0;
}

.module-index-filter[b-p9zd5hx6he] {
    flex: 1;
    padding: var(--space-sm) var(--space-md);
    background: var(--glass-inset);
    color: var(--text-primary);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
}
.module-index-filter:focus[b-p9zd5hx6he] {
    outline: none;
    border-color: var(--accent-color);
    box-shadow: 0 0 0 2px var(--accent-color-15);
}

.module-index-count[b-p9zd5hx6he] {
    color: var(--text-muted);
    font-size: var(--text-xs);
    font-family: var(--font-mono);
}

.module-category[b-p9zd5hx6he] {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.module-category-title[b-p9zd5hx6he] {
    display: flex;
    align-items: center;
    justify-content: flex-start;       /* override global button { justify-content: center } */
    gap: var(--space-sm);
    width: 100%;
    margin: 0;
    padding: var(--space-xs) 0;
    background: transparent;
    border: none;
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    font-weight: 600;
    cursor: pointer;
    text-align: left;
    transition: var(--transition-fast);
}

.module-category-title:hover[b-p9zd5hx6he] {
    color: var(--accent-color-light);
}

.module-category-title .category-chevron[b-p9zd5hx6he] {
    font-size: var(--text-base);
    color: var(--text-muted);
    transition: var(--transition-fast);
}

.module-category-title:hover .category-chevron[b-p9zd5hx6he] {
    color: var(--accent-color);
}

.module-category[data-collapsed="True"] .module-category-title .category-chevron[b-p9zd5hx6he] {
    /* CSS hook — actual icon swap happens in markup. */
}

.category-dot[b-p9zd5hx6he] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.module-category-count[b-p9zd5hx6he] {
    color: var(--text-muted);
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    font-weight: 400;
}

.module-grid[b-p9zd5hx6he] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--space-md);
}

.module-card[b-p9zd5hx6he] {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    padding: var(--space-md);
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    color: var(--text-secondary);
    cursor: pointer;
    transition: var(--transition-fast);
}
.module-card:hover[b-p9zd5hx6he] {
    border-color: var(--accent-color-30);
    background: var(--glass-inset);
}
.module-card:focus-visible[b-p9zd5hx6he] {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

.module-card[data-state="Failed"][b-p9zd5hx6he] {
    border-left: 3px solid var(--error-color);
}
.module-card[data-state="Quarantined"][b-p9zd5hx6he] {
    border-left: 3px solid var(--warning-color);
}
.module-card[data-state="Unloaded"][b-p9zd5hx6he] {
    opacity: 0.65;
}

.module-card-head[b-p9zd5hx6he] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-sm);
}

.module-card-name[b-p9zd5hx6he] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.state-pill[b-p9zd5hx6he] {
    flex: 0 0 auto;
    padding: 2px var(--space-sm);
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.state-pill[data-state="Loaded"][b-p9zd5hx6he]      { background: var(--success-bg); color: var(--success-text); border: 1px solid var(--success-border); }
.state-pill[data-state="Unloaded"][b-p9zd5hx6he]    { background: var(--text-muted); color: var(--bg-primary); opacity: 0.7; }
.state-pill[data-state="Quarantined"][b-p9zd5hx6he] { background: var(--warning-color-15); color: var(--warning-text); }
.state-pill[data-state="Failed"][b-p9zd5hx6he]      { background: var(--error-color-15); color: var(--error-text); }

.module-card-id[b-p9zd5hx6he] {
    color: var(--text-muted);
    font-size: var(--text-xs);
    margin: 0;
    word-break: break-all;
}

.module-card-version[b-p9zd5hx6he] {
    color: var(--text-secondary);
    margin-left: var(--space-xs);
}

/* "build NNNN" chip beside the manifest semver — sourced from
   Assembly.GetName().Version's 4th segment (auto-bumped per build). */
.module-card-build[b-p9zd5hx6he] {
    display: inline-block;
    margin-left: var(--space-xs);
    padding: 0 var(--space-xs);
    border-radius: var(--radius-xs);
    font-size: var(--text-xs);
    color: var(--text-muted);
    background: var(--bg-secondary);
    border: 1px solid var(--border-subtle);
    cursor: help;
}

.module-card-desc[b-p9zd5hx6he] {
    color: var(--text-secondary);
    font-size: var(--text-sm);
    line-height: 1.45;
    margin: var(--space-xs) 0 0;
    flex: 1;
}
.module-card-desc.muted-text[b-p9zd5hx6he] {
    color: var(--text-muted);
    font-style: italic;
}

.module-card-actions[b-p9zd5hx6he] {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    margin-top: auto;
    padding-top: var(--space-sm);
    border-top: 1px solid var(--border-subtle);
}

.card-action[b-p9zd5hx6he] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: var(--space-xs) var(--space-sm);
    background: transparent;
    color: var(--text-secondary);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    cursor: pointer;
    transition: var(--transition-fast);
}
.card-action:hover:not(:disabled)[b-p9zd5hx6he] {
    border-color: var(--accent-color);
    color: var(--accent-color-light);
}
.card-action:disabled[b-p9zd5hx6he] {
    opacity: 0.4;
    cursor: not-allowed;
}
.card-action .material-icons[b-p9zd5hx6he] {
    font-size: var(--text-base);
}

/* Power button state — green when module is loaded (live), muted-grey
   when unloaded so the toggle direction is obvious at a glance. */
.card-action[data-power-state="on"][b-p9zd5hx6he] {
    color: var(--success-text);
    border-color: var(--success-border);
}
.card-action[data-power-state="on"]:hover:not(:disabled)[b-p9zd5hx6he] {
    color: var(--success-text);
    border-color: var(--success-color);
    background: var(--success-bg);
}
.card-action[data-power-state="off"][b-p9zd5hx6he] {
    color: var(--text-muted);
}
.card-action[data-power-state="off"]:hover:not(:disabled)[b-p9zd5hx6he] {
    color: var(--success-text);
    border-color: var(--success-color);
}

.card-action-primary[b-p9zd5hx6he] {
    margin-left: auto;
    background: var(--accent-color-15);
    color: var(--accent-color-light);
    border-color: var(--accent-color-30);
}
.card-action-primary:hover:not(:disabled)[b-p9zd5hx6he] {
    background: var(--accent-color);
    color: var(--bg-primary);
    border-color: var(--accent-color);
}

.muted[b-p9zd5hx6he] {
    color: var(--text-muted);
    padding: var(--space-md);
    text-align: center;
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Components/ModuleListRail.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 6) — module list rail. */
.module-list-rail[b-71zb33b8jh] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    box-shadow: var(--glass-paper-shadow);
    padding: var(--space-md);
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    overflow: hidden;
    height: fit-content;
    max-height: calc(100vh - 100px);
}

.rail-filter-input[b-71zb33b8jh] {
    width: 100%;
    padding: var(--space-sm) var(--space-md);
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-sm);
}

.rail-filter-input:focus[b-71zb33b8jh] {
    outline: none;
    border-color: var(--accent-color-30);
    box-shadow: var(--shadow-focus);
}

.rail-list[b-71zb33b8jh] {
    list-style: none;
    margin: 0;
    padding: 0;
    overflow-y: auto;
}

.rail-row[b-71zb33b8jh] {
    display: grid;
    grid-template-columns: 12px 1fr auto auto;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-sm) var(--space-md);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
    color: var(--text-secondary);
    border-left: 3px solid transparent;
}

.rail-row:hover[b-71zb33b8jh] {
    background: var(--bg-hover);
    color: var(--text-primary);
}

.rail-row.selected[b-71zb33b8jh] {
    background: var(--bg-hover);
    border-left-color: var(--accent-color);
    color: var(--text-primary);
}

.rail-row[data-state="Quarantined"][b-71zb33b8jh] {
    border: 1px dashed var(--warning-color);
    border-left-width: 3px;
}

.rail-dot[b-71zb33b8jh] {
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    background: var(--text-muted);
}

.rail-row[data-state="Loaded"]      .rail-dot[b-71zb33b8jh] { background: var(--success-color); }
.rail-row[data-state="Quarantined"] .rail-dot[b-71zb33b8jh] { background: var(--warning-color); }
.rail-row[data-state="Failed"]      .rail-dot[b-71zb33b8jh] { background: var(--error-color); }
.rail-row[data-state="Unloaded"]    .rail-dot[b-71zb33b8jh] { background: var(--text-muted); }

.rail-name[b-71zb33b8jh] {
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rail-version[b-71zb33b8jh] {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    cursor: help;
}

/* Auto-bumped build counter from AssemblyVersion's 4th segment.
   Rendered inline (·8780) to keep the rail tight at 60+ rows. */
.rail-build[b-71zb33b8jh] {
    color: var(--text-secondary);
    margin-left: 1px;
}

.rail-glyphs[b-71zb33b8jh] {
    display: flex;
    gap: var(--space-xs);
}

.rail-glyph[b-71zb33b8jh] {
    font-size: var(--text-xs);
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-xs);
}

.rail-glyph.signed[b-71zb33b8jh]   { color: var(--success-color); }
.rail-glyph.unsigned[b-71zb33b8jh] { color: var(--warning-color); }
.rail-glyph.warn[b-71zb33b8jh]     { color: var(--warning-color); font-weight: 700; }

.rail-empty[b-71zb33b8jh] {
    text-align: center;
    padding: var(--space-lg);
    color: var(--text-muted);
}

.rail-empty .material-icons[b-71zb33b8jh] {
    color: var(--text-muted);
    opacity: 0.6;
}

.rail-empty h4[b-71zb33b8jh] {
    color: var(--text-secondary);
    margin: var(--space-sm) 0;
}

.rail-empty .rail-empty-hint[b-71zb33b8jh] {
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.rail-empty a[b-71zb33b8jh] {
    color: var(--accent-color-light);
    text-decoration: none;
}

/* Module-enablement pill — appears in the row glyph slot for any module
   whose ModuleSetting row currently has Enabled=false. Live-refreshed via
   IModuleEnablementService.StateChanged. */
.rail-pill[b-71zb33b8jh] {
    display: inline-block;
    padding: 1px var(--space-xs);
    margin-left: var(--space-xs);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    font-weight: 500;
    line-height: 1.2;
}
.rail-pill-disabled[b-71zb33b8jh] {
    background: color-mix(in srgb, var(--color-error) 12%, transparent);
    color: var(--color-error);
    border: 1px solid color-mix(in srgb, var(--color-error) 30%, transparent);
}
/* Boot-time skip state — module discovered but resolver dropped it
   (conflict pair loss, unmet requires). Distinct color from disabled
   (operator action) and quarantined (load attempt failure). */
.rail-pill-skipped[b-71zb33b8jh] {
    background: color-mix(in srgb, var(--color-warning, #d97706) 12%, transparent);
    color: var(--color-warning, #d97706);
    border: 1px solid color-mix(in srgb, var(--color-warning, #d97706) 30%, transparent);
}
/* Manifest-declared priority chip. Rendered only when Priority != 0
   so the default-zero case stays visually clean. */
.rail-chip[b-71zb33b8jh] {
    display: inline-block;
    padding: 1px var(--space-xs);
    margin-left: var(--space-xs);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    font-weight: 500;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}
.rail-chip-priority[b-71zb33b8jh] {
    background: color-mix(in srgb, var(--color-accent, #2563eb) 10%, transparent);
    color: var(--color-accent, #2563eb);
    border: 1px solid color-mix(in srgb, var(--color-accent, #2563eb) 25%, transparent);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Components/NeedsAttentionBanner.razor.rz.scp.css */
.needs-attention[b-a27kb0up6o] {
    display: flex;
    gap: var(--space-md);
    align-items: flex-start;
    padding: var(--space-md) var(--space-lg);
    background: var(--warning-color-15);
    border: 1px solid var(--warning-color-30);
    border-radius: var(--radius-md);
    color: var(--warning-text);
}

.needs-attention .material-icons[b-a27kb0up6o] {
    color: var(--warning-color);
}

.needs-attention-text h4[b-a27kb0up6o] {
    margin: 0 0 var(--space-xs);
    color: var(--warning-text);
    font-family: var(--font-primary);
    font-size: var(--text-base);
}

.needs-attention-text ul[b-a27kb0up6o] {
    margin: 0;
    padding-left: var(--space-md);
    color: var(--text-secondary);
    font-size: var(--text-sm);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Components/StatTile.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 8) — stat tile. */
.stat-tile[b-c1obc718po] {
    display: grid;
    grid-template-columns: 40px 1fr 48px;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-md) var(--space-lg);
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    box-shadow: var(--glass-paper-shadow);
    transition: all var(--transition-smooth);
    cursor: pointer;
    position: relative;
    border-left: 3px solid transparent;
    color: var(--text-primary);
    font-family: var(--font-primary);
    text-align: left;
}

.stat-tile[data-status="success"][b-c1obc718po] { border-left-color: var(--success-color); }
.stat-tile[data-status="warning"][b-c1obc718po] { border-left-color: var(--warning-color); }
.stat-tile[data-status="error"][b-c1obc718po]   { border-left-color: var(--error-color); }
.stat-tile[data-status="info"][b-c1obc718po]    { border-left-color: var(--info-color); }
.stat-tile[data-status="accent"][b-c1obc718po]  { border-left-color: var(--accent-color); }

.stat-tile:hover[b-c1obc718po] {
    box-shadow: var(--glass-paper-shadow-hover);
    border-color: var(--border-color-medium);
    transform: translateY(-2px);
}

.stat-icon[b-c1obc718po] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent-color-light);
}

.stat-text[b-c1obc718po] {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    min-width: 0;
}

.stat-value[b-c1obc718po] {
    font-size: var(--text-xl, 1.25rem);
    font-weight: 600;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
}

.stat-label[b-c1obc718po] {
    font-size: var(--text-xs);
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.stat-spark[b-c1obc718po] {
    width: 48px;
    height: 20px;
}

.stat-spark polyline[b-c1obc718po] {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: all var(--transition-data);
}

.stat-tile[data-status="success"] .stat-spark[b-c1obc718po] { color: var(--success-color); }
.stat-tile[data-status="warning"] .stat-spark[b-c1obc718po] { color: var(--warning-color); }
.stat-tile[data-status="error"]   .stat-spark[b-c1obc718po] { color: var(--error-color); }
.stat-tile[data-status="info"]    .stat-spark[b-c1obc718po] { color: var(--info-color); }
.stat-tile[data-status="accent"]  .stat-spark[b-c1obc718po] { color: var(--accent-color-light); }

.stat-spark-placeholder[b-c1obc718po] {
    width: 48px;
    height: 20px;
}

@media (prefers-reduced-motion: reduce) {
    .stat-tile[b-c1obc718po],
    .stat-tile:hover[b-c1obc718po] {
        transition: none;
        transform: none;
    }
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Components/TabBar.razor.rz.scp.css */
/* Module Explorer Phase 4 — TabBar (Critical #C9) */
.me-tabbar[b-0drnvsj36l] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
    padding: var(--space-xs);
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-inset-deep);
}

.me-tab[b-0drnvsj36l] {
    padding: var(--space-sm) var(--space-md);
    background: transparent;
    border: 0;
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
    white-space: nowrap;
}

.me-tab:hover[b-0drnvsj36l] {
    background: var(--bg-hover);
    color: var(--text-primary);
}

.me-tab.active[b-0drnvsj36l] {
    background: var(--accent-color-15);
    color: var(--accent-color-light);
}

.me-tab:focus-visible[b-0drnvsj36l] {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Graph/DependencyGraph.razor.rz.scp.css */
/* Module Explorer dependency graph — fills its parent panel,
   supports zoom/pan via Blazor mouse handlers, and per-category colour
   blending so 60+ nodes are visually differentiable.

   Layout: the host is position:relative + flex:1 so it owns the entire
   base-tab panel. The SVG inside it stretches to 100% / 100%. Toolbar
   is absolute-positioned in the top-right. Popover is absolute-positioned
   so it sits over the canvas without interrupting graph interaction. */

.dep-graph-host[b-djv3w1cd0g] {
    position: relative;
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 480px;
    overflow: hidden;
    background: var(--glass-inset);
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    box-shadow: var(--shadow-inset-deep);
    cursor: grab;
    user-select: none;
}

.dep-graph-host:active[b-djv3w1cd0g] {
    cursor: grabbing;
}

.dep-graph[b-djv3w1cd0g] {
    width: 100%;
    height: 100%;
    display: block;
}

.dep-graph.compact[b-djv3w1cd0g] {
    height: 220px;
}

/* Toolbar — top-right floating, opaque enough to read against any node. */
.dep-graph-toolbar[b-djv3w1cd0g] {
    position: absolute;
    top: var(--space-sm);
    right: var(--space-sm);
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-xs);
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    z-index: 2;
}

.dep-tool-btn[b-djv3w1cd0g] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    cursor: pointer;
    transition: var(--transition-fast);
}

.dep-tool-btn:hover[b-djv3w1cd0g] {
    background: var(--glass-inset);
    border-color: var(--border-subtle);
    color: var(--accent-color-light);
}

.dep-tool-btn .material-icons[b-djv3w1cd0g] {
    font-size: var(--text-base);
}

.dep-zoom-level[b-djv3w1cd0g] {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    min-width: 3.5em;
    text-align: center;
}

/* Nodes — per-category colour, per-state border + saturation. */
.dep-graph .dep-node[b-djv3w1cd0g] {
    cursor: pointer;
    transition: opacity var(--transition-fast);
}

.dep-graph .dep-node circle[b-djv3w1cd0g] {
    stroke: var(--border-color-medium);
    stroke-width: 1.5;
    transition: all var(--transition-fast);
}

.dep-graph .dep-node:hover circle[b-djv3w1cd0g],
.dep-graph .dep-node:focus circle[b-djv3w1cd0g] {
    stroke: var(--accent-color-light);
    stroke-width: 3;
    filter: drop-shadow(0 0 6px var(--accent-color-30));
}

/* Category colour palette — uses theme tokens so dark/light themes inherit. */
.dep-graph .dep-node[data-category="core"]         circle[b-djv3w1cd0g] { fill: var(--text-muted); }
.dep-graph .dep-node[data-category="admin"]        circle[b-djv3w1cd0g] { fill: var(--accent-color-light); }
.dep-graph .dep-node[data-category="auth"]         circle[b-djv3w1cd0g] { fill: var(--error-color); }
.dep-graph .dep-node[data-category="network"]      circle[b-djv3w1cd0g] { fill: var(--info-color); }
.dep-graph .dep-node[data-category="ai"]           circle[b-djv3w1cd0g] { fill: var(--accent-color); }
.dep-graph .dep-node[data-category="polymorph"]    circle[b-djv3w1cd0g] { fill: var(--accent-color-light); }
.dep-graph .dep-node[data-category="marketing"]    circle[b-djv3w1cd0g] { fill: var(--warning-color); }
.dep-graph .dep-node[data-category="customer"]     circle[b-djv3w1cd0g] { fill: var(--info-color-light, var(--info-color)); }
.dep-graph .dep-node[data-category="integrations"] circle[b-djv3w1cd0g] { fill: var(--text-secondary); }
.dep-graph .dep-node[data-category="calls"]        circle[b-djv3w1cd0g] { fill: var(--info-color); }
.dep-graph .dep-node[data-category="automation"]   circle[b-djv3w1cd0g] { fill: var(--warning-color); }
.dep-graph .dep-node[data-category="content"]      circle[b-djv3w1cd0g] { fill: var(--accent-color); }
.dep-graph .dep-node[data-category="support"]      circle[b-djv3w1cd0g] { fill: var(--info-color); }

/* State overrides — Quarantined / Failed / Unloaded modify the category fill. */
.dep-graph .dep-node[data-state="Quarantined"] circle[b-djv3w1cd0g] {
    stroke: var(--warning-color);
    stroke-dasharray: 3 2;
    stroke-width: 2;
}

.dep-graph .dep-node[data-state="Failed"] circle[b-djv3w1cd0g] {
    fill: var(--error-color);
    stroke: var(--error-text);
    stroke-width: 2;
}

.dep-graph .dep-node[data-state="Unloaded"] circle[b-djv3w1cd0g] {
    opacity: 0.35;
    stroke-dasharray: 2 3;
}

.dep-graph .dep-node text[b-djv3w1cd0g] {
    fill: var(--text-secondary);
    font-family: var(--font-mono);
    font-size: 11px;
    pointer-events: none;
}

/* Edges — colour by relationship kind. Arrowheads via <marker>. */
.dep-graph .dep-edge[b-djv3w1cd0g] {
    stroke: var(--border-color-medium);
    stroke-width: 1.5;
    transition: all var(--transition-fast);
}

.dep-graph .dep-edge[data-kind="Requires"][b-djv3w1cd0g]  { stroke: var(--accent-color); stroke-opacity: 0.55; stroke-width: 2; }
.dep-graph .dep-edge[data-kind="Wants"][b-djv3w1cd0g]     { stroke: var(--info-color); stroke-opacity: 0.45; stroke-dasharray: 4 3; }
.dep-graph .dep-edge[data-kind="Conflicts"][b-djv3w1cd0g] { stroke: var(--error-color); stroke-dasharray: 6 3; stroke-width: 2; }
.dep-graph .dep-edge[data-kind="After"][b-djv3w1cd0g]     { stroke: var(--text-muted); stroke-opacity: 0.35; }

/* CSS-only selection cascade. */
.dep-graph[data-selected-id]:not([data-selected-id=""]) .dep-node[b-djv3w1cd0g] { opacity: 0.35; }
.dep-graph[data-selected-id]:not([data-selected-id=""]) .dep-edge[b-djv3w1cd0g] { opacity: 0.15; }

/* Popover — opens beside the click point, anchored top-left of the host
   for layout simplicity. The user-facing UX target is "see the module's
   description + take an action without leaving the graph." */
.dep-popover[b-djv3w1cd0g] {
    position: absolute;
    top: var(--space-md);
    left: var(--space-md);
    width: 320px;
    padding: var(--space-md);
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    box-shadow: var(--glass-paper-shadow);
    z-index: 3;
    color: var(--text-primary);
    font-family: var(--font-primary);
}

.dep-popover-head[b-djv3w1cd0g] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-sm);
    margin-bottom: var(--space-xs);
}

.dep-popover-name[b-djv3w1cd0g] {
    color: var(--text-primary);
    font-weight: 600;
    font-size: var(--text-base);
}

.dep-popover-close[b-djv3w1cd0g] {
    background: transparent;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    padding: 0;
}

.dep-popover-close:hover[b-djv3w1cd0g] {
    color: var(--accent-color-light);
}

.dep-popover-meta[b-djv3w1cd0g] {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    flex-wrap: wrap;
    margin-bottom: var(--space-sm);
    color: var(--text-muted);
    font-size: var(--text-xs);
}

.dep-popover-id[b-djv3w1cd0g] { font-family: var(--font-mono); }
.dep-popover-version[b-djv3w1cd0g] { color: var(--text-secondary); }

/* Auto-bumped build counter chip. Same look as the index-grid card chip
   so the two surfaces feel consistent when operators glance between
   the graph popover and the card grid. */
.dep-popover-build[b-djv3w1cd0g] {
    padding: 0 var(--space-xs);
    border-radius: var(--radius-xs);
    font-family: var(--font-mono);
    color: var(--text-muted);
    background: var(--bg-secondary);
    border: 1px solid var(--border-subtle);
    cursor: help;
}

.dep-popover .state-pill[b-djv3w1cd0g] {
    padding: 2px var(--space-sm);
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.dep-popover .state-pill[data-state="Loaded"][b-djv3w1cd0g]      { background: var(--success-bg); color: var(--success-text); }
.dep-popover .state-pill[data-state="Unloaded"][b-djv3w1cd0g]    { background: var(--text-muted); color: var(--bg-primary); opacity: 0.7; }
.dep-popover .state-pill[data-state="Quarantined"][b-djv3w1cd0g] { background: var(--warning-color-15); color: var(--warning-text); }
.dep-popover .state-pill[data-state="Failed"][b-djv3w1cd0g]      { background: var(--error-color-15); color: var(--error-text); }

.dep-popover-desc[b-djv3w1cd0g] {
    margin: 0 0 var(--space-md);
    color: var(--text-secondary);
    font-size: var(--text-sm);
    line-height: 1.45;
}

.dep-popover-actions[b-djv3w1cd0g] {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
}

.dep-popover-btn[b-djv3w1cd0g] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: var(--space-xs) var(--space-sm);
    background: transparent;
    color: var(--text-secondary);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    cursor: pointer;
    transition: var(--transition-fast);
}

.dep-popover-btn:hover:not(:disabled)[b-djv3w1cd0g] {
    border-color: var(--accent-color);
    color: var(--accent-color-light);
}

.dep-popover-btn:disabled[b-djv3w1cd0g] {
    opacity: 0.4;
    cursor: not-allowed;
}

.dep-popover-btn[data-power-state="on"][b-djv3w1cd0g] {
    color: var(--success-text);
    border-color: var(--success-border);
}
.dep-popover-btn[data-power-state="on"]:hover:not(:disabled)[b-djv3w1cd0g] {
    background: var(--success-bg);
    border-color: var(--success-color);
}
.dep-popover-btn[data-power-state="off"][b-djv3w1cd0g] { color: var(--text-muted); }
.dep-popover-btn[data-power-state="off"]:hover:not(:disabled)[b-djv3w1cd0g] {
    color: var(--success-text);
    border-color: var(--success-color);
}

.dep-popover-btn .material-icons[b-djv3w1cd0g] {
    font-size: var(--text-base);
}

.dep-popover-btn-primary[b-djv3w1cd0g] {
    margin-left: auto;
    background: var(--accent-color-15);
    color: var(--accent-color-light);
    border-color: var(--accent-color-30);
}

.dep-popover-btn-primary:hover:not(:disabled)[b-djv3w1cd0g] {
    background: var(--accent-color);
    color: var(--bg-primary);
}

@media (prefers-reduced-motion: reduce) {
    .dep-graph .dep-node[b-djv3w1cd0g], .dep-graph .dep-edge[b-djv3w1cd0g] {
        transition: none;
    }
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Api/ApiTab.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 14) — Api tab. */
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Domains/ConflictsBanner.razor.rz.scp.css */
.conflicts-banner[b-vfsuaxbe61] {
    display: flex;
    gap: var(--space-md);
    align-items: flex-start;
    padding: var(--space-md);
    background: var(--error-color-15);
    border: 1px solid var(--error-color-30);
    border-radius: var(--radius-md);
    color: var(--error-text);
}

.conflicts-banner .material-icons[b-vfsuaxbe61] {
    color: var(--error-color);
}

.conflicts-banner h4[b-vfsuaxbe61] {
    margin: 0 0 var(--space-xs);
    color: var(--error-text);
    font-family: var(--font-primary);
    font-size: var(--text-base);
}

.conflicts-banner ul[b-vfsuaxbe61] {
    margin: 0;
    padding-left: var(--space-md);
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.conflicts-banner .mono[b-vfsuaxbe61] {
    font-family: var(--font-mono);
    color: var(--text-primary);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Domains/DomainsTab.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 17) — domains tab. */
.domains-tab[b-keef9b6led] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.domain-bindings[b-keef9b6led] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-md);
}

.domain-bindings h3[b-keef9b6led] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    margin: 0 0 var(--space-md);
}

.binding-table[b-keef9b6led] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.binding-table thead th[b-keef9b6led] {
    background: var(--glass-inset);
    color: var(--text-secondary);
    text-align: left;
    padding: var(--space-sm) var(--space-md);
    font-family: var(--font-primary);
    font-weight: 600;
    border-bottom: 1px solid var(--border-subtle);
}

.binding-table td[b-keef9b6led] {
    padding: var(--space-xs) var(--space-md);
    color: var(--text-secondary);
    border-bottom: 1px solid var(--border-subtle);
}

.binding-table td.mono[b-keef9b6led] {
    font-family: var(--font-mono);
    color: var(--text-primary);
}

.muted[b-keef9b6led], .loading[b-keef9b6led] {
    color: var(--text-muted);
    padding: var(--space-md);
}

.status-pill[b-keef9b6led] {
    display: inline-block;
    padding: 2px var(--space-sm);
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.status-pill[data-status="active"][b-keef9b6led] { background: var(--accent-color-15); color: var(--accent-color-light); }
.status-pill[data-status="disabled"][b-keef9b6led] { background: var(--text-muted); color: var(--bg-primary); }

.binding-delete[b-keef9b6led] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-xs) var(--space-sm);
    background: transparent;
    color: var(--error-text);
    border: 1px solid var(--error-color-30);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    cursor: pointer;
    transition: var(--transition-fast);
}
.binding-delete:hover:not(:disabled)[b-keef9b6led] {
    background: var(--error-color-15);
}
.binding-delete:disabled[b-keef9b6led] {
    opacity: 0.5;
    cursor: not-allowed;
}
.binding-delete .material-icons[b-keef9b6led] { font-size: var(--text-base); }

.binding-add[b-keef9b6led] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-md);
}

.binding-add h3[b-keef9b6led] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    margin: 0 0 var(--space-md);
}

.add-error[b-keef9b6led] {
    margin: 0 0 var(--space-md);
    padding: var(--space-sm) var(--space-md);
    background: var(--error-color-15);
    border: 1px solid var(--error-color-30);
    border-radius: var(--radius-sm);
    color: var(--error-text);
    font-size: var(--text-sm);
}

.binding-form[b-keef9b6led] {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: var(--space-md);
}
.binding-form[data-disabled="true"][b-keef9b6led] {
    opacity: 0.55;
    pointer-events: none;
}

.binding-form label[b-keef9b6led] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    color: var(--text-secondary);
    font-size: var(--text-xs);
}
.binding-form label.checkbox[b-keef9b6led] {
    flex-direction: row;
    align-items: center;
    gap: var(--space-xs);
    padding-bottom: 8px;
}

.binding-input[b-keef9b6led] {
    padding: var(--space-sm) var(--space-md);
    background: var(--glass-inset);
    color: var(--text-primary);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    font-size: var(--text-sm);
    min-width: 240px;
}
.binding-input:focus[b-keef9b6led] {
    outline: none;
    border-color: var(--accent-color);
    box-shadow: 0 0 0 2px var(--accent-color-15);
}

.binding-add-btn[b-keef9b6led] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-sm) var(--space-md);
    background: var(--accent-color);
    color: var(--bg-primary);
    border: none;
    border-radius: var(--radius-sm);
    font-size: var(--text-sm);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition-fast);
}
.binding-add-btn:hover:not(:disabled)[b-keef9b6led] {
    background: var(--accent-color-light);
}
.binding-add-btn:disabled[b-keef9b6led] {
    opacity: 0.5;
    cursor: not-allowed;
}

.seed-hint[b-keef9b6led] {
    margin-top: var(--space-sm);
    margin-bottom: 0;
    color: var(--accent-color-light);
    font-size: var(--text-xs);
    font-style: italic;
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Domains/ResolveUrlPill.razor.rz.scp.css */
.resolve-pill[b-7atpquoia5] {
    display: flex;
    gap: var(--space-md);
    align-items: center;
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-full);
    padding: var(--space-sm) var(--space-md);
    box-shadow: var(--shadow-inset-deep);
}

.resolve-pill input[b-7atpquoia5] {
    flex: 1;
    background: transparent;
    border: 0;
    color: var(--text-primary);
    font-family: var(--font-mono);
    outline: none;
}

.resolve-pill .material-icons[b-7atpquoia5] {
    color: var(--text-muted);
}

.resolve-pill .result-tenant[b-7atpquoia5] { color: var(--accent-color-light); font-family: var(--font-mono); }
.resolve-pill .result-module[b-7atpquoia5] { color: var(--success-text); font-family: var(--font-mono); }
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Health/HealthTab.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 19) — Health (was Diagnostics) tab. */
.health-tab[b-up32hc0xee] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.health-panel[b-up32hc0xee] {
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-inset-deep);
    padding: var(--space-md);
}

.health-panel h3[b-up32hc0xee] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    margin: 0 0 var(--space-md);
}

.health-panel.last-error .error-banner[b-up32hc0xee] {
    background: var(--error-color-15);
    border: 1px solid var(--error-color-30);
    border-radius: var(--radius-sm);
    padding: var(--space-sm) var(--space-md);
    color: var(--error-text);
    margin: 0;
}

dl.kv[b-up32hc0xee] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: var(--space-xs) var(--space-md);
    margin: 0;
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

dl.kv dt[b-up32hc0xee] { color: var(--text-muted); font-family: var(--font-primary); }
dl.kv dd[b-up32hc0xee] { margin: 0; color: var(--text-primary); }
dl.kv dd.mono[b-up32hc0xee] { font-family: var(--font-mono); word-break: break-all; }

.health-panel table[b-up32hc0xee] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.health-panel th[b-up32hc0xee], .health-panel td[b-up32hc0xee] {
    text-align: left;
    padding: var(--space-xs) var(--space-md);
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-secondary);
}

.health-panel th[b-up32hc0xee] {
    color: var(--text-muted);
    font-weight: 600;
    font-family: var(--font-primary);
}

.health-panel td.mono[b-up32hc0xee] {
    font-family: var(--font-mono);
    color: var(--text-primary);
}

.muted[b-up32hc0xee], .loading[b-up32hc0xee] {
    color: var(--text-muted);
}

.health-panel.leak[b-up32hc0xee] {
    background: var(--warning-color-15);
    border-color: var(--warning-color-30);
}

.health-panel.leak h3[b-up32hc0xee] { color: var(--warning-text); }
.health-panel.leak .hint[b-up32hc0xee] { color: var(--text-secondary); margin: var(--space-sm) 0 0; }

.boot-report .outcome[b-up32hc0xee] {
    margin: 0;
    display: flex;
    align-items: baseline;
    gap: var(--space-sm);
    font-size: var(--text-sm);
}

.boot-report .outcome-loaded[b-up32hc0xee] {
    color: var(--success-text);
}

.boot-report .outcome-skipped[b-up32hc0xee] {
    color: var(--warning-text);
}

.boot-report .outcome-failed[b-up32hc0xee] {
    color: var(--error-text);
}

.boot-report .reason[b-up32hc0xee] {
    font-style: italic;
    margin: var(--space-sm) 0;
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.boot-report details[b-up32hc0xee] {
    margin-top: var(--space-sm);
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.boot-report details summary[b-up32hc0xee] {
    cursor: pointer;
    color: var(--text-muted);
    font-family: var(--font-primary);
}

.boot-report pre[b-up32hc0xee] {
    overflow-x: auto;
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    color: var(--text-primary);
    padding: var(--space-sm);
    border-radius: var(--radius-sm);
    margin: var(--space-sm) 0 0;
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Jobs/JobsHeatmap.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 16) — jobs heatmap. */
.heatmap-section[b-u7y3g5xtl3] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-md);
}

.heatmap-section header[b-u7y3g5xtl3] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-md);
}

.heatmap-section h3[b-u7y3g5xtl3] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    margin: 0;
}

.heatmap-toggle[b-u7y3g5xtl3] {
    display: inline-flex;
    gap: var(--space-xs);
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: 2px;
}

.heatmap-toggle button[b-u7y3g5xtl3] {
    padding: var(--space-xs) var(--space-md);
    background: transparent;
    border: 0;
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.heatmap-toggle button[data-active="true"][b-u7y3g5xtl3] {
    background: var(--accent-color-15);
    color: var(--accent-color-light);
}

.heatmap[b-u7y3g5xtl3] {
    display: grid;
    grid-template-columns: repeat(24, 1fr);
    gap: 2px;
    padding: var(--space-md);
    background: var(--glass-inset);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-inset-deep);
}

.hm-cell[b-u7y3g5xtl3] {
    aspect-ratio: 1;
    border-radius: var(--radius-xs);
    transition: transform var(--transition-fast);
}

.hm-cell[data-intensity="0"][b-u7y3g5xtl3] { background: var(--accent-color-5); }
.hm-cell[data-intensity="1"][b-u7y3g5xtl3] { background: var(--accent-color-15); }
.hm-cell[data-intensity="2"][b-u7y3g5xtl3] { background: var(--accent-color-25); }
.hm-cell[data-intensity="3"][b-u7y3g5xtl3] { background: var(--accent-color-40); }
.hm-cell[data-intensity="4"][b-u7y3g5xtl3] { background: var(--accent-color-50); }

.hm-cell:hover[b-u7y3g5xtl3] {
    transform: scale(1.4);
    z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
    .hm-cell[b-u7y3g5xtl3], .hm-cell:hover[b-u7y3g5xtl3] {
        transition: none;
        transform: none;
    }
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Jobs/JobsTab.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 16) — jobs tab. */
.jobs-tab[b-l4l6u4pmvi] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.job-rows[b-l4l6u4pmvi], .dynamic-jobs[b-l4l6u4pmvi] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    overflow-x: auto;
}

.job-rows h3[b-l4l6u4pmvi], .dynamic-jobs h3[b-l4l6u4pmvi] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    margin: 0 0 var(--space-md);
}

.job-table[b-l4l6u4pmvi] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.job-table thead th[b-l4l6u4pmvi] {
    background: var(--glass-inset);
    color: var(--text-secondary);
    text-align: left;
    padding: var(--space-sm) var(--space-md);
    font-family: var(--font-primary);
    font-weight: 600;
    border-bottom: 1px solid var(--border-subtle);
}

.job-table td[b-l4l6u4pmvi] {
    padding: var(--space-xs) var(--space-md);
    color: var(--text-secondary);
    border-bottom: 1px solid var(--border-subtle);
}

.job-table td.mono[b-l4l6u4pmvi] {
    font-family: var(--font-mono);
    color: var(--text-primary);
}

.trigger-btn[b-l4l6u4pmvi] {
    padding: var(--space-xs) var(--space-md);
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    font-family: var(--font-primary);
    font-size: var(--text-xs);
    cursor: pointer;
}

.trigger-btn:disabled[b-l4l6u4pmvi] {
    opacity: 0.5;
    cursor: not-allowed;
}

.muted[b-l4l6u4pmvi], .loading[b-l4l6u4pmvi] {
    color: var(--text-muted);
    padding: var(--space-md);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Logs/LogsTab.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 18) — logs tab. */
.logs-tab[b-vcghmogk5h] {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-md);
}

.logs-toolbar[b-vcghmogk5h] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-md);
}

.logs-toolbar h3[b-vcghmogk5h] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    margin: 0;
    flex: 0 0 auto;
}

.logs-filter-hint[b-vcghmogk5h] {
    font-size: var(--text-xs);
    color: var(--text-muted);
    font-family: var(--font-mono);
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.severity-filters[b-vcghmogk5h] {
    display: flex;
    gap: var(--space-md);
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.log-list[b-vcghmogk5h] {
    max-height: 60vh;
    overflow-y: auto;
}

.log-row[b-vcghmogk5h] {
    display: grid;
    grid-template-columns: 80px 60px 1fr;
    gap: var(--space-sm);
    padding: var(--space-xs) var(--space-md);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-secondary);
}

.log-row[data-severity="Error"][b-vcghmogk5h]   { background: var(--error-color-5); border-left: 2px solid var(--error-color); color: var(--error-text); }
.log-row[data-severity="Warning"][b-vcghmogk5h] { background: var(--warning-color-5); border-left: 2px solid var(--warning-color); color: var(--warning-text); }
.log-row[data-severity="Information"][b-vcghmogk5h] { color: var(--text-secondary); }

.log-time[b-vcghmogk5h] { color: var(--text-muted); }

.muted[b-vcghmogk5h] {
    color: var(--text-muted);
    padding: var(--space-md);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Overview/OverviewTab.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 11) — overview tab. */
.overview-tab[b-l9h30orkzh] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.overview-loading[b-l9h30orkzh] {
    color: var(--text-muted);
    padding: var(--space-md);
}

.module-description[b-l9h30orkzh] {
    margin: 0;
    padding: var(--space-md);
    background: var(--glass-elevated);
    border-left: 3px solid var(--accent-color);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    font-size: var(--text-base);
    line-height: 1.55;
}

.kv-strip.glossary[b-l9h30orkzh] {
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-inset-deep);
    padding: var(--space-sm) var(--space-md);
    color: var(--text-secondary);
    font-size: var(--text-sm);
    line-height: 1.6;
}

.kv-strip.glossary strong[b-l9h30orkzh] { color: var(--text-primary); }
.kv-strip.glossary code[b-l9h30orkzh]  { font-family: var(--font-mono); color: var(--accent-color-light); }

.kv-grid[b-l9h30orkzh] {
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-inset-deep);
    padding: var(--space-md);
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: var(--space-sm) var(--space-md);
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.kv-key[b-l9h30orkzh] { color: var(--text-muted); font-family: var(--font-primary); }
.kv-value[b-l9h30orkzh] { color: var(--text-primary); font-family: var(--font-mono); word-break: break-all; }

.capability-cloud[b-l9h30orkzh] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-md);
}

.capability-cloud h3[b-l9h30orkzh] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    margin: 0 0 var(--space-md);
}

.chip-cloud[b-l9h30orkzh] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
}

.chip[b-l9h30orkzh] {
    padding: var(--space-xs) var(--space-md);
    border-radius: var(--radius-full);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    border: 1px solid var(--border-subtle);
}

.chip.provides[b-l9h30orkzh] {
    background: var(--accent-color-15);
    color: var(--accent-color-light);
    border-color: var(--accent-color-30);
}

.chip.requires[b-l9h30orkzh] {
    background: var(--info-color-15);
    color: var(--info-text);
    border-color: var(--info-color-30);
}

.seed-restore[b-l9h30orkzh] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--warning-color-30);
    border-left: 3px solid var(--warning-color);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.seed-restore h3[b-l9h30orkzh] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    margin: 0;
}

.seed-restore-desc[b-l9h30orkzh] {
    color: var(--text-secondary);
    font-size: var(--text-sm);
    margin: 0;
    line-height: 1.5;
}

.seed-restore-hint[b-l9h30orkzh] {
    color: var(--text-muted);
    font-size: var(--text-xs);
    margin: 0;
    font-style: italic;
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Permissions/PermissionsTab.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 15) — permissions tab. */
.permissions-tab[b-283yqwgbgq] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.declared-permissions[b-283yqwgbgq] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-md);
}

.declared-permissions h3[b-283yqwgbgq] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    margin: 0 0 var(--space-md);
}

.chip-cloud[b-283yqwgbgq] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
}

.chip[b-283yqwgbgq] {
    padding: var(--space-xs) var(--space-md);
    border-radius: var(--radius-full);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    border: 1px solid var(--border-subtle);
    background: var(--bg-secondary);
    color: var(--text-secondary);
}

.chip[data-category="network"][b-283yqwgbgq]    { background: var(--info-color-15); color: var(--info-text); border-color: var(--info-color-30); }
.chip[data-category="ai"][b-283yqwgbgq]         { background: var(--accent-color-15); color: var(--accent-color-light); border-color: var(--accent-color-30); }
.chip[data-category="admin"][b-283yqwgbgq]      { background: var(--warning-color-15); color: var(--warning-text); border-color: var(--warning-color-30); }
.chip[data-category="auth"][b-283yqwgbgq]       { background: var(--error-color-15); color: var(--error-text); border-color: var(--error-color-30); }

.muted[b-283yqwgbgq], .loading[b-283yqwgbgq] {
    color: var(--text-muted);
    padding: var(--space-md);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Permissions/RecentDenialsTimeline.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 15) — recent denials timeline. */
.recent-denials[b-7ngpaw1mnj] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-md);
}

.recent-denials h3[b-7ngpaw1mnj] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    margin: 0 0 var(--space-md);
}

.denial-list[b-7ngpaw1mnj] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.denial-row[b-7ngpaw1mnj] {
    display: grid;
    grid-template-columns: 80px 1fr auto auto;
    gap: var(--space-sm);
    padding: var(--space-xs) var(--space-md);
    border-bottom: 1px solid var(--border-subtle);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    color: var(--text-secondary);
}

.denial-row:hover[b-7ngpaw1mnj] {
    background: var(--bg-hover);
}

.denial-time[b-7ngpaw1mnj] { color: var(--text-muted); }
.denial-key[b-7ngpaw1mnj]  { color: var(--error-text); }
.denial-user[b-7ngpaw1mnj] { color: var(--text-secondary); }
.denial-route[b-7ngpaw1mnj] { color: var(--text-muted); }

.muted[b-7ngpaw1mnj] {
    color: var(--text-muted);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Permissions/RoleGrantMatrix.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 15) — role grant matrix. */
.role-matrix-section[b-ppdu7f0pb9] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    overflow-x: auto;
}

.role-matrix-section header[b-ppdu7f0pb9] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-md);
}

.role-matrix-section h3[b-ppdu7f0pb9] {
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    margin: 0;
}

.toggle[b-ppdu7f0pb9] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    color: var(--text-secondary);
    font-size: var(--text-sm);
    cursor: pointer;
}

.role-matrix-wrapper[b-ppdu7f0pb9] {
    overflow: auto;
    max-height: 60vh;
}

.role-matrix[b-ppdu7f0pb9] {
    border-collapse: collapse;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    overflow: hidden;
    width: 100%;
}

.role-matrix .perm-name[b-ppdu7f0pb9] {
    position: sticky;
    left: 0;
    background: var(--glass-inset);
    padding: var(--space-sm) var(--space-md);
    color: var(--text-secondary);
    text-align: left;
    border-bottom: 1px solid var(--border-subtle);
    border-right: 1px solid var(--border-subtle);
}

.role-matrix .perm-name.mono[b-ppdu7f0pb9] {
    font-family: var(--font-mono);
    color: var(--text-primary);
    font-size: var(--text-sm);
}

.role-matrix .role-head[b-ppdu7f0pb9] {
    position: sticky;
    top: 0;
    background: var(--glass-inset);
    color: var(--text-secondary);
    padding: var(--space-sm);
    text-align: center;
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    font-weight: 600;
    border-bottom: 1px solid var(--border-subtle);
}

.role-matrix .cell[b-ppdu7f0pb9] {
    width: 80px;
    height: 32px;
    text-align: center;
    border-bottom: 1px solid var(--border-subtle);
    border-right: 1px solid var(--border-subtle);
}

.role-matrix .cell[data-grant="filled"][b-ppdu7f0pb9] {
    background: var(--accent-color-15);
    color: var(--accent-color-light);
}

.role-matrix .cell[data-grant="hollow"][b-ppdu7f0pb9] {
    background: transparent;
    color: var(--text-muted);
}

.role-matrix .cell[data-grant="inherited"][b-ppdu7f0pb9] {
    background: transparent;
    border: 1px dashed var(--border-color-medium);
}

.role-matrix .all-marker[b-ppdu7f0pb9] {
    color: var(--accent-color-light);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    font-weight: 600;
}

.role-matrix .grant-marker[b-ppdu7f0pb9] {
    color: var(--accent-color);
    font-size: var(--text-base);
    line-height: 1;
}

.muted[b-ppdu7f0pb9] {
    color: var(--text-muted);
    padding: var(--space-md);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Routes/RoutesTab.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 13) — routes tab. */
.routes-tab[b-c58940ghb8] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.muted[b-c58940ghb8], .loading[b-c58940ghb8] {
    color: var(--text-muted);
    padding: var(--space-md);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Routes/SwimLane.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 13) — swim lane. */
.swim-lane[b-hc6e9i2ayq] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-md);
}

.swim-header[b-hc6e9i2ayq] {
    display: flex;
    gap: var(--space-sm);
    align-items: center;
    margin-bottom: var(--space-md);
    color: var(--text-secondary);
}

.swim-header h3[b-hc6e9i2ayq] {
    margin: 0;
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-base);
}

.swim-body[b-hc6e9i2ayq] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
}

.route-pill[b-hc6e9i2ayq] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-xs) var(--space-md);
    border-radius: var(--radius-full);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    cursor: pointer;
    border: 1px solid transparent;
    transition: all var(--transition-fast);
}

.route-pill[data-method="GET"][b-hc6e9i2ayq]    { background: var(--info-color-15); color: var(--info-text); border-color: var(--info-color-30); }
.route-pill[data-method="POST"][b-hc6e9i2ayq]   { background: var(--accent-color-15); color: var(--accent-color-light); border-color: var(--accent-color-30); }
.route-pill[data-method="PUT"][b-hc6e9i2ayq]    { background: var(--warning-color-15); color: var(--warning-text); border-color: var(--warning-color-30); }
.route-pill[data-method="DELETE"][b-hc6e9i2ayq] { background: var(--error-color-15); color: var(--error-text); border-color: var(--error-color-30); }
.route-pill[data-method="PAGE"][b-hc6e9i2ayq]   { background: var(--bg-secondary); color: var(--text-secondary); border-color: var(--border-subtle); }
.route-pill[data-method="HUB"][b-hc6e9i2ayq]    { background: var(--secondary-accent-10); color: var(--accent-color-light); border-color: var(--secondary-accent-30); }

.route-pill:hover[b-hc6e9i2ayq] {
    transform: translateY(-1px);
    box-shadow: var(--shadow-sm);
}

.pill-method[b-hc6e9i2ayq] {
    font-weight: 600;
    font-size: var(--text-xs);
    text-transform: uppercase;
}

.muted[b-hc6e9i2ayq] {
    color: var(--text-muted);
}
/* _content/Ayva.ModuleExplorer/ModuleExplorer/Tabs/Services/ServicesTab.razor.rz.scp.css */
/* Module Explorer Phase 4 (Task 12) — services tab. */
.services-tab[b-14h4zwye58] {
    background: var(--glass-elevated);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    overflow-x: auto;
}

.filter-chips[b-14h4zwye58] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-md);
    margin-bottom: var(--space-md);
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.filter-chips .services-summary[b-14h4zwye58] {
    margin-left: auto;
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
}

.filter-chips label[b-14h4zwye58] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-xs) var(--space-md);
    background: var(--glass-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-full);
}

.services-grid[b-14h4zwye58] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.services-grid thead th[b-14h4zwye58] {
    background: var(--glass-inset);
    color: var(--text-secondary);
    text-align: left;
    padding: var(--space-sm) var(--space-md);
    font-family: var(--font-primary);
    font-weight: 600;
    border-bottom: 1px solid var(--border-subtle);
}

.services-grid td[b-14h4zwye58] {
    padding: var(--space-xs) var(--space-md);
    color: var(--text-secondary);
    border-bottom: 1px solid var(--border-subtle);
}

.services-grid td.mono[b-14h4zwye58] {
    font-family: var(--font-mono);
    color: var(--text-primary);
    word-break: break-all;
}

.svc-chip[b-14h4zwye58] {
    padding: var(--space-xs) var(--space-md);
    border-radius: var(--radius-full);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    border: 1px solid transparent;
}

.svc-chip[data-lifetime="Singleton"][b-14h4zwye58] { background: var(--info-color-15); color: var(--info-text); border-color: var(--info-color-30); }
.svc-chip[data-lifetime="Scoped"][b-14h4zwye58]    { background: var(--accent-color-15); color: var(--accent-color-light); border-color: var(--accent-color-30); }
.svc-chip[data-lifetime="Transient"][b-14h4zwye58] { background: var(--warning-color-15); color: var(--warning-text); border-color: var(--warning-color-30); }

.muted[b-14h4zwye58], .loading[b-14h4zwye58] {
    color: var(--text-muted);
    padding: var(--space-md);
}
