/* FAIR Custom Components Styles */

/* Base component styles */
.fair-component {
    font-family: inherit;
}

/* File upload/download states */
.fair-upload-processing {
    opacity: 0.6;
    pointer-events: none;
}

.fair-upload-error {
    border-color: #f44336;
}

/* Accessibility focus states */
.fair-component:focus-visible {
    outline: 2px solid #1976d2;
    outline-offset: 2px;
}

/* Loading spinner for async operations */
.fair-loading {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid #e0e0e0;
    border-top-color: #1976d2;
    border-radius: 50%;
    animation: fair-spin 0.8s linear infinite;
}

@keyframes fair-spin {
    to {
        transform: rotate(360deg);
    }
}

/* Message states */
.fair-message {
    padding: 12px 16px;
    border-radius: 4px;
    margin-bottom: 16px;
}

.fair-message-success {
    background: #e8f5e9;
    color: #2e7d32;
    border: 1px solid #a5d6a7;
}

.fair-message-error {
    background: #ffebee;
    color: #c62828;
    border: 1px solid #ef9a9a;
}

.fair-message-warning {
    background: #fff3e0;
    color: #e65100;
    border: 1px solid #ffcc80;
}

.fair-message-info {
    background: #e3f2fd;
    color: #1565c0;
    border: 1px solid #90caf9;
}

/* Stub editor styles (for not-yet-implemented section editors) */
.stub-editor {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 300px;
    background: #fafafa;
    padding: 40px;
}

.stub-content {
    text-align: center;
    max-width: 400px;
}

.stub-icon {
    font-size: 48px;
    color: #bdbdbd;
    margin-bottom: 16px;
}

.stub-editor h4 {
    margin: 0 0 12px 0;
    font-size: 20px;
    font-weight: 600;
    color: #333;
}

.stub-section {
    color: #666;
    margin: 0 0 8px 0;
    font-size: 14px;
}

.stub-message {
    color: #999;
    margin: 0 0 8px 0;
    font-style: italic;
}

.stub-type {
    color: #bdbdbd;
    margin: 0;
    font-size: 12px;
}
