/* FM26 Scoped Reset — only affects content inside .fm26-app */
.fm26-app {
    font-family: var(--fm26-font-primary);
    background: var(--fm26-bg-primary);
    color: var(--fm26-text-primary);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    border-radius: var(--fm26-radius-lg);
}

.fm26-app *, .fm26-app *::before, .fm26-app *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.fm26-app a {
    color: var(--fm26-accent-primary);
    text-decoration: none;
    transition: color var(--fm26-transition-fast);
}

.fm26-app a:hover {
    color: var(--fm26-accent-primary-hover);
}

.fm26-app img, .fm26-app svg {
    max-width: 100%;
    display: block;
}

.fm26-app button {
    font-family: inherit;
    cursor: pointer;
    border: none;
    background: none;
    color: inherit;
    font-size: inherit;
}

.fm26-app input, .fm26-app select, .fm26-app textarea {
    font-family: inherit;
    font-size: inherit;
    color: inherit;
}

.fm26-app ul, .fm26-app ol {
    list-style: none;
}

/* Typography */
.fm26-app h1, .fm26-app h2, .fm26-app h3, .fm26-app h4, .fm26-app h5, .fm26-app h6 {
    font-weight: 700;
    line-height: 1.2;
    color: var(--fm26-text-primary);
}

.fm26-app h1 { font-size: 2rem; }
.fm26-app h2 { font-size: 1.5rem; }
.fm26-app h3 { font-size: 1.25rem; }
.fm26-app h4 { font-size: 1.1rem; }

.fm26-app .display-heading {
    font-size: 2.5rem;
    font-weight: 800;
    letter-spacing: -0.5px;
}

/* Scrollbar */
.fm26-app ::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

.fm26-app ::-webkit-scrollbar-track {
    background: var(--fm26-bg-primary);
}

.fm26-app ::-webkit-scrollbar-thumb {
    background: var(--fm26-border-hover);
    border-radius: var(--fm26-radius-full);
}

.fm26-app ::-webkit-scrollbar-thumb:hover {
    background: var(--fm26-text-muted);
}

/* Selection */
.fm26-app ::selection {
    background: var(--fm26-accent-primary);
    color: var(--fm26-text-inverse);
}

/* Focus */
.fm26-app :focus-visible {
    outline: 2px solid var(--fm26-accent-primary);
    outline-offset: 2px;
}

/* Utility */
.fm26-app .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.fm26-app .text-muted { color: var(--fm26-text-muted); }
.fm26-app .text-secondary { color: var(--fm26-text-secondary); }
.fm26-app .text-accent { color: var(--fm26-accent-primary); }
.fm26-app .text-danger { color: var(--fm26-accent-danger); }
.fm26-app .text-warning { color: var(--fm26-accent-warning); }

/* Loading Spinner */
.fm26-app .loading-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    gap: var(--fm26-space-md);
}

.fm26-app .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--fm26-border-default);
    border-top-color: var(--fm26-accent-primary);
    border-radius: 50%;
    animation: fm26spin 0.8s linear infinite;
}

@keyframes fm26spin {
    to { transform: rotate(360deg); }
}

.fm26-app .loading-text {
    color: var(--fm26-text-muted);
    font-size: 0.9rem;
}

/* Empty State */
.fm26-app .empty-state {
    text-align: center;
    padding: var(--fm26-space-2xl);
    color: var(--fm26-text-muted);
    font-size: 1rem;
}

.fm26-app .empty-state-icon {
    font-size: 3rem;
    margin-bottom: var(--fm26-space-md);
    opacity: 0.4;
}

/* Error State */
.fm26-app .error-state {
    text-align: center;
    padding: var(--fm26-space-2xl);
    color: var(--fm26-accent-danger);
}
