/*
 * OIS Research Platform - Theme CSS
 * Academic Red Color Scheme + RTL Support
 * Author: Dr. Yohanan Ouaknine
 * Version: 1.1.0
 */

/* ═══════════════════════════════════════════════════════════════════════════════
   COLOR VARIABLES
   ═══════════════════════════════════════════════════════════════════════════════ */

:root {
    /* Primary palette - Academic Red */
    --ois-primary: #8B0000;
    --ois-primary-dark: #5C0000;
    --ois-primary-light: #CD5C5C;
    --ois-primary-hover: #A52A2A;

    /* Secondary palette */
    --ois-secondary: #4a5568;
    --ois-secondary-dark: #2d3748;
    --ois-accent: #DC143C;

    /* Backgrounds */
    --ois-bg-light: #FFF8F8;
    --ois-bg-card: #FFFFFF;
    --ois-bg-dark: #5C0000;

    /* Text */
    --ois-text-primary: #1a202c;
    --ois-text-secondary: #4a5568;
    --ois-text-light: #e2e8f0;

    /* Status colors */
    --ois-success: #38A169;
    --ois-warning: #D69E2E;
    --ois-error: #E53E3E;
    --ois-info: #3182CE;

    /* Borders */
    --ois-border: #e2e8f0;
    --ois-border-dark: #cbd5e0;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   BASE STYLES
   ═══════════════════════════════════════════════════════════════════════════════ */

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background-color: var(--ois-bg-light);
}

a {
    color: var(--ois-primary);
}

a:hover {
    color: var(--ois-primary-dark);
}

/* ═══════════════════════════════════════════════════════════════════════════════
   NAVBAR
   ═══════════════════════════════════════════════════════════════════════════════ */

.navbar {
    background: linear-gradient(135deg, var(--ois-primary) 0%, var(--ois-primary-dark) 100%);
}

.navbar-brand {
    font-weight: 600;
}

.navbar .nav-link {
    color: rgba(255, 255, 255, 0.9) !important;
}

.navbar .nav-link:hover {
    color: #ffffff !important;
}

.navbar .dropdown-menu {
    border: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* ═══════════════════════════════════════════════════════════════════════════════
   MAIN CONTENT
   ═══════════════════════════════════════════════════════════════════════════════ */

.main-content {
    flex: 1;
    padding: 2rem 0;
    background-color: var(--ois-bg-light);
}

/* ═══════════════════════════════════════════════════════════════════════════════
   CARDS
   ═══════════════════════════════════════════════════════════════════════════════ */

.card {
    border: none;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    background-color: var(--ois-bg-card);
}

.card-header {
    background-color: #f8fafc;
    border-bottom: 1px solid var(--ois-border);
    font-weight: 600;
}

.stat-card {
    border-left: 4px solid var(--ois-primary);
}

.stat-card .stat-value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--ois-primary);
}

.stat-card .stat-label {
    color: var(--ois-secondary);
    font-size: 0.875rem;
}

.analysis-card {
    transition: transform 0.2s, box-shadow 0.2s;
    cursor: pointer;
}

.analysis-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(139, 0, 0, 0.15);
}

/* ═══════════════════════════════════════════════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════════════════════════════════════════════ */

.btn-primary {
    background-color: var(--ois-primary);
    border-color: var(--ois-primary);
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--ois-primary-dark);
    border-color: var(--ois-primary-dark);
}

.btn-primary:active {
    background-color: var(--ois-primary-dark) !important;
    border-color: var(--ois-primary-dark) !important;
}

.btn-outline-primary {
    color: var(--ois-primary);
    border-color: var(--ois-primary);
}

