/* ledger: the board, scoped under .dataset-ledger.
   Migrated from the standalone repo by scripts/convert-dataset-css.js, once. That script was a
   one-way migration tool, not a build step: the repo is archived and there is nothing left to
   regenerate from. THIS FILE IS NOW THE SOURCE. Edit it directly.

   Everything is scoped so the app cannot reach the chrome and the chrome cannot reach the
   board. Tokens resolve from system.css in both themes, which is why there is no dark block
   here beyond the component rules: the theme sets data-theme before first paint. */

.dataset-ledger *{box-sizing:border-box}
.dataset-ledger .wrap{max-width:1400px;margin:0 auto;padding:22px 20px 56px}
.dataset-ledger h1, .dataset-ledger h2, .dataset-ledger h3, .dataset-ledger h4, .dataset-ledger .hand{font-family:var(--head)}
.dataset-ledger a{color:var(--steel-deep)}
.dataset-ledger :focus-visible{outline:3px solid var(--steel-deep);outline-offset:2px}
.dataset-ledger .hero{position:relative;padding:20px 24px;background:var(--paper);border:1px solid var(--edge);border-radius:0;box-shadow:none;transform:none}
.dataset-ledger .hero::before{left:40px;transform:none}
.dataset-ledger .hero::after{right:54px;transform:none}
.dataset-ledger h1{margin:0 0 4px;font-size:clamp(2rem,4.2vw,3.7rem);line-height:.94;letter-spacing:-.01em}
.dataset-ledger .kicker{margin:0 0 8px;font-family:var(--head);font-size:1.15rem;color:var(--steel-deep);letter-spacing:normal;text-transform:none}
.dataset-ledger .subtitle{max-width:1000px;font-size:1.05rem;color:var(--muted);line-height:1.5;margin:0}
.dataset-ledger .crosslink{margin:10px 0 0;font-size:.92rem;color:var(--muted)}
.dataset-ledger .toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:18px 0 6px}
.dataset-ledger .group{display:flex;flex-wrap:wrap;gap:7px;align-items:center;background:var(--paper);border:1px solid var(--edge);border-radius:0;padding:7px 9px;box-shadow:none}
.dataset-ledger .group .lbl{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-right:2px}
.dataset-ledger button{font:inherit;appearance:none;border:1px solid var(--edge);border-radius:0;padding:7px 13px;background:var(--paper);color:var(--ink);cursor:pointer;transform:none;box-shadow:none;transition:transform .12s,background .12s,color .12s}
.dataset-ledger button:nth-child(even){transform:none}
.dataset-ledger button:hover{transform:translateY(-1px)}
.dataset-ledger button[aria-pressed="true"], .dataset-ledger button.active{background:var(--steel-deep);color:#fff;box-shadow:none}
.dataset-ledger .chiprow{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:14px 0 4px}
.dataset-ledger .chiprow button{font-size:.92rem;padding:6px 12px}
.dataset-ledger .hint{font-size:.88rem;color:var(--muted);margin:10px 2px 14px;line-height:1.45;max-width:1000px}
.dataset-ledger .hint b{color:var(--ink)}
.dataset-ledger .board{position:relative;padding:16px 18px;background:var(--paper);border:1px solid var(--edge);border-radius:0;box-shadow:none}
.dataset-ledger .panel[hidden]{display:none}
/* Horizon grants view (theme 1.9.49): intro, one summary row per organisation that opens to
   its projects, and the shared-consortia list. Tokens from system.css, no new colours. */
.dataset-ledger .grants-intro p{font-size:.92rem;line-height:1.5;color:var(--muted);margin:.4rem 0}
.dataset-ledger .grants-intro b{color:var(--ink)}
.dataset-ledger .grants-head,.dataset-ledger .grow summary{display:grid;grid-template-columns:2.2fr .9fr 1.3fr 1.2fr;gap:12px;align-items:baseline}
.dataset-ledger .grants-head{margin:14px 0 4px;padding:0 10px;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}
.dataset-ledger .grow{border-top:1px solid var(--edge)}
.dataset-ledger .grow summary{cursor:pointer;padding:9px 10px;font-size:.95rem;list-style:none}
.dataset-ledger .grow summary::-webkit-details-marker{display:none}
.dataset-ledger .grow summary .g-name{font-family:var(--head);font-size:1.05rem;color:var(--ink)}
.dataset-ledger .grow summary .g-eu{font-variant-numeric:tabular-nums}
.dataset-ledger .grow .g-ent{font-size:.86rem;color:var(--muted);margin:2px 10px 6px;line-height:1.45}
.dataset-ledger .grow .g-top{margin:0 10px 12px 28px;font-size:.9rem;line-height:1.5}
.dataset-ledger .g-h3{margin:22px 0 4px;font-size:1.25rem}
.dataset-ledger .g-cons{margin:6px 10px 0 28px;font-size:.92rem;line-height:1.5}
@media (max-width:700px){.dataset-ledger .grants-head{display:none}.dataset-ledger .grow summary{grid-template-columns:1fr 1fr}}
.dataset-ledger .casehead{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;margin:0 0 6px}
.dataset-ledger .casehead h2{margin:0;font-size:2rem;line-height:1}
.dataset-ledger .casehead .meta{font-size:.86rem;color:var(--faint)}
.dataset-ledger .headline{font-size:1.02rem;line-height:1.5;margin:2px 0 16px;max-width:1050px;color:var(--ink)}
.dataset-ledger .tag{display:inline-block;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;padding:2px 9px;border-radius:0;border:1px solid currentColor}
.dataset-ledger .tag.contracted{color:var(--up)}
.dataset-ledger .tag.pledged{color:var(--both)}
.dataset-ledger .tag.committed{color:var(--steel-deep)}
.dataset-ledger .tag.disbursed{color:var(--up)}
.dataset-ledger .tag.spent{color:var(--up)}
.dataset-ledger .railwrap{container-type:inline-size;container-name:rail;margin:6px 0 4px}
.dataset-ledger .rail{display:flex;align-items:stretch;gap:0}
.dataset-ledger .station{flex:1 1 0;min-inline-size:0;display:flex;flex-direction:column;gap:8px}
.dataset-ledger .station > h3{margin:0 0 2px;font-size:1.12rem;letter-spacing:.01em;color:var(--faint);text-transform:uppercase;font-family:var(--body);font-size:.7rem;letter-spacing:.09em}
.dataset-ledger .nodes{display:flex;flex-direction:column;gap:8px}
.dataset-ledger .node{background:var(--paper);border:1px solid var(--edge);border-left-width:6px;border-left-color:var(--none);border-radius:0;padding:9px 10px;box-shadow:none}
.dataset-ledger .node.eu{border-left-color:var(--up);background:var(--up-bg)}
.dataset-ledger .node.non-eu{border-left-color:var(--down);background:var(--down-bg)}
.dataset-ledger .node.mixed{border-left-color:var(--both);background:var(--both-bg)}
.dataset-ledger .nhead{display:flex;gap:6px;align-items:baseline;justify-content:space-between}
.dataset-ledger .ent{font-family:var(--head);font-size:1.16rem;line-height:1.05}
.dataset-ledger .jur{flex:0 0 auto;font-size:.62rem;font-weight:700;letter-spacing:.05em;padding:1px 6px;border-radius:0;border:1.5px solid currentColor;color:var(--none)}
.dataset-ledger .jur.eu{color:var(--up)}
.dataset-ledger .jur.non-eu{color:var(--down)}
.dataset-ledger .jur.mixed{color:var(--both)}
.dataset-ledger .amt{margin-top:5px;font-size:.94rem;font-weight:700;letter-spacing:.01em}
.dataset-ledger .amt .sub{display:block;font-weight:400;font-size:.72rem;color:var(--faint);letter-spacing:0;margin-top:1px}
.dataset-ledger .amt.undisclosed{color:var(--none);font-weight:400;font-style:italic;border-top:2px dashed var(--none);padding-top:4px}
.dataset-ledger .amt.zero{color:var(--zero);border-top:2px solid var(--zero);padding-top:4px}
.dataset-ledger .amt.zero .sub{color:var(--zero);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.66rem}
.dataset-ledger .node .note{margin:6px 0 0;font-size:.76rem;line-height:1.34;color:var(--muted)}
.dataset-ledger .node .src{display:inline-block;margin-top:5px;font-size:.72rem;text-decoration:none;font-weight:700}
.dataset-ledger .node .src:hover{text-decoration:underline}
.dataset-ledger .warn{display:inline-block;margin-top:5px;font-size:.7rem;color:var(--both);border:1.5px dashed var(--both);border-radius:0;padding:1px 6px}
.dataset-ledger .pipe{flex:0 0 86px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;padding:52px 3px 0}
.dataset-ledger .flowline{display:flex;align-items:center;inline-size:100%}
.dataset-ledger .pipe .line{flex:1;block-size:4px;border-radius:0;background:var(--up)}
.dataset-ledger .pipe .arw{color:var(--up);font-size:.95rem;line-height:1;margin-inline-start:-1px}
.dataset-ledger .pipe .plabel{font-size:.63rem;line-height:1.08;text-align:center;color:var(--none);max-inline-size:80px}
.dataset-ledger .pipe.dash .line{block-size:3px;border-radius:0;background:var(--none)}
.dataset-ledger .pipe.dash .arw{color:var(--none)}
.dataset-ledger .pipe:not(.dash) .plabel{visibility:hidden}
.dataset-ledger .station.profit .node{border-left-width:6px}
.dataset-ledger .profitgrid{display:flex;flex-wrap:wrap;gap:6px}
.dataset-ledger .pchip{font-family:var(--head);font-size:1.15rem;padding:3px 11px;border-radius:0;border:1px solid currentColor;color:var(--none)}
.dataset-ledger .pchip.eu{color:var(--up);background:var(--up-bg)}
.dataset-ledger .pchip.non-eu{color:var(--down);background:var(--down-bg)}
.dataset-ledger .pchip.mixed{color:var(--both);background:var(--both-bg)}
.dataset-ledger .flipnote{margin-top:8px;font-size:.78rem;line-height:1.35;color:var(--muted)}
.dataset-ledger .box{border-left:5px solid var(--steel-deep);background:var(--none-bg);padding:10px 12px;border-radius:0;margin-top:12px;font-size:.9rem;line-height:1.45}
.dataset-ledger .box h3{margin:0 0 5px;font-size:1.25rem}
.dataset-ledger .box.gap{border-left-color:var(--none)}
.dataset-ledger .box.law{border-left-color:var(--steel-deep)}
.dataset-ledger .box.alert{border-left-color:var(--down)}
.dataset-ledger .box ul{margin:6px 0 0;padding-inline-start:18px}
.dataset-ledger .box li{margin:4px 0;line-height:1.38;font-size:.87rem}
.dataset-ledger blockquote.clause{margin:8px 0 0;padding:10px 12px;border:2px dashed var(--edge);border-radius:0;background:var(--paper);font-size:.9rem;line-height:1.5}
.dataset-ledger blockquote.clause b{background:rgba(248,231,161,.55);padding:0 2px}
html[data-theme="dark"] .dataset-ledger blockquote.clause b, html[data-theme="dark"] .dataset-ledger blockquote.clause b{background:rgba(248,231,161,.2)}
.dataset-ledger .testmeta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:2px 0 10px}
.dataset-ledger .badge{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;padding:2px 9px;border-radius:0;border:1px solid currentColor}
.dataset-ledger .badge.notlaw{color:var(--down)}
.dataset-ledger .badge.law{color:var(--up)}
.dataset-ledger .badge.doc{color:var(--both)}
.dataset-ledger .variants{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 0}
.dataset-ledger .vchip{font-size:.8rem;padding:5px 10px;border-radius:0;border:1px solid var(--none);color:var(--none);background:var(--paper);opacity:.55}
.dataset-ledger .vchip.measured{border-color:var(--up);color:var(--up);background:var(--up-bg);opacity:1;font-weight:700}
.dataset-ledger .vchip.ignored{border-color:var(--down);color:var(--down);background:var(--down-bg);opacity:1}
.dataset-ledger .vchip.never{border-style:dashed;opacity:.75}
.dataset-ledger .contras{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:11px;margin-top:10px}
.dataset-ledger .contra{background:var(--paper);border:1px solid var(--edge);border-left-width:6px;border-left-color:var(--none);border-radius:0;padding:11px 12px;box-shadow:none;transition:border-color .28s,background .28s}
.dataset-ledger .contra.pass{border-left-color:var(--up);background:var(--up-bg)}
.dataset-ledger .contra.fail{border-left-color:var(--down);background:var(--down-bg)}
.dataset-ledger .contra .verdict{font-family:var(--head);font-size:1.2rem}
.dataset-ledger .contra.pass .verdict{color:var(--up)}
.dataset-ledger .contra.fail .verdict{color:var(--down)}
.dataset-ledger .contra.silent .verdict{color:var(--none)}
.dataset-ledger .contra p{margin:6px 0 0;font-size:.83rem;line-height:1.38;color:var(--muted)}
.dataset-ledger .contra .arch{font-family:var(--head);font-size:1.18rem;line-height:1.12;display:block;margin-bottom:3px}
@keyframes ledger-flipPulse{0%{transform:scale(1)} 35%{transform:scale(1.035)} 100%{transform:scale(1)}}
.dataset-ledger .contra.flipped{animation:ledger-flipPulse .55s ease}
.dataset-ledger .scored{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:8px}
.dataset-ledger .scard{background:var(--paper);border:1px solid var(--edge);border-left-width:6px;border-radius:0;padding:9px 11px;box-shadow:none;border-left-color:var(--none)}
.dataset-ledger .scard.pass{border-left-color:var(--up)}
.dataset-ledger .scard.fail{border-left-color:var(--down)}
.dataset-ledger .scard.conditional{border-left-color:var(--both)}
.dataset-ledger .scard.unassessed, .dataset-ledger .scard.na{border-left-color:var(--none)}
.dataset-ledger .scard b{font-family:var(--head);font-size:1.14rem;font-weight:500}
.dataset-ledger .scard .v{float:right;font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--none)}
.dataset-ledger .scard.pass .v{color:var(--up)}
.dataset-ledger .scard.fail .v{color:var(--down)}
.dataset-ledger .scard.conditional .v{color:var(--both)}
.dataset-ledger .scard p{margin:5px 0 0;font-size:.78rem;line-height:1.34;color:var(--muted)}
.dataset-ledger .bignum{font-family:var(--head);font-size:clamp(3rem,9vw,6rem);line-height:.9;color:var(--none);margin:0}
.dataset-ledger .gapcase{margin-top:14px;padding-top:10px;border-top:2px dashed var(--none)}
.dataset-ledger .gapcase h3{margin:0 0 6px;font-size:1.4rem}
.dataset-ledger .gaplist{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.dataset-ledger .gapitem{background:var(--paper);border:2px dashed var(--none);border-radius:0;padding:8px 10px}
.dataset-ledger .gapitem .ent{font-size:1.08rem}
.dataset-ledger .gapitem .role{font-size:.64rem;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}
.dataset-ledger .gapitem p{margin:4px 0 0;font-size:.76rem;line-height:1.32;color:var(--muted)}
.dataset-ledger .legend{margin-top:18px;padding:16px 20px;border:1px solid var(--edge);border-radius:0;background:var(--paper);box-shadow:none}
.dataset-ledger .legend h2{margin:0 0 8px;font-size:1.45rem}
.dataset-ledger .legend p{font-size:.92rem;line-height:1.5;margin:.45rem 0;color:var(--muted)}
.dataset-ledger .legkey{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px}
.dataset-ledger .legkey span{display:inline-flex;align-items:center;gap:7px;font-size:.86rem;color:var(--muted)}
.dataset-ledger .sw{width:26px;height:5px;border-radius:0;background:var(--up)}
.dataset-ledger .sw.d{background:var(--none);height:3px}
.dataset-ledger footer{margin-top:18px;font-size:.85rem;color:var(--faint);line-height:1.5;padding:0 4px}
.dataset-ledger footer a{color:var(--steel-deep)}
@media (prefers-reduced-motion:reduce){
  .dataset-ledger *{animation-duration:.01ms !important;transition-duration:.01ms !important}
}
@container rail (max-width:840px){
  .dataset-ledger .rail{flex-direction:column}
  .dataset-ledger .station{flex:0 0 auto}
  .dataset-ledger .pipe{flex:0 0 auto;flex-direction:row;gap:9px;justify-content:flex-start;align-items:stretch;min-block-size:46px;padding:2px 0 2px 30px}
  .dataset-ledger .flowline{flex-direction:column;inline-size:auto;block-size:auto;align-items:center}
  .dataset-ledger .pipe .line{inline-size:4px;block-size:auto;flex:1}
  .dataset-ledger .pipe.dash .line{inline-size:3px;block-size:auto;background:var(--none)}
  .dataset-ledger .pipe .arw{transform:none;margin:-2px 0 0}
  .dataset-ledger .pipe .plabel{text-align:start;max-inline-size:none;align-self:center}
}
@media (max-width:560px){
  .dataset-ledger .wrap{padding:14px 12px 40px}
  .dataset-ledger .board{padding:13px 12px;border-radius:0;box-shadow:none}
  .dataset-ledger .hero{padding:16px 15px}
  .dataset-ledger .casehead h2{font-size:1.6rem}
}
