:root {
  --bg: #07090d;
  --ink: #e8eef6;
  --muted: #9aa8bb;
  --line: rgba(232, 238, 246, 0.14);
  --gold: #c9b27c;
  --accent: #7ec8ff;
  --card: #10151c;
  --serif: "Palatino Linotype", Palatino, Georgia, serif;
  --sans: "Segoe UI", system-ui, sans-serif;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: #05070a;
  color: var(--ink);
  font-family: var(--sans);
  line-height: 1.5;
}
.top {
  position: sticky; top: 0; z-index: 5;
  display: flex; justify-content: space-between; align-items: center;
  gap: 1rem; flex-wrap: wrap;
  padding: .7rem 5vw;
  background: rgba(7,9,13,.9);
  border-bottom: 1px solid var(--line);
  font-size: .82rem; color: var(--muted);
}
.top .dl { display: flex; flex-wrap: wrap; gap: .45rem; }
.top a, .top button { color: var(--ink); background: transparent; border: 1px solid var(--line); padding: .35rem .7rem; border-radius: 999px; text-decoration: none; cursor: pointer; font: inherit; }
.sheet {
  max-width: 820px;
  margin: 1.5rem auto;
  padding: 2rem 2.1rem 2.2rem;
  background: var(--card);
  border: 1px solid var(--line);
}
.cover { padding: 0; overflow: hidden; }
.cover img { width: 100%; height: 280px; object-fit: cover; display: block; }
.cover-copy { padding: 1.6rem 2rem 2rem; }
.stamp, .num { color: var(--gold); letter-spacing: .16em; text-transform: uppercase; font-size: .7rem; margin: 0 0 .6rem; }
h1 { font-family: var(--serif); font-size: 2.6rem; font-weight: 500; margin: 0 0 .4rem; }
h2 { font-family: var(--serif); font-size: 1.65rem; font-weight: 500; margin: 0 0 .8rem; }
.sub { font-size: 1.1rem; color: var(--muted); }
.manifest { columns: 2; padding-left: 1.1rem; color: var(--muted); }
.fine { color: var(--muted); font-size: .82rem; }
.hint { color: var(--muted); }
ol.stack, ol.script { padding-left: 1.2rem; }
ol.stack li, ol.script li { margin: .45rem 0; }
table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: .88rem; }
th, td { border: 1px solid var(--line); padding: .45rem .4rem; vertical-align: top; }
th { color: var(--gold); font-weight: 600; text-align: left; }
td:empty { height: 2.1rem; }
.sum td { color: var(--accent); }
.write { margin: 1rem 0 .35rem; }
.box { min-height: 4.2rem; border: 1px solid var(--line); }
.box.short { min-height: 2.4rem; }
.teacher ul { color: var(--muted); }

@media print {
  body { background: #fff; color: #111; }
  .top { display: none; }
  .sheet {
    max-width: none; margin: 0; padding: 0.6in;
    border: none; background: #fff;
    break-after: page;
  }
  .cover img { height: 2.4in; }
  .stamp, .num, th { color: #6a5420; }
  .sub, .hint, .fine, .manifest, .teacher ul { color: #333; }
  .sum td { color: #0a3a55; }
  a { color: inherit; }
}
