/* ═══════════════════════════════════════════════════════
   LAB 2 · Event Ticketing Marketplace — page-specific styles
   Re-uses module-style.css; mirrors lab-ethereum-extra.css for
   the bits Lab 2 actually uses (section badges, dividers,
   numbered-list, prereq/hint list, compact code blocks).
   ═══════════════════════════════════════════════════════ */

/* ── Section dividers ──────────────────────────────────── */
section { position: relative; }
section + section::before {
    content: '';
    display: block;
    width: 64px;
    height: 3px;
    background: var(--accent-gradient, linear-gradient(135deg, #8b5cf6, #22d3ee));
    border-radius: 3px;
    margin: 0.25rem 0 3rem;
}

.module-main section h3 {
    margin: 2rem 0 0.9rem;
    font-size: 1.15rem;
}
.module-main section p { line-height: 1.75; }

/* ── Code blocks ───────────────────────────────────────── */
.code-block pre {
    line-height: 1.6;
    font-size: 0.82rem;
}
.code-block pre code {
    background: transparent;
    border: none;
    padding: 0;
    color: inherit;
    font-size: inherit;
    border-radius: 0;
}

/* ── Section intro badges ──────────────────────────────── */
.section-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.3rem 0.75rem;
    border-radius: 100px;
    margin-bottom: 0.5rem;
}
.section-badge--orange { background: rgba(247,147,26,0.12); color: var(--accent-primary, #f7931a); }
.section-badge--blue   { background: rgba(34,211,238,0.10); color: var(--accent-chain, #22d3ee); }
.section-badge--purple { background: rgba(139,92,246,0.12); color: var(--accent-eth,   #8b5cf6); }
.section-badge--green  { background: rgba(52,211,153,0.10); color: var(--accent-ok,    #34d399); }
.section-badge--red    { background: rgba(248,113,113,0.10); color: var(--accent-danger,#f87171); }
[data-theme="light"] .section-badge--orange { background: rgba(217,119,6,0.08); }
[data-theme="light"] .section-badge--blue   { background: rgba(8,145,178,0.08); }
[data-theme="light"] .section-badge--purple { background: rgba(124,58,237,0.08); }
[data-theme="light"] .section-badge--green  { background: rgba(5,150,105,0.08); }

/* ── Numbered list (deploy steps, run steps) ───────────── */
.numbered-list {
    counter-reset: lab-step;
    list-style: none;
    padding: 0;
    margin: 1.25rem 0 1.75rem;
}
.numbered-list > li {
    counter-increment: lab-step;
    position: relative;
    padding: 0.95rem 0 0.95rem 2.6rem;
    color: var(--text-secondary);
    line-height: 1.75;
    border-bottom: 1px dashed var(--border-color, #1e2230);
}
.numbered-list > li:last-child { border-bottom: none; }
.numbered-list > li::before {
    content: counter(lab-step);
    position: absolute;
    left: 0;
    top: 0.9rem;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: rgba(139,92,246,0.12);
    color: var(--accent-eth, #8b5cf6);
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 0.82rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.numbered-list ul {
    margin: 0.6rem 0 0;
    padding-left: 1.2rem;
    font-size: 0.93rem;
}
.numbered-list ul li { margin-bottom: 0.3rem; }

/* ── Prereq / hint list (bullet, padded) ───────────────── */
.lab-prereq-list {
    list-style: none;
    padding: 0;
    margin: 1.25rem 0 1.75rem;
}
.lab-prereq-list > li {
    position: relative;
    padding: 0.8rem 0 0.8rem 1.7rem;
    color: var(--text-secondary);
    line-height: 1.75;
    border-bottom: 1px dashed var(--border-color, #1e2230);
}
.lab-prereq-list > li:last-child { border-bottom: none; }
.lab-prereq-list > li::before {
    content: "▸";
    position: absolute;
    left: 0;
    top: 0.8rem;
    color: var(--accent-eth, #8b5cf6);
    font-weight: 700;
}

/* ── Mobile tweaks ─────────────────────────────────────── */
@media (max-width: 700px) {
    .code-block pre { font-size: 0.78rem; }
}
