/* ========================================
   LibraProducts Web Application CSS
   Application-Specific Overrides
   ======================================== */

/*
   NOTE: The design system is now in the RCL.
   This file only contains:
   - Application-specific overrides
   - Layout styles for MainLayout
   - Legacy compatibility (to be phased out)

   The RCL provides:
   - Design tokens (via _variables.css)
   - Base styles (via _base.css)
   - Utilities (via _utilities.css)
   - Component styles (buttons, forms, grid, cards, badges)
*/

/* ========================================
   Application Layout Overrides
   ======================================== */

/* Ensure full height layout */
html, body, #app, .page {
    height: 100%;
}

html {
    font-size: 16px;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

/* Override body background */
body {
    background-color: var(--ui-bg-page, #f9fafb);
}

/* ========================================
   Blazor Specific
   ======================================== */

.blazor-error-boundary {
    background: var(--libra-danger-light, #fef2f2);
    padding: var(--space-4, 1rem);
    border: 1px solid var(--libra-danger, #ef4444);
    border-radius: var(--radius-md, 0.375rem);
}

.blazor-error-boundary::after {
    content: "An error has occurred.";
    color: var(--libra-danger, #ef4444);
}

/* ========================================
   Validation Styles (Blazor Forms)
   ======================================== */

.valid.modified:not([type=checkbox]) {
    outline: none;
    border-color: var(--libra-success, #10b981);
}

.invalid {
    outline: none;
    border-color: var(--libra-danger, #ef4444);
}

.validation-message {
    color: var(--libra-danger, #ef4444);
    font-size: var(--text-sm, 0.8125rem);
    margin-top: var(--space-1, 0.25rem);
}

/* ========================================
   Legacy Bootstrap Overrides
   These help transition from Bootstrap to Libra
   ======================================== */

/* Override Bootstrap's default blue focus */
.btn:focus,
.form-control:focus,
.form-select:focus {
    box-shadow: var(--shadow-focus, 0 0 0 3px rgba(59, 130, 246, 0.1));
}

/* Make Bootstrap buttons use our tokens */
.btn-primary {
    background-color: var(--libra-primary, #3b82f6);
    border-color: var(--libra-primary, #3b82f6);
    color: #fff;
}

.btn-primary:hover {
    background-color: var(--libra-primary-hover, #2563eb);
    border-color: var(--libra-primary-hover, #2563eb);
    color: #fff;
}

.btn-secondary {
    color: var(--ui-text-secondary, #374151);
    background-color: var(--ui-bg-primary, #ffffff);
    border-color: var(--ui-border-medium, #d1d5db);
}

.btn-secondary:hover {
    color: var(--ui-text-primary, #111827);
    background-color: var(--ui-bg-secondary, #f9fafb);
    border-color: var(--ui-border-dark, #9ca3af);
}

.btn-outline-secondary {
    color: var(--ui-text-secondary, #374151);
    border-color: var(--ui-border-medium, #d1d5db);
}

.btn-outline-secondary:hover {
    background-color: var(--ui-bg-secondary, #f9fafb);
    color: var(--ui-text-primary, #111827);
    border-color: var(--ui-border-dark, #9ca3af);
}

/* ========================================
   Page Container
   ======================================== */

.page-container {
    max-width: var(--content-max-width, 1400px);
    margin: 0 auto;
    padding: var(--space-6, 1.5rem);
}

/* ========================================
   Page Header
   ======================================== */

.page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4, 1rem);
    margin-bottom: var(--space-6, 1.5rem);
}

.page-header-content {
    flex: 1;
}

.page-title {
    font-size: var(--text-2xl, 1.25rem);
    font-weight: var(--font-semibold, 600);
    color: var(--ui-text-primary, #111827);
    margin: 0 0 var(--space-1, 0.25rem) 0;
}

.page-subtitle {
    font-size: var(--text-base, 0.875rem);
    color: var(--ui-text-muted, #6b7280);
    margin: 0;
}

.page-actions {
    display: flex;
    align-items: center;
    gap: var(--space-3, 0.75rem);
}

/* ========================================
   Content Cards (Page Level)
   ======================================== */

.content-card {
    background-color: var(--card-bg, #ffffff);
    border: 1px solid var(--card-border, #e5e7eb);
    border-radius: var(--card-radius, 0.5rem);
    box-shadow: var(--card-shadow, 0 1px 3px rgba(0, 0, 0, 0.06));
}

.content-card-header {
    padding: var(--space-4, 1rem) var(--space-6, 1.5rem);
    border-bottom: 1px solid var(--ui-border-light, #e5e7eb);
}

.content-card-body {
    padding: var(--space-6, 1.5rem);
}

.content-card-footer {
    padding: var(--space-4, 1rem) var(--space-6, 1.5rem);
    border-top: 1px solid var(--ui-border-light, #e5e7eb);
    background-color: var(--ui-bg-secondary, #f9fafb);
}

/* ========================================
   Responsive Adjustments
   ======================================== */

@media (max-width: 768px) {
    .page-container {
        padding: var(--space-4, 1rem);
    }

    .page-header {
        flex-direction: column;
        align-items: stretch;
    }

    .page-actions {
        justify-content: flex-start;
    }
}

/* ========================================
   Print Styles
   ======================================== */

@media print {
    .no-print,
    .sidebar,
    .top-row {
        display: none !important;
    }

    .content {
        margin: 0;
        padding: 0;
    }

    .content-card {
        box-shadow: none;
        border: 1px solid #000;
    }
}
