/* Kursy camellus – wspólny wygląd wszystkich kursów */

:root {
    --bg: #f7f5f0;
    --card: #ffffff;
    --ink: #1c2230;
    --muted: #5d6474;
    --line: #e3dfd6;
    --accent: #1f4e8c;
    --accent-soft: #e6eef9;
    --warm: #b45309;
    --warm-soft: #fdf1e2;
    --good: #0f7a4f;
    --good-soft: #e3f5ec;
    --bad: #b42318;
    --bad-soft: #fdecea;
    --code: #f1efe9;
    --shadow: 0 1px 2px rgba(20, 24, 35, 0.06), 0 4px 16px rgba(20, 24, 35, 0.05);
}

@media (prefers-color-scheme: dark) {
    :root {
        --bg: #14161c;
        --card: #1c1f27;
        --ink: #e9e7e2;
        --muted: #a2a6b1;
        --line: #2e323d;
        --accent: #8db4ec;
        --accent-soft: #1e2a3c;
        --warm: #f0b060;
        --warm-soft: #2e2519;
        --good: #5ccf9a;
        --good-soft: #17291f;
        --bad: #f28b82;
        --bad-soft: #321c1b;
        --code: #252933;
        --shadow: none;
    }
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    background: var(--bg);
    color: var(--ink);
    font-family: 'Source Sans 3', system-ui, -apple-system, sans-serif;
    font-size: 1.1rem;
    line-height: 1.65;
    min-height: 100vh;
}

[hidden] { display: none !important; }

h1, h2, h3, .serif { font-family: 'Literata', Georgia, serif; font-weight: 600; line-height: 1.25; }
h1 { font-size: clamp(1.7rem, 4.5vw, 2.4rem); margin-bottom: 0.6rem; }
h2 { font-size: 1.45rem; margin: 1.8rem 0 0.6rem; }
h3 { font-size: 1.15rem; margin: 1.3rem 0 0.4rem; }

p { margin-bottom: 0.8rem; }
ul, ol { padding-left: 1.4rem; margin-bottom: 0.9rem; }
li { margin-bottom: 0.3rem; }
a { color: var(--accent); }
b, strong { font-weight: 700; }

code {
    font-family: 'JetBrains Mono', Menlo, Consolas, monospace;
    font-size: 0.88em;
    background: var(--code);
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
    overflow-wrap: anywhere;
}

.kbd {
    display: inline-block;
    font-family: 'JetBrains Mono', Menlo, monospace;
    font-size: 0.85em;
    border: 1px solid var(--line);
    border-bottom-width: 3px;
    border-radius: 6px;
    padding: 0 0.4rem;
    background: var(--card);
}

/* --- układ --- */

.topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem;
    max-width: 880px;
    margin: 0 auto;
}

.brand {
    font-family: 'Literata', Georgia, serif;
    font-weight: 700;
    font-size: 1.15rem;
    color: var(--ink);
    text-decoration: none;
}

.brand span { color: var(--warm); }

.home-link { white-space: nowrap; }

.wrap { max-width: 880px; margin: 0 auto; padding: 0 1rem 4rem; }

.card {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 1.8rem;
    box-shadow: var(--shadow);
}

.eyebrow {
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--warm);
    margin-bottom: 0.3rem;
}

.lead { font-size: 1.2rem; color: var(--muted); max-width: 60ch; }
.muted { color: var(--muted); }

/* --- strona główna --- */

.hero { padding: 2.5rem 0 1.5rem; }

.course-list { display: grid; gap: 1rem; margin-top: 1rem; }

.course-tile {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    align-items: start;
    text-decoration: none;
    color: inherit;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 1.3rem;
    box-shadow: var(--shadow);
    transition: border-color 0.2s, transform 0.2s;
}

.course-tile:hover { border-color: var(--accent); transform: translateY(-2px); }
.course-tile .icon { font-size: 2rem; line-height: 1; }
.course-tile h3 { margin: 0 0 0.2rem; }
.course-tile p { margin: 0; color: var(--muted); font-size: 1rem; }

