/**
 * site.css
 *
 * ArchitectOS documentation stylesheet.
 * Blueprint aesthetic: white base, monochromatic blues, technical precision.
 */

/* ========================================
   Reset and base
   ======================================== */

*, *::before, *::after {
    box-sizing: border-box;
}

html {
    font-size: 16px;
    line-height: 1.6;
}

body {
    margin: 0;
    padding: 0;
    font-family: "Lucida Grande", "Lucida Sans Unicode", "Open Sans", sans-serif;
    color: #1a1a2e;
    background-color: #ffffff;
}

/* ========================================
   Layout
   ======================================== */

.site-container {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.site-header {
    padding: 1.5rem 2rem;
    border-bottom: 2px solid #1a365d;
}

.site-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #1a365d;
    text-decoration: none;
    letter-spacing: 0.02em;
}

.site-title:hover {
    color: #2c5282;
}

.site-body {
    display: flex;
    flex: 1;
}

.site-nav {
    width: 220px;
    flex-shrink: 0;
    padding: 2rem 1.5rem;
    border-right: 1px solid #cbd5e0;
    background-color: #f7fafc;
}

.site-main {
    flex: 1;
    padding: 2rem 3rem;
    max-width: 50rem;
}

.site-main-full {
    max-width: none;
}

.site-footer {
    padding: 1.5rem 2rem;
    border-top: 1px solid #cbd5e0;
    font-size: 0.875rem;
    color: #718096;
}

/* ========================================
   Navigation
   ======================================== */

.nav-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-menu li {
    margin-bottom: 0.5rem;
}

.nav-menu a {
    display: block;
    padding: 0.375rem 0.75rem;
    color: #2d3748;
    text-decoration: none;
    border-left: 2px solid transparent;
}

.nav-menu a:hover {
    color: #1a365d;
    background-color: #edf2f7;
}

.nav-menu li.current a {
    color: #1a365d;
    font-weight: 600;
    border-left-color: #1a365d;
    background-color: #e2e8f0;
}

/* ========================================
   Article
   ======================================== */

.article-header {
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e2e8f0;
}

.article-header h1 {
    margin: 0 0 0.75rem 0;
    font-size: 1.75rem;
    font-weight: 600;
    color: #1a365d;
}

.article-meta {
    margin: 0;
    font-size: 0.8125rem;
    color: #718096;
}

.article-meta span {
    display: inline-block;
}

.article-meta span::after {
    content: "·";
    margin: 0 0.5rem;
    color: #a0aec0;
}

.article-meta span:last-child::after {
    content: none;
}

.meta-status {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.article-body {
    text-align: justify;
    hyphens: auto;
}

/* ========================================
   Markdown content
   ======================================== */

.md h2 {
    margin: 2rem 0 1rem 0;
    font-size: 1.375rem;
    font-weight: 600;
    color: #1a365d;
}

.md h3 {
    margin: 1.5rem 0 0.75rem 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: #2d3748;
}

.md p {
    margin: 0 0 1rem 0;
}

.md ul, .md ol {
    margin: 0 0 1rem 0;
    padding-left: 1.5rem;
}

.md li {
    margin-bottom: 0.375rem;
}

.md a {
    color: #2b6cb0;
    text-decoration: underline;
    text-decoration-color: #90cdf4;
}

.md a:hover {
    color: #1a365d;
    text-decoration-color: #1a365d;
}

/* ========================================
   Code
   ======================================== */

.md code {
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: 0.875em;
    padding: 0.125rem 0.375rem;
    background-color: #edf2f7;
    border-radius: 3px;
}

.md pre {
    margin: 0 0 1rem 0;
    padding: 1rem 1.25rem;
    overflow-x: auto;
    background-color: #f0f4f8;
    border: 1px solid #cbd5e0;
    border-left: 3px solid #1a365d;
}

.md pre code {
    padding: 0;
    background-color: transparent;
    border-radius: 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    tab-size: 4;
}

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

@media (max-width: 768px) {
    .site-body {
        flex-direction: column;
    }

    .site-nav {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid #cbd5e0;
        padding: 1rem 1.5rem;
    }

    .nav-menu {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .nav-menu li {
        margin-bottom: 0;
    }

    .nav-menu a {
        border-left: none;
        border-bottom: 2px solid transparent;
        padding: 0.25rem 0.5rem;
    }

    .nav-menu li.current a {
        border-left-color: transparent;
        border-bottom-color: #1a365d;
    }

    .site-main {
        padding: 1.5rem;
    }
}
