/* Ausgeology · Minerals, soil and dating: this lesson's own blocks. Loaded after lesson.css. */
:root {
  --xs-sky: #e6eff4; --xs-l1: #b9a07a; --xs-l2: #d8c49a; --xs-l3: #a88a62; --xs-l4: #e4d2a6; --xs-l5: #c9b089; --xs-l6: #ddc9a0;
  --xs-dyke: #5b4a44; --xs-line: #3b3127; --xs-hl: #d4541c; --dc-p: #1d6f8f; --dc-d: #d8c49a; --ms-done: #2f7a4a;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --xs-sky: #1b2a33; --xs-l1: #6e5d44; --xs-l2: #7f7056; --xs-l3: #5f4d36; --xs-l4: #85765a; --xs-l5: #6f6049; --xs-l6: #7a6b52;
    --xs-dyke: #2d2522; --xs-line: #e7d7c0; --xs-hl: #ec8a52; --dc-p: #6aaedc; --dc-d: #5a5040; --ms-done: #8cc56f;
  }
}
:root[data-theme="dark"] {
  --xs-sky: #1b2a33; --xs-l1: #6e5d44; --xs-l2: #7f7056; --xs-l3: #5f4d36; --xs-l4: #85765a; --xs-l5: #6f6049; --xs-l6: #7a6b52;
  --xs-dyke: #2d2522; --xs-line: #e7d7c0; --xs-hl: #ec8a52; --dc-p: #6aaedc; --dc-d: #5a5040; --ms-done: #8cc56f;
}
.cf-card { padding: 12px 14px; border-radius: 12px; background: var(--surface); border: 1px solid var(--line); display: grid; gap: 8px; min-width: 0; }
.cf-picks { flex-direction: column; align-items: stretch; }
.cf-picks .rpick { text-align: left; border-radius: 12px; padding: 8px 12px; line-height: 1.35; }
.rpick.is-chosen { border-color: var(--accent); background: var(--accent-soft); }
.cf-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.cf-nav [hidden] { display: none; }