.empty-note {
    border: 1px dashed var(--line);
    border-radius: 14px;
    padding: 1.3rem;
    color: var(--muted);
}

/* --- kurs: spis lekcji --- */

.progress-track { height: 8px; background: var(--line); border-radius: 4px; overflow: hidden; margin: 0.8rem 0 0.3rem; }
.progress-fill { height: 100%; width: 0; background: var(--good); transition: width 0.4s; }

.lesson-list { list-style: none; padding: 0; margin: 1.2rem 0 0; display: grid; gap: 0.6rem; }

.lesson-link {
    display: grid;
    grid-template-columns: 2.2rem 1fr auto;
    gap: 0.8rem;
    align-items: center;
    width: 100%;
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 0.9rem 1rem;
}

.lesson-link:hover { border-color: var(--accent); }

.lesson-num {
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-weight: 700;
    background: var(--accent-soft);
    color: var(--accent);
}

.lesson-link.done .lesson-num { background: var(--good-soft); color: var(--good); }
.lesson-link small { color: var(--muted); display: block; font-size: 0.9rem; }
.lesson-meta { color: var(--muted); font-size: 0.9rem; white-space: nowrap; }

/* --- lekcja: bloki --- */

.block { margin: 1.2rem 0; }

.analogy {
    background: var(--warm-soft);
    border-left: 4px solid var(--warm);
    border-radius: 0 12px 12px 0;
    padding: 1rem 1.2rem;
}

.analogy::before { content: '💡 Porównanie'; display: block; font-weight: 700; color: var(--warm); margin-bottom: 0.3rem; font-size: 0.9rem; }

.tip {
    background: var(--accent-soft);
    border-radius: 12px;
    padding: 1rem 1.2rem;
}

.tip::before { content: '📌 Zapamiętaj'; display: block; font-weight: 700; color: var(--accent); margin-bottom: 0.3rem; font-size: 0.9rem; }

.say {
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 1rem 1.2rem;
    background: var(--card);
}

.say::before { content: '🗣 Jak to powiedzieć uczniowi'; display: block; font-weight: 700; color: var(--good); margin-bottom: 0.3rem; font-size: 0.9rem; }
.say p:last-child, .tip p:last-child, .analogy p:last-child { margin-bottom: 0; }

.try {
    border: 2px dashed var(--accent);
    border-radius: 12px;
    padding: 1rem 1.2rem;
}

.try::before { content: '🧪 Spróbuj sam'; display: block; font-weight: 700; color: var(--accent); margin-bottom: 0.4rem; font-size: 0.9rem; }

.table-wrap { overflow-x: auto; }
.table-wrap table { border-collapse: collapse; width: 100%; font-size: 1rem; }
.table-wrap th, .table-wrap td { border-bottom: 1px solid var(--line); padding: 0.55rem 0.6rem; text-align: left; vertical-align: top; }
.table-wrap th { font-weight: 700; color: var(--muted); font-size: 0.9rem; }

/* --- pytania --- */

.question { border: 1px solid var(--line); border-radius: 12px; padding: 1rem 1.2rem; background: var(--card); }
.question > .q { font-weight: 700; margin-bottom: 0.6rem; }
.question > .q::before { content: '❓ '; }

.choices { display: grid; gap: 0.5rem; }

.choice {
    display: flex;
    gap: 0.7rem;
    align-items: flex-start;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    cursor: pointer;
}

.choice:hover { border-color: var(--accent); }
.choice input { margin-top: 0.4rem; accent-color: var(--accent); }
.choice.good { border-color: var(--good); background: var(--good-soft); }
.choice.bad { border-color: var(--bad); background: var(--bad-soft); }