.btn-outline-primary:hover {
    background-color: var(--ois-primary);
    border-color: var(--ois-primary);
    color: #ffffff;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   BADGES & ALERTS
   ═══════════════════════════════════════════════════════════════════════════════ */

.badge.bg-primary {
    background-color: var(--ois-primary) !important;
}

.alert-primary {
    background-color: #fef2f2;
    border-color: var(--ois-primary-light);
    color: var(--ois-primary-dark);
}

/* ═══════════════════════════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════════════════════════ */

footer {
    background-color: var(--ois-primary-dark);
    color: var(--ois-text-light);
    padding: 1rem 0;
}

footer a {
    color: var(--ois-text-light);
}

footer a:hover {
    color: #ffffff;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   CODE BLOCKS
   ═══════════════════════════════════════════════════════════════════════════════ */

.code-block {
    background-color: #1e293b;
    color: #e2e8f0;
    padding: 1rem;
    border-radius: 0.5rem;
    font-family: 'Monaco', 'Menlo', monospace;
    font-size: 0.875rem;
    overflow-x: auto;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   LOADING OVERLAY
   ═══════════════════════════════════════════════════════════════════════════════ */

.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

.loading-overlay .spinner-border {
    color: var(--ois-primary) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   SIDEBAR
   ═══════════════════════════════════════════════════════════════════════════════ */

.sidebar {
    background: #fff;
    min-height: calc(100vh - 56px);
    border-right: 1px solid var(--ois-border);
}

.sidebar .nav-link {
    color: var(--ois-secondary);
    padding: 0.75rem 1rem;
    border-radius: 0.25rem;
    margin: 0.125rem 0.5rem;
}

.sidebar .nav-link:hover {
    background-color: #fff5f5;
    color: var(--ois-primary);
}

.sidebar .nav-link.active {
    background-color: #fee2e2;
    color: var(--ois-primary);
    font-weight: 500;
}

.sidebar .nav-link i {
    width: 1.5rem;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   FORMS
   ═══════════════════════════════════════════════════════════════════════════════ */

.form-control:focus,
.form-select:focus {
    border-color: var(--ois-primary-light);
    box-shadow: 0 0 0 0.2rem rgba(139, 0, 0, 0.15);
}

.form-check-input:checked {
    background-color: var(--ois-primary);
    border-color: var(--ois-primary);
}

/* ═══════════════════════════════════════════════════════════════════════════════
   TABLES
   ═══════════════════════════════════════════════════════════════════════════════ */

.table-primary {
    --bs-table-bg: #fef2f2;
    --bs-table-border-color: #fecaca;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   RTL SUPPORT (Hebrew & Arabic)
   ═══════════════════════════════════════════════════════════════════════════════ */

[dir="rtl"] {
    text-align: right;
}

[dir="rtl"] .navbar-nav {
    padding-right: 0;
}

[dir="rtl"] .dropdown-menu {
    text-align: right;
}

[dir="rtl"] .breadcrumb {
    flex-direction: row-reverse;
}

[dir="rtl"] .breadcrumb-item + .breadcrumb-item::before {
    float: right;
    padding-left: 0.5rem;
    padding-right: 0;
}

/* RTL margin utilities */
[dir="rtl"] .me-1 { margin-left: 0.25rem !important; margin-right: 0 !important; }
[dir="rtl"] .me-2 { margin-left: 0.5rem !important; margin-right: 0 !important; }
[dir="rtl"] .me-3 { margin-left: 1rem !important; margin-right: 0 !important; }
[dir="rtl"] .ms-1 { margin-right: 0.25rem !important; margin-left: 0 !important; }
[dir="rtl"] .ms-2 { margin-right: 0.5rem !important; margin-left: 0 !important; }
[dir="rtl"] .ms-3 { margin-right: 1rem !important; margin-left: 0 !important; }

/* RTL padding utilities */
[dir="rtl"] .pe-1 { padding-left: 0.25rem !important; padding-right: 0 !important; }
[dir="rtl"] .pe-2 { padding-left: 0.5rem !important; padding-right: 0 !important; }
[dir="rtl"] .pe-3 { padding-left: 1rem !important; padding-right: 0 !important; }
[dir="rtl"] .ps-1 { padding-right: 0.25rem !important; padding-left: 0 !important; }
[dir="rtl"] .ps-2 { padding-right: 0.5rem !important; padding-left: 0 !important; }
[dir="rtl"] .ps-3 { padding-right: 1rem !important; padding-left: 0 !important; }

/* RTL text alignment */
[dir="rtl"] .text-start { text-align: right !important; }
[dir="rtl"] .text-end { text-align: left !important; }
[dir="rtl"] .text-md-end { text-align: left !important; }
[dir="rtl"] .text-md-start { text-align: right !important; }

/* RTL float */
[dir="rtl"] .float-start { float: right !important; }
[dir="rtl"] .float-end { float: left !important; }

/* RTL border */
[dir="rtl"] .border-start { border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; border-left: 0 !important; }
[dir="rtl"] .border-end { border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; border-right: 0 !important; }

/* RTL card accents */
[dir="rtl"] .stat-card {
    border-left: none;
    border-right: 4px solid var(--ois-primary);
}

/* RTL sidebar */
[dir="rtl"] .sidebar {
    border-right: none;
    border-left: 1px solid var(--ois-border);
}

/* RTL icons in buttons */
[dir="rtl"] .bi {
    margin-left: 0.5rem;
    margin-right: 0;
}

/* RTL form elements */
[dir="rtl"] .form-check {
    padding-left: 0;
    padding-right: 1.5em;
}

[dir="rtl"] .form-check-input {
    float: right;
    margin-left: 0;
    margin-right: -1.5em;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   LANGUAGE SWITCHER
   ═══════════════════════════════════════════════════════════════════════════════ */

.lang-switcher .dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.lang-switcher .dropdown-item.active {
    background-color: var(--ois-primary);
}

.lang-flag {
    width: 20px;
    height: 15px;
    object-fit: cover;
    border-radius: 2px;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   PRINT STYLES
   ═══════════════════════════════════════════════════════════════════════════════ */

@media print {
    .navbar,
    footer,
    .btn,
    .loading-overlay {
        display: none !important;
    }

    .main-content {
        padding: 0;
    }

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