:root { --text:#1d2329; --muted:#5b6670; --bg:#ffffff; --surface:#f4f6f8;
        --border:#d5dbe0; --accent:#a3271f; --link:#1f5fa3; }
@media (prefers-color-scheme: dark) {
  :root { --text:#e4e8eb; --muted:#9aa5ae; --bg:#15191d; --surface:#1f252b;
          --border:#38414a; --accent:#ff7a6e; --link:#7fb4ef; }
}
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--text);
       font: 16px/1.55 "Segoe UI", system-ui, -apple-system, sans-serif; }
header, main, footer { max-width: 900px; margin: 0 auto; padding: 0 16px; }
header { display:flex; justify-content:space-between; align-items:baseline;
         border-bottom: 1px solid var(--border); padding-top: 14px; padding-bottom: 10px; }
header .name { color: var(--accent); font-weight: 600; font-size: 1.2em; }
h1 { font-size: 1.8em; margin: 0.8em 0 0.3em; }
h2 { font-size: 1.35em; margin-top: 1.6em; border-bottom: 1px solid var(--border); padding-bottom: 4px; }
p.lead { font-size: 1.1em; }
.status { background: var(--surface); border-left: 4px solid var(--accent); padding: 8px 14px; }
a { color: var(--link); }
img { max-width: 100%; height: auto; border: 1px solid var(--border); border-radius: 4px; }
figure { margin: 1em 0; }
figcaption { color: var(--muted); font-size: 0.9em; }
.muted { color: var(--muted); }
footer { color: var(--muted); font-size: 0.85em; border-top: 1px solid var(--border);
         margin-top: 2.5em; padding-top: 10px; padding-bottom: 24px; }
details { border: 1px solid var(--border); border-radius: 4px; margin: 0.8em 0; background: var(--bg); }
details > summary { cursor: pointer; padding: 10px 14px; font-weight: 600; font-size: 1.15em;
                    background: var(--surface); list-style: none; }
details > summary h2 { display: inline; font-size: inherit; font-weight: inherit; margin: 0; padding: 0; border: 0; }
details > summary::-webkit-details-marker { display: none; }
details > summary::before { content: "▸"; display: inline-block; width: 1.2em; color: var(--accent); }
details[open] > summary::before { content: "▾"; }
details[open] > summary { border-bottom: 1px solid var(--border); }
details > .body { padding: 4px 16px 12px; }
h3 { font-size: 1.05em; margin: 1.2em 0 0.3em; }
table { border-collapse: collapse; margin: 0.8em 0; width: 100%; }
th, td { border: 1px solid var(--border); padding: 6px 9px; text-align: left; vertical-align: top; }
th { background: var(--surface); }
.done { color: #2e7d32; font-weight: 600; }
.wip { color: var(--accent); font-weight: 600; }
@media (prefers-color-scheme: dark) { .done { color: #7bc67e; } }
@media print { details > .body { display: block; } }
