/* Custom school styles for a clean, professional look */

:root {
    --primary: #0d6efd;
    --accent: #20c997;
    --dark: #0b1220;
    --muted: #6c757d;
    --bg: #ffffff;
    --radius: .5rem;
    --shadow-strong: 0 8px 24px rgba(13, 110, 253, 0.08);
    font-family: "Work Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}


/* Topbar gradient */

.topbar.bg-gradient-primary {
    background: linear-gradient(90deg, var(--primary), var(--accent));
}


/* Navbar */

.nav-neo {
    background: var(--bg);
    padding: .6rem 0;
    transition: box-shadow .18s ease, transform .12s ease;
}

.nav-neo .navbar-brand {
    display: flex;
    align-items: center;
    gap: .6rem;
}

.brand-logo {
    width: 44px;
    height: 44px;
    object-fit: contain;
    border-radius: 8px;
    padding: 4px;
    background: rgba(13, 110, 253, 0.04);
    box-shadow: 0 3px 8px rgba(16, 24, 40, 0.05);
}


/* Brand text */

.brand-text strong {
    font-size: 1rem;
    color: var(--dark);
    display: block;
    line-height: 1;
}

.brand-text small {
    color: var(--muted);
    font-size: .78rem;
}


/* Nav links */

.nav-neo .nav-link {
    color: #344054;
    font-weight: 500;
    padding: .45rem .75rem;
    display: flex;
    align-items: center;
}

.nav-neo .nav-link i {
    color: var(--primary);
    font-size: 1.05rem;
    margin-right: .45rem;
}


/* CTA */

.btn-cta {
    background: linear-gradient(90deg, var(--primary), var(--accent));
    color: #fff;
    padding: .45rem .85rem;
    border-radius: .5rem;
    box-shadow: var(--shadow-strong);
    border: none;
}

.btn-cta:hover {
    transform: translateY(-2px);
}


/* Theme toggle */

.theme-toggle {
    background: transparent;
    border: none;
    color: #495057;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .25rem .5rem;
}

.theme-toggle i {
    font-size: 1.05rem;
}


/* Footer */

.footer {
    background: var(--dark);
    color: #cbd5e1;
}

.footer a {
    text-decoration: none;
}

.footer .btn-square {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}


/* Spinner hide after loaded */

#spinner {
    z-index: 2000;
}

#spinner.show {
    display: flex;
}

#spinner.hide {
    display: none;
}


/* Back to top */

.back-to-top {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .5rem;
    opacity: 0;
    visibility: hidden;
    transition: all .18s ease;
    z-index: 1000;
}

.back-to-top.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(-6px);
}


/* Responsive tweaks */

@media (max-width: 767px) {
    .brand-text small {
        display: none;
    }
    .brand-logo {
        width: 40px;
        height: 40px;
    }
    .nav-neo .nav-link {
        padding: .5rem .6rem;
        font-size: .95rem;
    }
}