/* CDOSR - Main Stylesheet */
/* Space-themed design for CoderDojo Oradea Space Robotics */

:root {
    --cdosr-dark: #0b1120;
    --cdosr-navy: #111827;
    --cdosr-accent: #38bdf8;
    --cdosr-accent-2: #818cf8;
    --cdosr-glow: rgba(56, 189, 248, 0.15);
}

/* ==================== Global ==================== */

body {
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
}

.text-accent {
    color: var(--cdosr-accent);
}

/* ==================== Hero ==================== */

.hero-section {
    background: linear-gradient(135deg, var(--cdosr-dark) 0%, #1e1b4b 50%, var(--cdosr-navy) 100%);
    position: relative;
    overflow: hidden;
}

.hero-section::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background:
        radial-gradient(1px 1px at 10% 20%, rgba(255,255,255,0.4), transparent),
        radial-gradient(1px 1px at 30% 60%, rgba(255,255,255,0.3), transparent),
        radial-gradient(1px 1px at 50% 10%, rgba(255,255,255,0.5), transparent),
        radial-gradient(1px 1px at 70% 80%, rgba(255,255,255,0.3), transparent),
        radial-gradient(1px 1px at 90% 40%, rgba(255,255,255,0.4), transparent),
        radial-gradient(2px 2px at 15% 85%, rgba(255,255,255,0.2), transparent),
        radial-gradient(2px 2px at 85% 15%, rgba(255,255,255,0.2), transparent),
        radial-gradient(1px 1px at 40% 45%, rgba(255,255,255,0.3), transparent),
        radial-gradient(1px 1px at 60% 30%, rgba(255,255,255,0.3), transparent),
        radial-gradient(1px 1px at 25% 70%, rgba(255,255,255,0.2), transparent);
    pointer-events: none;
}

.hero-logo {
    filter: drop-shadow(0 0 20px var(--cdosr-glow));
}

/* ==================== Stats ==================== */

.stat-number {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--cdosr-accent);
    line-height: 1.2;
}

.stat-label {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #9ca3af;
}

/* ==================== Cards ==================== */

.card {
    transition: transform 0.2s, box-shadow 0.2s;
    border-radius: 0.75rem;
}

.card-hover:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(0,0,0,0.1);
}

/* ==================== Partner logos ==================== */

.partner-logo {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.5rem;
    color: #6b7280;
    font-weight: 500;
    font-size: 0.95rem;
    transition: border-color 0.2s, color 0.2s;
}

.partner-logo:hover {
    border-color: var(--cdosr-accent);
    color: var(--cdosr-accent);
}

/* ==================== Timeline ==================== */

.timeline {
    position: relative;
    padding-left: 2rem;
}

.timeline::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(to bottom, var(--cdosr-accent), var(--cdosr-accent-2));
}

.timeline-item {
    position: relative;
    padding-bottom: 2rem;
    padding-left: 1rem;
}

.timeline-item::before {
    content: '';
    position: absolute;
    left: -2.35rem;
    top: 0.35rem;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--cdosr-accent);
    border: 2px solid #fff;
    box-shadow: 0 0 0 3px var(--cdosr-glow);
}

.timeline-year {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--cdosr-accent);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.timeline-title {
    font-size: 1.15rem;
    font-weight: 600;
    margin: 0.25rem 0;
}

/* ==================== Page headers ==================== */

.page-header {
    background: linear-gradient(135deg, var(--cdosr-dark), #1e1b4b);
    color: #fff;
    padding: 3rem 0 2rem;
}

.page-header h1 {
    font-weight: 700;
}

.page-header .lead {
    color: #9ca3af;
}

/* ==================== Breadcrumbs ==================== */

.breadcrumb-item a {
    color: var(--cdosr-accent);
    text-decoration: none;
}

.breadcrumb-item a:hover {
    text-decoration: underline;
}

/* ==================== Navbar ==================== */

.navbar {
    background: var(--cdosr-dark) !important;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}

.navbar-brand img {
    vertical-align: middle;
}

.navbar .nav-link {
    font-size: 0.9rem;
}

/* ==================== Spec table ==================== */

.spec-table td:first-child {
    font-weight: 600;
    color: #374151;
    width: 40%;
}

.spec-table td:last-child {
    color: #6b7280;
}

/* ==================== Footer ==================== */

footer {
    background: var(--cdosr-dark) !important;
}

footer a {
    transition: color 0.2s;
}

footer a:hover {
    color: var(--cdosr-accent) !important;
}

/* ==================== Blog ==================== */

.blog-content img {
    max-width: 100%;
    height: auto;
    border-radius: 0.5rem;
}

.blog-content pre {
    background: #1e293b;
    color: #e2e8f0;
    padding: 1rem;
    border-radius: 0.5rem;
    overflow-x: auto;
}

.blog-content code {
    font-size: 0.9em;
}

.blog-content h2 {
    margin-top: 2rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #e5e7eb;
}

/* ==================== KaTeX ==================== */

.katex-block {
    overflow-x: auto;
    padding: 1rem 0;
}

/* ==================== Competition tools ==================== */

#telemetry-charts .card-body {
    min-height: 250px;
}

.rover-controls .btn {
    min-width: 80px;
}

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

@media (max-width: 768px) {
    .hero-section .display-3 {
        font-size: 2rem;
    }

    .stat-number {
        font-size: 1.8rem;
    }

    .timeline {
        padding-left: 1.5rem;
    }
}
