/* ===== Base / reset ===== */
*,
*::before,
*::after { box-sizing: border-box; }

html, body { height: 100%; }

html {
    line-height: 1.15;
    -webkit-text-size-adjust: 100%;
    font-size: 16px;
}

body {
    margin: 0;
    background-color: #1c1c1c;
    color: rgba(255, 255, 255, .85);
    -webkit-font-smoothing: antialiased;
    font-family: 'Roboto Mono', monospace;
}

main {
    min-height: 100%;
    padding: 24px;
    display: flex;
    justify-content: center;
}

/* Typography */
h1, h2, h3, p, ul { margin: 0; padding: 0; text-align: left; }
p { margin-top: 8px; }

a { color: rgba(255, 255, 255, .75); text-decoration: none; }
a:hover { color: rgba(255, 255, 255, .95); }

/* ===== Container ===== */
.page-container {
    width: 100%;
    max-width: 980px;
    padding: 24px;
    border-radius: 10px;
}

.bg-light { background-color: #1c1c1c; }

/* ===== Header (aligned to grid columns) ===== */
.header {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.meta-list {
    list-style: none;
    display: grid;
    gap: 6px;
    justify-items: start; /* keeps left edge aligned */
}

.meta-item { line-height: 1.34; }

@media (min-width: 768px) {
    /* Must match .two-col-grid desktop columns */
    .header {
        grid-template-columns: 1.35fr 1fr;
        column-gap: 40px;
        align-items: start;
    }

    .meta-list {
        justify-self: start; /* aligns with Tools column start */
    }
}

/* ===== Two-column layout ===== */
.two-col-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px 40px;
    align-items: start;
}

@media (min-width: 768px) {
    .two-col-grid { grid-template-columns: 1.35fr 1fr; }
}

/* ===== Sections ===== */
.block { margin-top: 0; }

.section-title {
    font-size: 15px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .6);
    padding-bottom: 8px;
    margin-bottom: 16px;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.section-content { margin-top: 12px; }

/* ===== Lists ===== */
ul { list-style: none; }
.list-disc { list-style: disc; }
.padding-left-6 { padding-left: 24px; }

/* ===== Utility classes used by HTML ===== */
.font-roboto-mono { font-family: 'Roboto Mono', monospace; }
.manual-hyphens { hyphens: manual; }

.font-normal { font-weight: 400; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }

.leading-normal { line-height: 1.34; }
.leading-snugish { line-height: 1.32; }

.text-md { font-size: 17px; }
.text-lg { font-size: 18px; }
.text-2xl { font-size: 24px; }

.text-gray-700 { color: rgba(255, 255, 255, .85); }
.text-gray-600 { color: rgba(255, 255, 255, .72); }

.margin-bottom-8 { margin-bottom: 32px; }

/* Print */
.break-inside-avoid { break-inside: avoid; }

@media print {
    @page { size: A4; margin: 0; }

    body {
        background: #fff !important;
        color: #000 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    main { padding: 0 !important; }

    .page-container {
        max-width: 1036px !important;
        height: 1460px !important;
        margin: auto !important;
        padding: 64px !important;
        border-radius: 0 !important;
        background: #fff !important;
    }

    a { color: #000 !important; }

    .section-title {
        color: #000 !important;
        border-bottom-color: #ddd !important;
    }

    .text-gray-700,
    .text-gray-600 {
        color: #000 !important;
    }
}

/* Small screens */
@media (max-width: 600px) {
    html { font-size: 14px; }
    main { padding: 16px; }
    .page-container { padding: 16px; }
    .text-lg { font-size: 16px; }
    .text-md { font-size: 14px; }
}
