:root {
  --points-cyan: #168a9b;
  --points-yellow: #e5b72d;
  --points-coral: #d95849;
  --points-green: #2f8a62;
}

.points-toolbar .reader-controls { align-items: end; }
.download-button { text-decoration: none; white-space: nowrap; }
.download-secondary { color: #fff; background: #32485b; }
.download-secondary:hover { background: #426079; }
.points-cover::before { background: var(--points-coral); }
.points-cover .cover-layout { grid-template-columns: .96fr 1.04fr; }
.points-cover .cover-visual { height: 183mm; }
.points-cover .cover-visual img { object-position: center center; }

.points-total-band {
  min-height: 29mm;
  display: flex;
  align-items: end;
  gap: 5mm;
  margin-top: 8mm;
  padding: 5mm 6mm;
  color: #fff;
  background: var(--ink);
}
.points-total-band small { align-self: flex-start; color: #91a5b4; font-size: 7pt; font-weight: 900; }
.points-total-band strong { font-size: 29pt; line-height: 1; }
.points-total-band span { padding-bottom: 1mm; color: var(--yellow); font-size: 8pt; font-weight: 900; }
.points-allocation-grid { display: grid; grid-template-columns: 1fr 1fr; margin-top: 6mm; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.points-allocation { min-height: 48mm; padding: 5mm; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.points-allocation > div { display: flex; align-items: center; justify-content: space-between; }
.points-allocation small { font-size: 7pt; font-weight: 900; }
.points-allocation strong { font-size: 21pt; line-height: 1; }
.points-allocation h3 { margin: 4mm 0 1.5mm; }
.points-allocation p { margin: 0; color: var(--muted); font-size: 8.2pt; line-height: 1.45; }
.points-allocation.color-blue { border-top: 1.5mm solid var(--blue); }
.points-allocation.color-blue strong, .points-allocation.color-blue small { color: var(--blue); }
.points-allocation.color-yellow { border-top: 1.5mm solid var(--points-yellow); }
.points-allocation.color-yellow strong, .points-allocation.color-yellow small { color: #9f7400; }
.points-allocation.color-red { border-top: 1.5mm solid var(--points-coral); }
.points-allocation.color-red strong, .points-allocation.color-red small { color: var(--points-coral); }
.points-allocation.color-green { border-top: 1.5mm solid var(--points-green); }
.points-allocation.color-green strong, .points-allocation.color-green small { color: var(--points-green); }
.ledger-invariant { margin-top: 6mm; padding: 5mm 6mm; background: #edf2f5; }
.ledger-invariant small { color: var(--blue); font-size: 7pt; font-weight: 900; }
.ledger-invariant code { display: block; margin-top: 2mm; color: var(--ink); font: 800 9.2pt/1.45 Consolas, monospace; }
.ledger-invariant p { margin: 2mm 0 0; color: var(--muted); font-size: 7.8pt; }

.release-schedule { margin-top: 7mm; }
.release-schedule h3 { margin-bottom: 3mm; }
.release-rows { display: grid; grid-template-columns: 1fr 1fr; gap: 2mm 5mm; }
.release-row { position: relative; min-height: 16mm; display: grid; grid-template-columns: 13mm 1fr; align-items: center; gap: 3mm; padding: 2.5mm 3mm; overflow: hidden; border: 1px solid var(--line); }
.release-row::before { content: ""; position: absolute; inset: auto 0 0; width: var(--progress); height: 1.2mm; background: var(--green); }
.release-row > span { display: grid; width: 10mm; height: 10mm; place-items: center; color: #fff; background: var(--ink); font-size: 7pt; font-weight: 900; }
.release-row div { display: flex; align-items: baseline; justify-content: space-between; gap: 2mm; }
.release-row b { color: var(--green); font-size: 13pt; }
.release-row small { color: var(--muted); font-size: 7pt; font-weight: 700; }
.release-gates { display: grid; grid-template-columns: 60mm 1fr; gap: 6mm; margin-top: 8mm; padding: 6mm; color: #fff; background: var(--ink); }
.release-gates small { color: #9eb0bd; font-size: 7pt; font-weight: 900; }
.release-gates h3 { margin: 2mm 0 5mm; font-size: 14pt; }
.release-gates code { color: var(--yellow); font: 800 8.1pt/1.55 Consolas, monospace; }
.release-gate-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2mm; }
.release-gate-list article { padding: 3mm; color: var(--ink); background: #fff; }
.release-gate-list b { display: block; color: var(--blue); font-size: 8.4pt; }
.release-gate-list p { margin: 1mm 0 0; color: var(--muted); font-size: 7.2pt; line-height: 1.4; }

.work-visual-row { display: grid; grid-template-columns: 1.05fr .95fr; gap: 6mm; margin-top: 7mm; }
.work-visual-row figure { position: relative; height: 84mm; margin: 0; overflow: hidden; }
.work-visual-row figure img { width: 100%; height: 100%; object-fit: cover; }
.work-visual-row figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 2.5mm 3mm; color: #fff; background: rgba(21, 34, 49, .86); font-size: 6.7pt; }
.work-formula { padding: 5mm; color: #fff; background: var(--ink); }
.work-formula > small { color: var(--yellow); font-size: 7pt; font-weight: 900; }
.work-formula h3 { margin: 2mm 0; }
.work-formula > code { display: block; margin: 3mm 0 4mm; color: var(--yellow); font: 800 11pt/1.4 Consolas, monospace; }
.work-factors { border-top: 1px solid #526170; }
.work-factor { display: grid; grid-template-columns: 8mm 1fr; gap: 2mm; padding: 2mm 0; border-bottom: 1px solid #526170; }
.work-factor b { color: #fff; font-size: 9pt; }
.work-factor h4 { margin: 0; font-size: 7.8pt; }
.work-factor p { margin: .5mm 0 0; color: #bcc9d2; font-size: 6.7pt; line-height: 1.35; }
.compact-workflow { margin-top: 6mm; }
.compact-workflow ol { grid-template-columns: repeat(8, 1fr); }
.compact-workflow li { min-height: 28mm; padding: 3mm 2.5mm; }
.compact-workflow li b { font-size: 7.3pt; }

.sheet-parity::before { background: var(--points-yellow); }
.parity-layout { display: grid; grid-template-columns: 72mm 1fr; gap: 7mm; margin-top: 7mm; }
.parity-layout figure { position: relative; height: 95mm; margin: 0; overflow: hidden; }
.parity-layout figure img { width: 100%; height: 100%; object-fit: cover; object-position: center 48%; }
.parity-layout figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 3mm; color: #fff; background: rgba(21, 34, 49, .86); font-size: 6.7pt; }
.parity-roles { display: grid; gap: 3mm; }
.parity-role { display: grid; grid-template-columns: 12mm 1fr; gap: 3mm; padding: 4mm; border: 1px solid var(--line); }
.parity-role > span { display: grid; width: 10mm; height: 10mm; place-items: center; color: #fff; background: var(--blue); font-size: 8pt; font-weight: 900; }
.parity-role:nth-child(2) > span { background: var(--points-cyan); }
.parity-role:nth-child(3) > span { background: var(--points-coral); }
.parity-role h3 { margin: 0 0 1mm; font-size: 10pt; }
.parity-role p { margin: 0; color: var(--muted); font-size: 7.7pt; line-height: 1.45; }
.parity-rules { margin-top: 7mm; }
.parity-rules h3 { margin-bottom: 3mm; }
.parity-rules ol { display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); counter-reset: parity; list-style: none; }
.parity-rules li { position: relative; min-height: 27mm; padding: 4mm 4mm 4mm 13mm; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--muted); font-size: 7.8pt; line-height: 1.45; counter-increment: parity; }
.parity-rules li::before { content: counter(parity, decimal-leading-zero); position: absolute; top: 4mm; left: 4mm; color: var(--blue); font-weight: 900; }
.sheet-parity blockquote { margin: 7mm 0 0; padding: 4mm 6mm; border-left: 2mm solid var(--yellow); color: #fff; background: var(--ink); font-size: 10.5pt; font-weight: 800; }

.usage-allowed { margin-top: 8mm; }
.usage-allowed h3 { margin-bottom: 3mm; }
.usage-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.usage-item { min-height: 50mm; padding: 5mm; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.usage-item span { color: var(--red); font-size: 7pt; font-weight: 900; }
.usage-item h3 { margin: 4mm 0 2mm; font-size: 10.5pt; }
.usage-item p { margin: 0; color: var(--muted); font-size: 8pt; line-height: 1.45; }
.usage-forbidden { display: grid; grid-template-columns: 44mm 1fr; gap: 5mm; margin-top: 8mm; padding: 5mm; color: #fff; background: var(--ink); }
.usage-forbidden small { color: var(--yellow); font-size: 7pt; font-weight: 900; }
.usage-forbidden h3 { margin: 2mm 0 0; font-size: 13pt; }
.usage-forbidden ul { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2mm; margin: 0; padding: 0; list-style: none; }
.usage-forbidden li { padding: 3mm; color: var(--ink); background: #fff; font-size: 7.3pt; font-weight: 750; }

.equity-layout { display: grid; grid-template-columns: 78mm 1fr; gap: 7mm; margin-top: 7mm; }
.equity-layout figure { position: relative; height: 103mm; margin: 0; overflow: hidden; }
.equity-layout figure img { width: 100%; height: 100%; object-fit: cover; }
.equity-layout figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 3mm; color: #fff; background: rgba(21, 34, 49, .86); font-size: 6.6pt; }
.equity-layout section > h3 { margin-bottom: 3mm; }
.equity-steps { display: grid; gap: 3mm; }
.equity-step { display: grid; grid-template-columns: 10mm 1fr; gap: 3mm; padding: 4mm; border: 1px solid var(--line); }
.equity-step span { color: var(--green); font-size: 8pt; font-weight: 900; }
.equity-step h4 { margin: 0 0 1mm; font-size: 9.2pt; }
.equity-step p { margin: 0; color: var(--muted); font-size: 7.4pt; line-height: 1.4; }
.equity-formula { display: block; margin-top: 7mm; padding: 4mm 5mm; color: #fff; background: var(--green); font: 800 8.5pt/1.5 Consolas, monospace; text-align: center; }
.equity-notes { display: grid; grid-template-columns: 1fr 1fr; margin: 6mm 0 0; padding: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); list-style: none; }
.equity-notes li { min-height: 24mm; padding: 4mm; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--muted); font-size: 7.7pt; line-height: 1.45; }

.governance-committees { margin-top: 7mm; }
.governance-committees > h3, .governance-roadmap > h3 { margin-bottom: 3mm; }
.governance-committees > div { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.committee-item { min-height: 38mm; padding: 4mm; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.committee-item span { color: var(--blue); font-size: 7pt; font-weight: 900; }
.committee-item h4 { margin: 2mm 0 1mm; font-size: 9.5pt; }
.committee-item p { margin: 0; color: var(--muted); font-size: 7.7pt; line-height: 1.45; }
.governance-roadmap { margin-top: 7mm; }
.governance-phases { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4mm; }
.governance-phase { min-height: 45mm; padding: 4mm; border-top: 1.5mm solid var(--blue); background: #edf3f8; }
.governance-phase:nth-child(2) { border-color: var(--green); background: #ebf3f1; }
.governance-phase:nth-child(3) { border-color: var(--red); background: #f7eeec; }
.governance-phase small { font-size: 7pt; font-weight: 900; }
.governance-phase h4 { margin: 4mm 0 1mm; font-size: 10pt; }
.governance-phase p { margin: 0; color: var(--muted); font-size: 7.3pt; line-height: 1.4; }
.sheet-governance .north-star { margin-top: 7mm; padding-top: 4mm; }
.sheet-governance .north-star p { font-size: 10.5pt; }
.immutable-strip { margin: 6mm 0 0; padding: 3.5mm 4mm; color: #fff; background: var(--ink); font-size: 7.5pt; font-weight: 750; }

.points-pledge .pledge-list li { min-height: 21mm; }
.pledge-downloads { display: grid; grid-template-columns: 1fr 39mm 39mm; gap: 4mm; align-items: stretch; margin-top: 7mm; padding: 4mm; border: 1px solid #526170; }
.pledge-downloads small { color: var(--yellow); font-size: 7pt; font-weight: 900; }
.pledge-downloads h3 { margin: 1mm 0; font-size: 11pt; }
.pledge-downloads p { margin: 0; color: #aebdca; font-size: 7pt; }
.pledge-download-link { display: flex; justify-content: space-between; flex-direction: column; padding: 3mm; color: var(--ink); background: #fff; text-decoration: none; }
.pledge-download-link b { font-size: 7.5pt; }
.pledge-download-link span { color: var(--blue); font-size: 10pt; font-weight: 900; }

@media (max-width: 860px) {
  .points-toolbar .reader-controls { grid-template-columns: 1fr 1fr auto auto; }
}

@media (max-width: 720px) {
  .points-toolbar .reader-controls { grid-template-columns: 1fr 1fr auto auto; }
  .points-total-band { align-items: flex-start; flex-direction: column; }
  .points-allocation-grid, .release-rows, .usage-grid, .equity-notes, .governance-committees > div { grid-template-columns: 1fr; }
  .release-gates, .work-visual-row, .parity-layout, .usage-forbidden, .equity-layout { grid-template-columns: 1fr; }
  .release-gate-list, .usage-forbidden ul { grid-template-columns: 1fr; }
  .compact-workflow ol { grid-template-columns: 1fr 1fr; }
  .parity-layout figure, .equity-layout figure { height: 90vw; max-height: 580px; }
  .parity-rules ol { grid-template-columns: 1fr; }
  .governance-phases { grid-template-columns: 1fr; }
  .pledge-downloads { grid-template-columns: 1fr 1fr; }
  .pledge-downloads > div { grid-column: 1 / -1; }
}

@media (max-width: 430px) {
  .points-toolbar .reader-controls { grid-template-columns: 1fr 1fr; }
  .download-button { justify-content: center; }
  .download-button > span:last-child { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
}

@media print {
  .points-cover .cover-visual { height: 183mm; }
  .points-pledge .pledge-list li { min-height: 21mm; }
}