/* ---------- mastery check ---------- */
.ms-line { margin: 0 0 12px; font-size: 0.97rem; }
.ms-form { font: 700 0.75rem var(--font-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-2); margin-left: 6px; }
.ms-badge { display: inline-block; font: 700 0.74rem var(--font-mono); letter-spacing: 0.04em; text-transform: uppercase; padding: 3px 8px; border-radius: 6px; border: 1.5px solid var(--line); color: var(--ink-2); white-space: nowrap; }
.ms-badge.is-done { border-color: var(--ms-done); color: var(--ms-done); }
.ms-q { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px 12px; margin: 0 0 10px; display: grid; gap: 8px; background: var(--surface); }
.ms-q legend { padding: 0 4px; font-weight: 600; line-height: 1.4; }
.ms-q legend:focus { outline: none; }
.rpick.is-right { border-color: var(--ms-done); }
.rpick.is-wrong { border-color: #c0392b; }
.ms-result.is-pass { border-left: 4px solid var(--ms-done); }
.ms-result.is-miss { border-left: 4px solid #c0392b; }
.ms-fix { margin-top: 10px; padding: 12px 14px; border-radius: 12px; background: var(--accent-soft); display: grid; gap: 8px; }
.ms-fix h4 { margin: 0; }
.ms-fix p { margin: 0; line-height: 1.5; }

/* ---------- mastery map ---------- */
.mm-list { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 6px; }
.mm-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.mm-row.is-done { border-color: var(--ms-done); }
.mm-n { font: 700 0.85rem var(--font-mono); text-align: center; }
.mm-go { background: none; border: 0; padding: 4px 0; text-align: left; font: inherit; font-weight: 700; color: var(--accent); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 520px) { .mm-row { grid-template-columns: 24px minmax(0, 1fr); } .mm-row .ms-badge { grid-column: 2; justify-self: start; } }

/* ---------- mineral test bench ---------- */
.bench-pick { flex-wrap: wrap; }
.bench-pick button.is-solved::after { content: " ✓"; }
.bench-grid { display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: 12px; margin: 12px 0; }
@media (max-width: 680px) { .bench-grid { grid-template-columns: 1fr; } }
.bench-tests { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; align-content: start; }
.bench-t { justify-content: center; }
.bench-out { padding: 12px 14px; border-radius: 12px; background: var(--surface); border: 1px solid var(--line); min-height: 80px; }
.bench-out p { margin: 0; line-height: 1.5; }
.bench-id { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 10px; font-weight: 700; }
.bench-id select { font: inherit; padding: 6px 8px; border-radius: 8px; border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); min-height: 40px; }

/* ---------- cross-section ---------- */
.xs-sky { fill: var(--xs-sky); } .xs-l1 { fill: var(--xs-l1); } .xs-l2 { fill: var(--xs-l2); } .xs-l3 { fill: var(--xs-l3); }
.xs-l4 { fill: var(--xs-l4); } .xs-l5 { fill: var(--xs-l5); } .xs-l6 { fill: var(--xs-l6); }
.xs-l1, .xs-l2, .xs-l3, .xs-l4, .xs-l5, .xs-l6 { stroke: var(--xs-line); stroke-width: 1; stroke-opacity: 0.4; }
.xs-unc { fill: none; stroke: var(--xs-line); stroke-width: 3; stroke-dasharray: 2 5; stroke-linecap: round; }
.xs-fault { fill: none; stroke: var(--xs-line); stroke-width: 4; }
.xs-dyke { fill: var(--xs-dyke); }
.xs-pebble { fill: var(--xs-l2); stroke: var(--xs-line); stroke-width: 1.5; }
.xs-fossil { fill: none; stroke: var(--xs-line); stroke-width: 2; }
.xs-lab { font: 800 22px var(--font-body); fill: var(--ink); }
.xs-hl { fill: none; stroke: var(--xs-hl); stroke-width: 6; }
.xs-hl-fill { fill: none; stroke: var(--xs-hl); stroke-width: 5; }
.xs-hl-band { fill: var(--xs-hl); opacity: 0.18; }

/* ---------- decay simulation ---------- */
.dc-grid { display: grid; grid-template-columns: repeat(20, 1fr); gap: 4px; width: 100%; max-width: 420px; margin: 0 auto 10px; }
.dc-grid i { display: block; aspect-ratio: 1; border-radius: 50%; }
.dc-p { background: var(--dc-p); } .dc-d { background: var(--dc-d); }
.ac-out b { color: var(--accent); }
.ac-warn { display: block; margin-top: 6px; font-weight: 700; }

/* ---------- shared bits from earlier lessons ---------- */
.pop-check { display: flex; gap: 10px; align-items: flex-start; font-size: 0.97rem; line-height: 1.4; cursor: pointer; }
.halo { fill: none !important; stroke: var(--surface); stroke-width: 4.5; stroke-linejoin: round; opacity: 0.9; }
.slider-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: center; font-weight: 700; font-size: 0.95rem; }
.slider-row input { grid-column: 1 / -1; width: 100%; accent-color: var(--accent); min-height: 32px; }
.slider-row output { font-family: var(--font-mono); font-weight: 700; color: var(--accent); }
.st-how.st-how-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 960px) { .st-how.st-how-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .st-how.st-how-4 { grid-template-columns: minmax(0, 1fr); } }
.p-c i { background: #8a5a12; } .p-d i { background: #2f7a4a; }
/* ---------- soil profile ---------- */
.so-o { fill: #3b2f22; } .so-a { fill: #5e4630; } .so-b { fill: #a8673a; } .so-c { fill: #c9a77a; } .so-r { fill: #8d8a84; }
.so-line { fill: none; stroke: var(--line); stroke-width: 1.5; }
.so-lab { font: 800 24px var(--font-body); fill: #ffffff; paint-order: stroke; stroke: #1a2124; stroke-width: 4px; stroke-linejoin: round; }
.so-txt { font: 600 19px var(--font-body); fill: var(--ink); }
.so-root { fill: none; stroke: #d8c49a; stroke-width: 2.5; opacity: 0.8; }
.so-stone { fill: #b3a58a; stroke: #3b3127; stroke-width: 1; }
