/* =========================================================
   EDD Instructor Cheat Sheet — shared stylesheet
   Used by every docs/decks/week-{N}-cheatsheet.html.
   Per-week deltas (pacing-strip column count, briefing /
   joint variants for Week 5, the rubric table and 13-cell
   pacing strip for Week 6) stay inline in their own file.
   ========================================================= */

:root {
    --cs-scarlet: #CC0000;
    --cs-scarlet-dark: #a30000;
    --cs-gold: #F5D130;
    --cs-gold-dark: #d4b11a;
    --cs-ink: #1a1a1a;
    --cs-ink-2: #4a4a4a;
    --cs-ink-3: #6e6e6e;
    --cs-paper: #ffffff;
    --cs-paper-2: #f8f7f5;
    --cs-paper-3: #efeee9;
    --cs-rule: #d9d8d4;
    --cs-rule-2: #e8e7e3;
    --cs-warn: #5f4b08;
    --cs-warn-bg: #fef7e0;
    --cs-warn-edge: #d4b11a;
    --cs-mono: "Cascadia Code", "Fira Code", Consolas, Monaco, "Courier New", monospace;
}

/* ---------- Screen-only intro / preview note ------------- */
.cheat-intro {
    max-width: 8.5in;
    margin: 0 auto 1.25rem;
    background: var(--color-bg-secondary);
    border-left: 4px solid var(--cs-scarlet);
    padding: var(--space-md) var(--space-lg);
    border-radius: 0 var(--space-sm) var(--space-sm) 0;
}
.cheat-intro p { margin: 0; }
.cheat-intro p + p { margin-top: var(--space-sm); }
.cheat-intro__pdf {
    margin-top: var(--space-sm);
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    font-size: 0.92rem;
    color: var(--cs-ink-2);
}

/* ---------- Page frame ----------------------------------- */
.cheat-page {
    background: var(--cs-paper);
    color: var(--cs-ink);
    border: 1px solid var(--cs-rule);
    border-radius: 6px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06);
    margin: 0 auto 2rem;
    max-width: 8.5in;
    min-height: 11in;
    padding: 0.5in 0.55in;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
                 "Helvetica Neue", Arial, sans-serif;
    font-size: 9.4pt;
    line-height: 1.3;
    display: flex;
    flex-direction: column;
    gap: 0.16in;
}

/* ---------- Header --------------------------------------- */
.cs-head {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.22in;
    align-items: center;
    padding-bottom: 0.12in;
    border-bottom: 2px solid var(--cs-ink);
}
.cs-head__week {
    display: flex;
    align-items: baseline;
    gap: 0.12in;
    font-size: 8pt;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--cs-ink-3);
    font-weight: 700;
}
.cs-head__week .num {
    display: inline-block;
    min-width: 0.6in;
    font-size: 28pt;
    font-weight: 900;
    line-height: 1;
    color: var(--cs-scarlet);
    letter-spacing: -0.02em;
}
.cs-head__title h1 {
    font-size: 18pt;
    line-height: 1.05;
    margin: 0;
    color: var(--cs-ink);
    letter-spacing: -0.01em;
}
.cs-head__title .sub {
    margin: 0.05in 0 0;
    color: var(--cs-ink-2);
    font-size: 9pt;
}
.cs-head__meta {
    text-align: right;
    font-size: 8.2pt;
    color: var(--cs-ink-2);
    line-height: 1.35;
}
.cs-head__meta strong { color: var(--cs-ink); }

/* ---------- Pacing strip --------------------------------- */
/* The grid-template-columns count is per-week and lives in
   the file's inline <style>. */
