@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-normal-Czevyj-6.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-normal-CJcjJNj7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-normal-DihXLNYH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-ext-400-normal-Q_nF8v4l.woff2) format("woff2"),url(/assets/instrument-sans-latin-ext-400-normal-r32jotim.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-400-normal-DRC__1Mx.woff2) format("woff2"),url(/assets/instrument-sans-latin-400-normal-D1W7dsQl.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/instrument-sans-latin-ext-500-normal-CTEe1bJa.woff2) format("woff2"),url(/assets/instrument-sans-latin-ext-500-normal-CAxz3nsc.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/instrument-sans-latin-500-normal-Dk9ku72i.woff2) format("woff2"),url(/assets/instrument-sans-latin-500-normal-Z6ESRlEs.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/instrument-sans-latin-ext-600-normal-BsaQcF38.woff2) format("woff2"),url(/assets/instrument-sans-latin-ext-600-normal-DMks36a2.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/instrument-sans-latin-600-normal-B7fBEWYG.woff2) format("woff2"),url(/assets/instrument-sans-latin-600-normal-B9e8oLYv.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #f6f7f4;--card: #ffffff;--ink: #1c2229;--ink-2: #4b5560;--ink-3: #8a929b;--line: #dfe3dc;--line-2: #eef0ea;--us: #2563eb;--us-soft: #dbeafe;--us-ink: #1d4ed8;--them: #db2777;--them-soft: #fce7f3;--them-ink: #9d174d;--warn: #b45309;--warn-soft: #fdecd2;--ok: #15803d;--danger: #b91c1c;--font-ui: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;--font-display: "Fraunces Variable", "Fraunces", Georgia, "Times New Roman", serif;--radius: 6px}*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:15px;line-height:1.5}a{color:inherit}h1,h2,h3{font-family:var(--font-display);font-weight:500;margin:0;letter-spacing:-.01em}h1{font-size:2rem;line-height:1.15}h2{font-size:1.35rem;line-height:1.25}h3{font-size:1.1rem}p{margin:0 0 .75rem;max-width:68ch}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--us);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.rail{background:var(--ink);color:#e6e9e3;padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1.5rem;position:sticky;top:0;height:100vh}.rail .brand{font-family:var(--font-display);font-size:1.15rem;color:#fff;text-decoration:none}.rail .site-name{font-size:.95rem;color:#fff;word-break:break-all}.rail nav{display:flex;flex-direction:column;gap:.15rem}.rail nav a{color:#c9cfc6;text-decoration:none;padding:.45rem .6rem;border-radius:var(--radius);display:flex;justify-content:space-between;align-items:center}.rail nav a:hover{background:#ffffff12;color:#fff}.rail nav a.router-link-exact-active,.rail nav a.active{background:#ffffff1f;color:#fff}.rail .count{background:#ffffff24;border-radius:999px;padding:0 .5rem;font-size:.8rem}.rail .spacer{flex:1}.rail .foot{font-size:.85rem;color:#9aa39a;display:flex;flex-direction:column;gap:.3rem}.rail .foot a{color:#c9cfc6;text-decoration:none}.main{padding:2rem 2.5rem 4rem;max-width:1120px;width:100%}@media(max-width:800px){.shell{grid-template-columns:1fr}.rail{position:static;height:auto}.main{padding:1.25rem 1rem 3rem}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.page-head .lede{color:var(--ink-2);margin:.35rem 0 0}.actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.btn{border:1px solid var(--line);background:var(--card);padding:.5rem .9rem;border-radius:var(--radius);font-weight:500}.btn:hover{border-color:var(--ink-3)}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:#2b333c}.btn.small{padding:.3rem .65rem;font-size:.88rem}.btn.quiet{border-color:transparent;background:transparent;color:var(--ink-2)}.btn:disabled{opacity:.5;cursor:default}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.9rem}.field label{font-size:.9rem;color:var(--ink-2)}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:var(--radius);padding:.55rem .7rem;background:#fff;width:100%}.field input:focus{border-color:var(--us);outline:none}.hint{font-size:.85rem;color:var(--ink-3)}.error{color:var(--danger);font-size:.9rem;margin:.5rem 0}.notice{background:var(--warn-soft);border-left:3px solid var(--warn);padding:.6rem .9rem;border-radius:0 var(--radius) var(--radius) 0;margin-bottom:1rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem 1.4rem}.card+.card{margin-top:1rem}.grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}@media(max-width:800px){.grid-2{grid-template-columns:minmax(0,1fr)}}.section-title{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.75rem}.muted{color:var(--ink-3)}.small{font-size:.88rem}.list{margin:0;padding-left:1.1rem}.list li{margin-bottom:.35rem}.list.us li::marker{color:var(--us)}.list.them li::marker{color:var(--them)}.stack{display:flex;flex-direction:column;gap:.75rem}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.tag{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.8rem;background:var(--line-2);color:var(--ink-2)}.tag.us{background:var(--us-soft);color:var(--us-ink)}.tag.them{background:var(--them-soft);color:var(--them-ink)}.tag.high{background:#fde2e2;color:var(--danger)}.tag.medium{background:var(--warn-soft);color:var(--warn)}.tag.low{background:var(--line-2);color:var(--ink-2)}.tag.applied{background:#dcfce7;color:var(--ok)}.tag.dismissed{background:var(--line-2);color:var(--ink-3)}.tag.failed{background:#fde2e2;color:var(--danger)}.tug{display:grid;grid-template-columns:130px 1fr;gap:.5rem 1rem;align-items:center}.tug .lbl{color:var(--ink-2);text-transform:capitalize}.tug .bar{position:relative;height:18px;background:var(--line-2);border-radius:3px;overflow:hidden}.tug .bar .us{position:absolute;right:50%;top:0;bottom:0;background:var(--us)}.tug .bar .them{position:absolute;left:50%;top:0;bottom:0;background:var(--them)}.tug .bar .mid{position:absolute;left:50%;top:0;bottom:0;width:1px;background:#fff}.tug .nums{display:flex;justify-content:space-between;font-size:.8rem;color:var(--ink-3)}.legend{display:flex;gap:1.25rem;font-size:.88rem;color:var(--ink-2);margin-bottom:.75rem}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:.35rem;vertical-align:-1px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.55rem .5rem;border-bottom:1px solid var(--line-2);vertical-align:top}th{font-weight:500;color:var(--ink-2);font-size:.88rem}tr:hover td{background:#fbfbf9}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.diff{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}@media(max-width:800px){.diff{grid-template-columns:1fr}}.diff>div{border-radius:var(--radius);padding:.6rem .8rem;font-size:.92rem;white-space:pre-wrap;word-break:break-word}.diff .before{background:var(--line-2);color:var(--ink-2)}.diff .after{background:var(--us-soft);border:1px solid #bfdbfe}.diff .cap{font-size:.78rem;color:var(--ink-3);margin-bottom:.25rem;display:block}.progress{height:6px;background:var(--line-2);border-radius:3px;overflow:hidden}.progress>div{height:100%;background:var(--us);transition:width .4s}.log{font-family:ui-monospace,Menlo,monospace;font-size:.8rem;background:#f1f3ee;padding:.6rem .8rem;border-radius:var(--radius);max-height:220px;overflow:auto;white-space:pre-wrap;color:var(--ink-2)}.auth{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth .box{width:100%;max-width:400px}.auth h1{margin-bottom:.25rem}.auth .switch{margin-top:1rem;font-size:.9rem;color:var(--ink-2)}.auth .switch button{background:none;border:0;color:var(--us-ink);text-decoration:underline;padding:0}.empty{padding:2.5rem 1rem;text-align:center;color:var(--ink-2)}.empty h2{margin-bottom:.5rem}details summary{cursor:pointer;color:var(--ink-2)}.select-label{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem;color:var(--ink-3)}.select-label select{border:1px solid var(--line);border-radius:var(--radius);padding:.4rem .6rem;background:#fff;font-size:.92rem;color:var(--ink)}.meta{display:flex;flex-wrap:wrap;gap:.15rem 1rem;margin-top:.2rem}.meta a{overflow-wrap:anywhere}.sug .rationale{margin:.5rem 0}.sug .tags{flex-wrap:wrap;justify-content:flex-end}details.change summary{color:var(--us-ink);font-size:.92rem;width:fit-content}details.change[open] summary{margin-bottom:.6rem}.summary-line{color:var(--ink-2);margin:-.75rem 0 1rem}@media(max-width:640px){.sug .section-title{flex-direction:column}.sug .tags{justify-content:flex-start}}@media(max-width:800px){.shell{grid-template-columns:minmax(0,1fr)}.main{min-width:0}.rail{min-width:0;position:sticky;top:0;z-index:10;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.7rem 1rem .5rem}.rail .brand{font-size:1rem}.rail>div:not(.spacer):not(.foot){display:none}.rail .spacer{display:none}.rail nav{order:3;flex-basis:100%;flex-direction:row;overflow-x:auto;gap:.25rem;margin:0 -1rem;padding:0 1rem .15rem;scrollbar-width:none}.rail nav::-webkit-scrollbar{display:none}.rail nav a{white-space:nowrap;padding:.35rem .65rem;gap:.45rem}.rail .foot{margin-left:auto;flex-direction:row;gap:1rem;font-size:.82rem}.rail .foot span{display:none}}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll table{min-width:34rem}@media(max-width:800px){.shell{grid-template-rows:auto 1fr;align-content:start}}@media(max-width:640px){.row>.field{flex:1 1 100%!important}.row>.field+.btn,form.card .row>.btn{width:100%}}.grid-2>.card{margin:0}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1rem;margin-bottom:.6rem}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1.1rem;display:flex;flex-direction:column;gap:.15rem}.kpi-label{font-size:.85rem;color:var(--ink-2)}.kpi strong{font-family:var(--font-display);font-size:1.9rem;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.15}.period{margin:0 0 1rem}.code{font-family:ui-monospace,Menlo,monospace;font-size:.82rem;background:#f1f3ee;padding:.55rem .75rem;border-radius:var(--radius);white-space:pre-wrap;word-break:break-all;margin:.35rem 0 .75rem}.steps{padding-left:1.2rem;margin:0 0 1rem}.steps li{margin-bottom:.6rem}.health-head{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}.score-big{font-family:var(--font-display);font-size:3.2rem;line-height:1;font-variant-numeric:tabular-nums}.score-big span{font-size:1rem;color:var(--ink-3);margin-left:.15rem}.score-big.good{color:var(--ok)}.score-big.fair{color:var(--warn)}.score-big.poor{color:var(--danger)}.gap-list{list-style:none;margin:0;padding:0}.gap-list li{display:flex;flex-direction:column;gap:.15rem;padding:.55rem 0;border-top:1px solid var(--line-2)}.gap-list li:first-child{border-top:0}.section-h{margin:1.75rem 0 .75rem}.page-url{font-size:1.05rem;overflow-wrap:anywhere}.page-url a{text-decoration:none}.toggle-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.5rem}li.ours{color:var(--us-ink);font-weight:600}tr.ours-row td{background:var(--us-soft)}.kpi strong,.stat-value{font-family:var(--font-ui);font-weight:600;font-size:1.75rem;font-variant-numeric:normal;line-height:1.15}.progress-row{margin-bottom:1rem}.delta{font-size:.82rem}.delta.good{color:var(--ok)}.delta.bad{color:var(--danger)}.delta.flat{color:var(--ink-3)}.spark{width:100%;height:24px;margin-top:.35rem;overflow:visible}.spark polyline{fill:none;stroke:var(--ink-3);stroke-width:1.5px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.charts{margin-bottom:1rem}.chart{margin:0}.chart-title{font-size:.95rem;color:var(--ink-2);margin-bottom:.4rem}.chart-box{position:relative;min-width:0}.chart-box svg{display:block;width:100%;height:auto;touch-action:pan-y}.chart-box svg:focus-visible{outline:2px solid var(--us);outline-offset:2px}.chart .grid{stroke:var(--line-2);stroke-width:1px}.chart .tick{fill:var(--ink-3);font-size:11px;font-variant-numeric:tabular-nums}.chart .line{fill:none;stroke:var(--us);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .area{fill:var(--us);opacity:.1}.chart .col{fill:var(--us)}.chart .col.dim{opacity:.45}.chart .cross{stroke:var(--ink-3);stroke-width:1px}.chart .dot{fill:var(--us);stroke:var(--card);stroke-width:2px}.chart-tip{position:absolute;top:2px;transform:translate(-50%);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.3rem .55rem;display:flex;flex-direction:column;pointer-events:none;font-size:.8rem;color:var(--ink-2);box-shadow:0 2px 8px #1c222914;white-space:nowrap}.chart-tip strong{font-size:1rem;color:var(--ink);font-variant-numeric:normal}.chart-table{margin-top:.5rem;font-size:.85rem}.chart-table table{min-width:0}.report{max-width:860px;margin:0 auto;padding:2rem 1.25rem 4rem}.report-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;border-bottom:2px solid var(--ink);padding-bottom:1rem;margin-bottom:1.5rem}.report section{margin-bottom:1.75rem;break-inside:avoid-page}.report h2{margin-bottom:.6rem}.report .kpis{margin-bottom:1rem}.report ol.fixes li{margin-bottom:.6rem}@media print{.no-print{display:none!important}html,body{background:#fff}.report{padding:0;max-width:none}.kpi,.card{break-inside:avoid}a{text-decoration:none;color:inherit}}.gap-list li,.gap-list li a,.page-url,.table-scroll td{overflow-wrap:anywhere}.gap-head{flex-wrap:wrap;gap:.25rem 1rem;align-items:flex-start}.gap-head>div{flex:1 1 16rem;min-width:0}.gap-count{white-space:nowrap}
