:root{--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--size-name:1.75rem;--size-text:1rem;--size-small:0.875rem;--leading:1.6;--weight-bold:600;--color-ink:#1f2328;--color-muted:#59636e;--color-line:#d8dee4;--color-paper:#ffffff;--color-accent:#1a7f37;--space:0.5rem;--measure:45rem;--measure-wide:68rem;--gutter:calc(var(--space) * 3);--radius:6px;--color-surface:#f6f8fa;--color-control:#ffffff;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--status-good:#0ca30c;--status-warning:#fab219;--status-serious:#ec835a;--status-critical:#d03b3b;--color-grid:#e1e0d9;--color-axis:#c3c2b7}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:var(--size-text);line-height:var(--leading);color:var(--color-ink);background:var(--color-paper);-webkit-font-smoothing:antialiased;overflow-x:clip}main{max-width:calc(var(--measure) + 2 * var(--gutter));margin:0 auto;padding:calc(var(--space) * 8)var(--gutter)calc(var(--space) * 10)}h1{margin:0;font-size:var(--size-name);font-weight:var(--weight-bold);line-height:1.25}h2{margin:0 0 calc(var(--space) * 2);font-size:var(--size-small);font-weight:var(--weight-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}p{margin:0 0 calc(var(--space) * 2)}a{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.intro .lede{margin:var(--space)0 0;color:var(--color-muted)}.contact{display:flex;flex-wrap:wrap;gap:var(--space)calc(var(--space) * 3);margin:calc(var(--space) * 2)0 0}.email{padding:0;font:inherit;color:var(--color-accent);background:0 0;border:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;cursor:pointer}section{margin-top:calc(var(--space) * 6);padding-top:calc(var(--space) * 3);border-top:1px solid var(--color-line)}.samples{margin:0;padding:0;list-style:none;counter-reset:sample}.samples li{display:grid;grid-template-columns:calc(var(--space) * 5)1fr;padding:calc(var(--space) * 2)0;border-bottom:1px solid var(--color-line);counter-increment:sample}.samples li:first-child{padding-top:0}.samples li:last-child{padding-bottom:0;border-bottom:0}.samples li::before{content:counter(sample,decimal-leading-zero);grid-row:span 2;font-size:var(--size-small);font-variant-numeric:tabular-nums;line-height:calc(var(--size-text) * var(--leading));color:var(--color-muted)}.sample-title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space)}.sample-title .status-tag{margin-left:0}.samples a{font-weight:var(--weight-bold);color:var(--color-ink);text-decoration:none}.samples p{margin:calc(var(--space) * .5)0 0;font-size:var(--size-small);color:var(--color-muted)}.note em{font-size:var(--size-small);color:var(--color-muted)}.note p:last-child{margin-bottom:0}.back{margin-bottom:calc(var(--space) * 4);font-size:var(--size-small)}.content{margin-top:calc(var(--space) * 4)}.notice{margin:calc(var(--space) * 2)0 0;padding:var(--space)calc(var(--space) * 1.5);font-size:var(--size-small);color:var(--color-muted);background:var(--color-surface);border-left:3px solid var(--color-line)}.status-tag{display:inline-block;margin-left:var(--space);padding:0 var(--space);font-size:var(--size-small);font-weight:var(--weight-bold);vertical-align:middle;color:var(--color-muted);border:1px solid var(--color-line);border-radius:var(--radius)}.content ul{margin:0 0 calc(var(--space) * 2);padding-left:calc(var(--space) * 3)}.content li+li{margin-top:calc(var(--space) * .5)}.content strong{font-weight:var(--weight-bold)}.recreation{--wide:min(var(--measure-wide), 100vw - 2 * var(--gutter));width:var(--wide);margin-left:calc((100% - var(--wide))/2)}.app{font-size:var(--size-small)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}button,input,select{font:inherit;color:inherit}.button{padding:calc(var(--space) * .5)calc(var(--space) * 1.5);font-weight:var(--weight-bold);color:var(--color-ink);background:var(--color-control);border:1px solid var(--color-line);border-radius:var(--radius);cursor:pointer}.button.primary{color:var(--color-paper);background:var(--color-accent);border-color:var(--color-accent)}.button[aria-pressed=true]{background:var(--color-surface);border-color:var(--color-ink)}select,input[type=text],input[type=search],input[type=number],input[type=date]{min-height:calc(var(--space) * 4);padding:0 var(--space);background:var(--color-control);border:1px solid var(--color-line);border-radius:var(--radius)}input[type=range]{width:100%;accent-color:var(--color-accent)}label{display:block}.field{display:grid;gap:calc(var(--space) * .5);margin-bottom:calc(var(--space) * 2)}.field-head{display:flex;justify-content:space-between;gap:var(--space)}.field-value{font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space)calc(var(--space) * 2);margin-bottom:calc(var(--space) * 2)}.toolbar .grow{flex:1}.tabs{display:flex;gap:calc(var(--space) * .5);overflow-x:auto;border-bottom:1px solid var(--color-line)}.tab{padding:var(--space)calc(var(--space) * 1.5);white-space:nowrap;color:var(--color-muted);background:0 0;border:0;border-bottom:2px solid transparent;cursor:pointer}.tab[aria-selected=true]{font-weight:var(--weight-bold);color:var(--color-ink);border-bottom-color:var(--color-accent)}.badge{margin-left:calc(var(--space) * .75);padding:0 calc(var(--space) * .75);font-size:.75rem;font-weight:var(--weight-bold);color:var(--color-paper);background:var(--color-muted);border-radius:var(--radius)}.segmented{display:inline-flex;border:1px solid var(--color-line);border-radius:var(--radius);overflow:hidden}.segmented button{padding:calc(var(--space) * .5)calc(var(--space) * 1.5);background:var(--color-control);border:0;border-left:1px solid var(--color-line);cursor:pointer}.segmented button:first-child{border-left:0}.segmented [aria-checked=true]{font-weight:var(--weight-bold);color:var(--color-paper);background:var(--color-ink)}.panel{margin-top:calc(var(--space) * 2);padding:calc(var(--space) * 2);background:var(--color-paper);border:1px solid var(--color-line);border-radius:var(--radius)}.panel h3,summary h3{margin:0 0 var(--space);font-size:var(--size-text);font-weight:var(--weight-bold)}.grid-2,.grid-3{display:grid;gap:calc(var(--space) * 2)}.grid-2>.panel,.grid-3>.panel{margin-top:0}details.section{margin-top:calc(var(--space) * 3);border-top:1px solid var(--color-line)}details.section>summary{padding:calc(var(--space) * 1.5)0;cursor:pointer;list-style:none}details.section>summary::-webkit-details-marker{display:none}details.section>summary h3{display:inline}details.section>summary::before{content:"▸";display:inline-block;width:calc(var(--space) * 2.5);color:var(--color-muted)}details.section[open]>summary::before{content:"▾"}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:calc(var(--space) * 1.5)}.tile{padding:calc(var(--space) * 1.5)calc(var(--space) * 2);background:var(--color-surface);border-radius:var(--radius)}.tile-value{display:block;font-size:var(--size-name);font-weight:var(--weight-bold);line-height:1.2;font-variant-numeric:tabular-nums}.tile-label{display:block;color:var(--color-muted)}.chips{display:flex;flex-wrap:wrap;gap:var(--space)}.chip{padding:calc(var(--space) * .25)var(--space);background:var(--color-control);border:1px solid var(--color-line);border-radius:var(--radius);cursor:pointer}.chip[aria-pressed=true]{color:var(--color-paper);background:var(--color-ink);border-color:var(--color-ink)}.status{display:inline-flex;align-items:center;gap:calc(var(--space) * .5);padding:0 calc(var(--space) * .75);font-weight:var(--weight-bold);white-space:nowrap;border-radius:var(--radius)}.status-icon{display:inline-grid;place-items:center;width:1.1em;height:1.1em;font-size:.75em;color:var(--color-paper);border-radius:50%}.status-good{background:color-mix(in srgb,var(--status-good) 14%,transparent)}.status-warning{background:color-mix(in srgb,var(--status-warning) 22%,transparent)}.status-serious{background:color-mix(in srgb,var(--status-serious) 18%,transparent)}.status-critical{background:color-mix(in srgb,var(--status-critical) 14%,transparent)}.status-good .status-icon{background:var(--status-good)}.status-warning .status-icon{color:var(--color-ink);background:var(--status-warning)}.status-serious .status-icon{background:var(--status-serious)}.status-critical .status-icon{background:var(--status-critical)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{padding:calc(var(--space) * .75)var(--space);text-align:left;vertical-align:middle;border-bottom:1px solid var(--color-line)}th{font-weight:var(--weight-bold);color:var(--color-muted);white-space:nowrap}.num{text-align:right}.sort{padding:0;font-weight:inherit;color:inherit;background:0 0;border:0;cursor:pointer}td.empty{color:var(--color-muted);text-align:center}.chart{margin:0}.chart-plot{width:100%}.chart-plot.scroll{overflow-x:auto}.chart svg{display:block;overflow:visible}.legend{display:flex;flex-wrap:wrap;gap:calc(var(--space) * .5)calc(var(--space) * 2);margin-bottom:var(--space);color:var(--color-muted)}.legend-item{display:inline-flex;align-items:center;gap:calc(var(--space) * .75)}.swatch{display:inline-block;width:calc(var(--space) * 2);height:3px;background:currentColor;border-radius:2px}.swatch.block{height:calc(var(--space) * 1.5)}.swatch.dashed{background:repeating-linear-gradient(90deg,currentColor 0 4px,transparent 4px 7px)}.grid{stroke:var(--color-grid);stroke-width:1}.axis-label,.target-label,.chart-label{font-size:12px;fill:var(--color-muted);font-variant-numeric:tabular-nums}.chart-label.strong{font-weight:var(--weight-bold);fill:var(--color-ink)}.target{stroke:var(--color-ink);stroke-width:1;stroke-dasharray:4 3}.crosshair{stroke:var(--color-axis);stroke-width:1}.line{fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.line.thin{stroke-width:1.5}.line.dashed{stroke-dasharray:5 4}.dot{fill:currentColor;stroke:var(--color-paper);stroke-width:2}.series-1{color:var(--series-1)}.series-2{color:var(--series-2)}.series-3{color:var(--series-3)}.series-4{color:var(--series-4)}.series-5{color:var(--series-5)}.series-muted{color:var(--color-axis)}.tone-good{color:var(--status-good)}.tone-warning{color:var(--status-warning)}.tone-serious{color:var(--status-serious)}.tone-critical{color:var(--status-critical)}.bars{display:grid;gap:var(--space)}.bar-row{display:grid;grid-template-columns:minmax(6rem,10rem)1fr 4.5rem;align-items:center;gap:var(--space)}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{position:relative;height:calc(var(--space) * 1.5);background:var(--color-surface);border-radius:0 3px 3px 0}.bar-fill{display:block;height:100%;background:currentColor;border-radius:0 4px 4px 0}.bar-target{position:absolute;top:calc(var(--space) * -.5);bottom:calc(var(--space) * -.5);border-left:1px dashed var(--color-ink)}.bar-value{text-align:right;font-variant-numeric:tabular-nums}.chart-note{display:flex;align-items:center;gap:var(--space);margin:var(--space)0 0;color:var(--color-muted)}.target-key{display:inline-block;width:calc(var(--space) * 2);border-top:1px dashed var(--color-ink)}.sparkline{display:block;overflow:visible}.tooltip{position:fixed;z-index:10;max-width:18rem;padding:var(--space)calc(var(--space) * 1.25);font-size:var(--size-small);line-height:1.4;color:var(--color-ink);background:var(--color-paper);border:1px solid var(--color-line);border-radius:var(--radius);box-shadow:0 4px 12px rgb(31 35 40/12%);pointer-events:none}.tooltip-title{font-weight:var(--weight-bold)}.term{position:relative;text-decoration:underline dotted var(--color-muted);text-underline-offset:.2em;cursor:help}.term:hover::after,.term:focus::after{content:attr(data-definition);position:absolute;left:0;top:calc(100% + 4px);z-index:5;width:16rem;padding:var(--space);font-weight:400;color:var(--color-ink);background:var(--color-paper);border:1px solid var(--color-line);border-radius:var(--radius);box-shadow:0 4px 12px rgb(31 35 40/12%)}.plain{margin:0 0 calc(var(--space) * 2);padding:0;list-style:none}.plain li+li{margin-top:calc(var(--space) * .75)}.fix-list,.steps{margin:0 0 calc(var(--space) * 2);padding-left:calc(var(--space) * 2.5)}.fix-list li+li,.steps li+li{margin-top:var(--space)}.summary{padding:calc(var(--space) * 1.5);background:var(--color-surface);border-radius:var(--radius)}.stepper{display:inline-flex;align-items:center;gap:var(--space)}.button.small{padding:0 var(--space);font-weight:400}.actions{display:inline-flex;gap:calc(var(--space) * .5)}label.inline{display:inline-block;margin-right:calc(var(--space) * 2)}fieldset.field{margin:0 0 calc(var(--space) * 2);padding:0;border:0}fieldset.field legend{margin-bottom:calc(var(--space) * .5);padding:0}.nowrap{white-space:nowrap}.page{padding-top:calc(var(--space) * 2)}.page>.toolbar:first-child{margin-bottom:calc(var(--space) * 1.5)}.page>*+*,details.section>:not(summary)+*,.app>.panel+.tiles,.app>.tiles+.panel,.notes{margin-top:calc(var(--space) * 2)}.decision{font-size:var(--size-text)}.glossary{display:flex;flex-wrap:wrap;gap:var(--space)calc(var(--space) * 2.5)}.table-view{margin-top:var(--space)}.table-view summary{color:var(--color-accent);cursor:pointer}.group-row th{padding-top:calc(var(--space) * 1.5);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);background:var(--color-surface)}.headline tbody th{font-weight:400;color:var(--color-ink)}.data-tag{margin-left:calc(var(--space) * .5);padding:0 calc(var(--space) * .5);font-size:.75rem;font-weight:var(--weight-bold);white-space:nowrap;background:color-mix(in srgb,var(--status-warning) 22%,transparent);border-radius:var(--radius)}.data-tag.missing{background:color-mix(in srgb,var(--status-critical) 14%,transparent)}.stage-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:calc(var(--space) * 1.5)}.stage-card{display:grid;gap:calc(var(--space) * .25);padding:calc(var(--space) * 1.5)calc(var(--space) * 2);text-align:left;background:color-mix(in srgb,currentColor 9%,var(--color-paper));border:0;border-left:4px solid;border-radius:var(--radius);cursor:pointer}.stage-card .tile-value,.stage-card .tile-label{color:var(--color-ink)}.wf-bar{fill:currentColor}.dropzone{display:block;padding:calc(var(--space) * 3);text-align:center;border:2px dashed var(--color-line);border-radius:var(--radius);cursor:pointer}.dropzone.over{border-color:var(--color-accent);background:var(--color-surface)}.gantt{min-width:60rem}.gantt th,.gantt td{white-space:nowrap}.gantt .timeline{width:48%;min-width:20rem;padding:0}.gantt .item-name{font-weight:400;color:var(--color-ink)}.lane{position:relative;display:block;height:calc(var(--space) * 4)}.gantt thead .lane{height:calc(var(--space) * 5.5)}.month{position:absolute;bottom:0;padding-left:calc(var(--space) * .5);border-left:1px solid var(--color-line)}.marker{position:absolute;top:0;bottom:0;border-left:1px dashed var(--status-critical)}.marker.today{border-left:2px solid var(--color-ink)}.marker-label{position:absolute;top:0;padding-left:calc(var(--space) * .5);font-size:.75rem;font-weight:400;white-space:nowrap;color:var(--color-muted);border-left:1px dashed var(--status-critical)}.marker-key{display:inline-block;height:calc(var(--space) * 1.75);border-left:1px dashed var(--status-critical)}.marker-key.today{border-left:2px solid var(--color-ink)}.gantt-bar{position:absolute;top:calc(var(--space) * 1.25);height:calc(var(--space) * 1.5);min-width:4px;background:currentColor;border-radius:4px}.diamond{display:inline-block;width:10px;height:10px;background:var(--color-ink);transform:rotate(45deg)}.lane .diamond{position:absolute;top:calc(var(--space) * 1.4);margin-left:-5px}.capacity td.over{background:color-mix(in srgb,var(--status-critical) 8%,transparent)}.inputs input[type=text]{width:100%;min-width:12rem}.draggable .handle{color:var(--color-muted);cursor:grab}.draggable.dragging{opacity:.5}.notes p{margin:0;color:var(--color-muted)}.sankey-node{fill:currentColor}.sankey-link{fill:none;stroke:currentColor;stroke-opacity:.28}.sankey-link:hover{stroke-opacity:.5}.app[data-theme=dark]{--color-ink:#f0efec;--color-muted:#c3c2b7;--color-line:#383835;--color-paper:#1a1a19;--color-surface:#242423;--color-control:#242423;--color-grid:#2c2c2a;--color-axis:#383835;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;color:var(--color-ink);background:var(--color-paper);padding:calc(var(--space) * 2);border-radius:var(--radius)}@media(prefers-color-scheme:dark){.app[data-theme=system]{--color-ink:#f0efec;--color-muted:#c3c2b7;--color-line:#383835;--color-paper:#1a1a19;--color-surface:#242423;--color-control:#242423;--color-grid:#2c2c2a;--color-axis:#383835;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;color:var(--color-ink);background:var(--color-paper);padding:calc(var(--space) * 2);border-radius:var(--radius)}}@media(min-width:720px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}}@media(hover:hover){a:hover,.email:hover{text-decoration-thickness:2px}.samples a:hover{color:var(--color-accent)}}@media(max-width:600px){:root{--gutter:calc(var(--space) * 2.5)}main{padding-top:calc(var(--space) * 5)}}