/* EchoProfit - Custom Styles */

html, body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}

/* Scrollbar styling */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: #f1f5f9;
}

::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* Blazor error UI */
#blazor-error-ui {
    display: none;
}

#blazor-error-ui.show {
    display: block;
}

/* Form input focus states */
input:focus, select:focus, textarea:focus {
    outline: none;
}

/* Transition defaults */
.transition-default {
    transition: all 0.2s ease-in-out;
}

/* Card shadow */
.card-shadow {
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
}

/* Status bar safe area for mobile */
.status-bar-safe-area {
    display: none;
}

@supports (-webkit-touch-callout: none) {
    .status-bar-safe-area {
        display: flex;
        position: sticky;
        top: 0;
        height: env(safe-area-inset-top);
        background-color: #f7f7f7;
        width: 100%;
        z-index: 1;
    }
}

/* Blur overlay for paywall */
.blur-content {
    filter: blur(4px);
    pointer-events: none;
    user-select: none;
}

/* Navigation active state */
.nav-active {
    background-color: #e0f2fe;
    color: #1698f7;
}

/* Stat card gradient backgrounds */
.stat-card-blue {
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
}

.stat-card-green {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
}

.stat-card-purple {
    background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%);
}

/* Loading spinner */
.spinner {
    border: 2px solid #f3f3f3;
    border-top: 2px solid #1698f7;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Toast notifications */
.toast {
    animation: slideIn 0.3s ease-out;
}

@keyframes slideIn {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* Blazor error boundary */
.blazor-error-boundary {
    background: #b32121;
    padding: 1rem;
    color: white;
}

.blazor-error-boundary::after {
    content: "An error has occurred."
}

/* Valid/Invalid form states */
.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
    font-size: 0.875rem;
    margin-top: 0.25rem;
}
