:root { --ink: #1f2933; --muted: #52606d; --line: #d3dae1; --accent: #1d4e89; --bg: #ffffff; --soft: #f4f6f8; }
* { box-sizing: border-box; }
body { font: 15px/1.5 system-ui, sans-serif; color: var(--ink); background: var(--bg); margin: 0; }
header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .75rem 1rem;
  border-bottom: 1px solid var(--line); flex-wrap: wrap; }
header a.home { font-weight: 700; color: var(--accent); text-decoration: none; }
main { max-width: 64rem; margin: 0 auto; padding: 1rem; }
h1 { font-size: 1.5rem; margin: .5rem 0; }
h2 { font-size: 1.15rem; margin: 1.5rem 0 .5rem; color: var(--accent); }
label { display: block; font-weight: 600; margin-top: .6rem; }
input, select, textarea { width: 100%; padding: .4rem; font: inherit; border: 1px solid var(--line); border-radius: 4px; }
textarea { min-height: 4rem; }
button { padding: .45rem .9rem; font: inherit; border: 1px solid var(--accent); background: var(--accent); color: #fff;
  border-radius: 4px; cursor: pointer; margin-top: .75rem; }
button.secondary { background: #fff; color: var(--accent); }
button.link { background: none; border: none; color: var(--accent); padding: 0; margin: 0; text-decoration: underline; }
button:disabled { opacity: .6; cursor: wait; }
.status { white-space: pre-wrap; margin-top: .5rem; color: var(--muted); }
.error { color: #8a0f0f; }
.card { border: 1px solid var(--line); border-radius: 6px; padding: 1rem; margin: 1rem 0; background: var(--soft); }
.row { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 0 1rem; }
.hint { color: var(--muted); font-size: .9rem; }
table { width: 100%; border-collapse: collapse; font-size: .92rem; }
th, td { text-align: left; padding: .45rem .4rem; border-bottom: 1px solid var(--line); vertical-align: top; }
th { background: var(--soft); }
tr.superseded td { color: var(--muted); text-decoration: line-through; }
tr.superseded td.keep { text-decoration: none; }
tr.milestone td { background: #eef3f8; font-weight: 600; }
.badge { display: inline-block; padding: .1rem .45rem; border-radius: 3px; font-size: .82rem; font-weight: 600; }
.badge.green { background: #d9f2dd; color: #0b5d1e; }
.badge.amber { background: #fff1cc; color: #7a4f00; }
.badge.red { background: #fbdada; color: #8a0f0f; }
.badge.grey { background: #e6e9ec; color: #52606d; }
code { font-size: .85rem; word-break: break-all; }
.table-wrap { overflow-x: auto; }
.share { border-left: 4px solid var(--accent); background: #fff; padding: .25rem 1rem; margin: .5rem 0 1rem; }
.share ol { margin: .25rem 0 .5rem; }
.warn { border-left: 4px solid #b27700; background: #fff1cc; color: #4a3200; padding: .6rem .8rem; border-radius: 4px; margin: .5rem 0; }
.steps ol { margin: .25rem 0 0; padding-left: 1.4rem; }
.steps li { margin: .35rem 0; }
.tick { display: inline-block; width: 1.1rem; height: 1.1rem; border: 1px solid var(--line); border-radius: 50%; margin-right: .4rem;
  vertical-align: -.15rem; text-align: center; font-size: .75rem; line-height: 1.05rem; background: #fff; }
.tick.done { background: #0b5d1e; border-color: #0b5d1e; color: #fff; }