.cs-pacing {
    display: grid;
    border: 1px solid var(--cs-rule);
    border-radius: 4px;
    overflow: hidden;
}
.cs-pacing__cell {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.06in 0.04in;
    border-right: 1px solid var(--cs-rule-2);
    background: var(--cs-paper-2);
    min-height: 0.5in;
    font-size: 7.6pt;
    line-height: 1.18;
    text-align: center;
}
.cs-pacing__cell:last-child { border-right: 0; }
.cs-pacing__cell .t {
    font-weight: 700;
    color: var(--cs-ink);
    font-size: 7.8pt;
    letter-spacing: 0.02em;
}
.cs-pacing__cell .n {
    color: var(--cs-ink-2);
    font-size: 7.4pt;
    margin-top: 1px;
}
.cs-pacing__cell--break {
    background: var(--cs-warn-bg);
    color: var(--cs-warn);
}
.cs-pacing__cell--break .t {
    color: var(--cs-scarlet-dark);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.cs-pacing__cell--break .n {
    color: var(--cs-ink-2);
    font-weight: 700;
}
.cs-pacing__cell--build .t::before {
    content: "▶ ";
    color: var(--cs-scarlet);
}

/* ---------- Module table --------------------------------- */
.cs-modules {
    border: 1px solid var(--cs-rule);
    border-radius: 4px;
    overflow: hidden;
}
.cs-mod {
    display: grid;
    grid-template-columns: 0.55in 1.85in 1fr 1.55in;
    gap: 0;
    border-bottom: 1px solid var(--cs-rule-2);
    page-break-inside: avoid;
}
.cs-mod:last-child { border-bottom: 0; }
.cs-mod__no {
    background: var(--cs-paper-3);
    padding: 0.08in 0.06in;
    text-align: center;
    border-right: 1px solid var(--cs-rule-2);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1px;
}
.cs-mod__no .n {
    font-size: 14pt;
    font-weight: 900;
    line-height: 1;
    color: var(--cs-ink);
    letter-spacing: -0.02em;
}
.cs-mod__no .dur {
    font-size: 7pt;
    color: var(--cs-ink-3);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.cs-mod--build .cs-mod__no { background: #fbecec; }
.cs-mod--build .cs-mod__no .n { color: var(--cs-scarlet); }

.cs-mod__name {
    padding: 0.07in 0.08in;
    border-right: 1px solid var(--cs-rule-2);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1px;
}
.cs-mod__name .title {
    font-weight: 700;
    font-size: 9.6pt;
    color: var(--cs-ink);
    line-height: 1.18;
}
.cs-mod__name .clock {
    font-size: 7.6pt;
    color: var(--cs-ink-3);
    font-family: var(--cs-mono);
    letter-spacing: 0.02em;
}
.cs-mod__name .kind {
    font-size: 7pt;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cs-scarlet);
    font-weight: 700;
    margin-top: 1px;
}
.cs-mod--framing .cs-mod__name .kind { color: var(--cs-ink-3); }

.cs-mod__prompts {
    padding: 0.07in 0.08in;
    border-right: 1px solid var(--cs-rule-2);
}
.cs-mod__prompts ol {
    margin: 0;
    padding-left: 0.18in;
    color: var(--cs-ink-2);
    font-size: 8.4pt;
    line-height: 1.32;
}
.cs-mod__prompts ol li + li { margin-top: 1px; }
.cs-mod__prompts ol li strong {
    color: var(--cs-ink);
    font-weight: 700;
}
.cs-mod__prompts code {
    font-family: var(--cs-mono);
    font-size: 7.8pt;
    background: var(--cs-paper-3);
    padding: 0 3px;
    border-radius: 2px;
    color: var(--cs-ink);
}
.cs-mod__prompts .none {
    font-style: italic;
    color: var(--cs-ink-3);
    font-size: 8.4pt;
}

.cs-mod__milestone {
    padding: 0.07in 0.08in;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    background: #fcfbf6;
}
.cs-mod__milestone .layer {
    font-size: 7.2pt;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cs-gold-dark);
    font-weight: 800;
}
.cs-mod__milestone .arch {
    font-size: 8.4pt;
    color: var(--cs-ink);
    font-weight: 600;
    line-height: 1.2;
}
.cs-mod__milestone .desc {
    font-size: 7.6pt;
    color: var(--cs-ink-2);
    line-height: 1.2;
}

.cs-mod--break {
    grid-template-columns: 0.55in 1fr;
    background: var(--cs-warn-bg);
}
.cs-mod--break .cs-mod__no {
    background: var(--cs-warn-bg);
    border-right: 1px solid var(--cs-warn-edge);
}
.cs-mod--break .cs-mod__no .n {
    font-size: 11pt;
    color: var(--cs-scarlet);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 800;
}
.cs-mod--break .cs-mod__line {
    grid-column: 2;
    padding: 0.06in 0.1in;
    font-size: 8.4pt;
    color: var(--cs-ink);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.2in;
}
.cs-mod--break .cs-mod__line .when {
    font-family: var(--cs-mono);
    color: var(--cs-ink-3);
}

/* ---------- Two-column section (page 2) ----------------- */
.cs-cols {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 0.18in;
}
.cs-box {
    border: 1px solid var(--cs-rule);
    border-radius: 4px;
    padding: 0.1in 0.14in 0.12in;
    background: var(--cs-paper);
    page-break-inside: avoid;
}
.cs-box h2 {
    font-size: 9.2pt;
    margin: 0 0 0.05in;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cs-scarlet);
    border-bottom: 1px solid var(--cs-rule);
    padding-bottom: 3px;
}
.cs-box h2 .lede {
    display: block;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
    color: var(--cs-ink-3);
    font-size: 8pt;
    margin-top: 1px;
}
.cs-box ul {
    margin: 0;
    padding-left: 0.18in;
    color: var(--cs-ink-2);
    font-size: 8.4pt;
    line-height: 1.32;
}
.cs-box ul li + li { margin-top: 2px; }
.cs-box ul li strong { color: var(--cs-ink); }
.cs-box code {
    font-family: var(--cs-mono);
    font-size: 7.8pt;
    background: var(--cs-paper-3);
    padding: 0 3px;
    border-radius: 2px;
    color: var(--cs-ink);
}

/* ---------- Footer note ---------------------------------- */
.cs-foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 7.8pt;
    color: var(--cs-ink-3);
    border-top: 1px solid var(--cs-rule);
    padding-top: 0.08in;
}
.cs-foot .lhs { display: flex; gap: 0.16in; align-items: center; }
.cs-foot strong { color: var(--cs-ink); }
.cs-foot .mark {
    display: inline-block;
    width: 0.16in;
    height: 0.16in;
    background: var(--cs-scarlet);
    border-radius: 2px;
}

/* Force a clean page break between page 1 and page 2 */
.cheat-page + .cheat-page { page-break-before: always; }

/* ---------- PRINT ---------------------------------------- */
@page {
    size: Letter portrait;
    margin: 0.4in;
}
@media print {
    html, body {
        background: #fff !important;
        color: #000;
    }
    .site-header,
    .site-footer,
    .page-header,
    .skip-link,
    .cheat-intro {
        display: none !important;
    }
    .site-main { padding: 0 !important; }
    .container { padding: 0 !important; max-width: none !important; }

    .cheat-page {
        box-shadow: none;
        border: 0;
        border-radius: 0;
        margin: 0 auto;
        padding: 0;
        max-width: none;
        min-height: 0;
        width: 100%;
    }

    /* Keep pacing strip / module rows from splitting badly */
    .cs-pacing,
    .cs-mod,
    .cs-box {
        page-break-inside: avoid;
    }
}