.feedback { margin-top: 0.7rem; padding: 0.7rem 0.9rem; border-radius: 10px; }
.feedback.good { background: var(--good-soft); color: var(--good); }
.feedback.bad { background: var(--bad-soft); color: var(--bad); }
.feedback.good b { color: inherit; }

input[type=text], textarea {
    width: 100%;
    font: inherit;
    color: var(--ink);
    background: var(--bg);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 0.6rem 0.8rem;
}

input[type=text]:focus, textarea:focus { outline: 2px solid var(--accent); outline-offset: 1px; }

.row { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.row input { flex: 1; min-width: 180px; }

.result {
    margin-top: 0.8rem;
    font-family: 'JetBrains Mono', Menlo, monospace;
    font-size: 0.9rem;
    background: var(--code);
    border-radius: 10px;
    padding: 0.7rem 0.9rem;
    overflow-wrap: anywhere;
}

/* --- przyciski --- */

.btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font: inherit;
    font-weight: 700;
    font-size: 1rem;
    border: 1px solid transparent;
    border-radius: 10px;
    padding: 0.55rem 1.1rem;
    cursor: pointer;
    background: var(--accent);
    color: #fff;
    text-decoration: none;
}

@media (prefers-color-scheme: dark) { .btn { color: #0f1320; } }

.btn:hover { filter: brightness(1.08); }
.btn:disabled { opacity: 0.4; cursor: not-allowed; }
.btn.ghost { background: transparent; color: var(--ink); border-color: var(--line); }
.btn.small { padding: 0.3rem 0.7rem; font-size: 0.9rem; }

.nav { display: flex; justify-content: space-between; gap: 0.6rem; flex-wrap: wrap; margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.nav-hint { color: var(--muted); font-size: 0.95rem; margin-top: 0.6rem; text-align: right; }

.back-link { background: none; border: none; font: inherit; color: var(--accent); cursor: pointer; padding: 0; margin-bottom: 1rem; text-decoration: underline; }

footer { text-align: center; color: var(--muted); font-size: 0.9rem; padding: 2rem 1rem; }

/* --- wytyczne do sprawdzianu --- */

.task { border: 1px solid var(--line); border-radius: 12px; padding: 1rem 1.2rem; }
.task.done { border-color: var(--good); background: var(--good-soft); }
.task-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.task-head h2 { margin: 0; font-size: 1.2rem; }
.points { font-weight: 700; color: var(--warm); white-space: nowrap; }
.task-title { font-weight: 700; margin: 0.3rem 0 0.5rem; }
.repeat { background: var(--warm-soft); border-radius: 10px; padding: 0.6rem 0.9rem; margin: 0.6rem 0; }
.repeat::before { content: '📖 Co powtórzyć: '; font-weight: 700; color: var(--warm); }
.task .check { margin-top: 0.6rem; width: fit-content; }
.lead p { margin-bottom: 0.5rem; }

@media (max-width: 600px) {
    body { font-size: 1.02rem; }
    .card { padding: 1.2rem; }
    .lesson-link { grid-template-columns: 2rem 1fr; }
    .lesson-meta { grid-column: 2; }
}

@media print {
    .topbar, .nav, .no-print, footer, .back-link { display: none !important; }
    body { background: #fff; color: #000; font-size: 11pt; }
    .card { box-shadow: none; border: none; padding: 0; }
    .task { break-inside: avoid; background: none !important; }
}

.row.examples { margin-top: 0.5rem; }

/* „Pomyśl i sprawdź” (reveal) */
.reveal-answer { background: var(--card); border: 1px solid var(--line); color: var(--ink); }
.reveal-page { margin-top: 0.5rem; font-size: 0.9rem; color: var(--muted, #667); }
.reveal-judge { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-top: 0.7rem; }
.reveal-judge .btn.picked-yes { border-color: var(--good); background: var(--good-soft); color: var(--good); }
.reveal-judge .btn.picked-no { border-color: var(--bad); background: var(--bad-soft); color: var(--bad); }
