:root {
    color-scheme: dark;
}

body {
    min-height: 100vh;
    background: #080b12;
}

.site-bg {
    position: fixed;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(circle at top left, rgba(13, 110, 253, 0.28), transparent 35rem),
        radial-gradient(circle at bottom right, rgba(25, 135, 84, 0.18), transparent 30rem),
        linear-gradient(135deg, #080b12 0%, #111827 60%, #080b12 100%);
}

.glass-nav,
.glass-card {
    background: rgba(15, 23, 42, 0.82);
    backdrop-filter: blur(14px);
}

.brand-dot {
    width: 0.8rem;
    height: 0.8rem;
    border-radius: 50%;
    display: inline-block;
    background: #0d6efd;
    box-shadow: 0 0 1rem rgba(13, 110, 253, 0.9);
}

.language-select {
    width: 8rem;
}

.hero {
    padding: 1rem 0;
}

.lock-icon {
    display: grid;
    place-items: center;
    width: 4rem;
    height: 4rem;
    border-radius: 1.25rem;
    background: rgba(13, 110, 253, 0.15);
    font-size: 2rem;
}

.step-list {
    display: grid;
    gap: 0.75rem;
}

.sticky-steps {
    top: 6rem;
}

.step-tab {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 1rem;
    padding: 0.9rem 1rem;
    background: rgba(15, 23, 42, 0.72);
    color: var(--bs-light);
    text-align: left;
    transition: 0.18s ease;
}

.step-tab:hover,
.step-tab.active {
    border-color: rgba(13, 110, 253, 0.9);
    background: rgba(13, 110, 253, 0.16);
}

.step-num {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    color: var(--bs-light);
    font-weight: 700;
}

.step-tab.active .step-num {
    background: #0d6efd;
}

.step-card {
    scroll-margin-top: 6rem;
}

.soft-panel {
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.log-box {
    min-height: 14rem;
    max-height: 24rem;
    overflow: auto;
    border-radius: 0.9rem;
    padding: 1rem;
    color: #d1e7dd;
    background: #05080d;
    border: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 0.875rem;
    white-space: pre-wrap;
}

@media (max-width: 991.98px) {
    .sticky-steps {
        position: static !important;
    }

    .step-list {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 575.98px) {
    .step-list {
        grid-template-columns: 1fr;
    }

    .language-select {
        width: 7rem;
    }
}
