@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-vietnamese-400-normal-TxZB8OSn.woff2) format("woff2"),url(/assets/public-sans-vietnamese-400-normal-BnC03Rcj.woff) format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-ext-400-normal-mk90oQqJ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-400-normal-ylhOdEnv.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-400-normal-8Rpg0ruU.woff2) format("woff2"),url(/assets/public-sans-latin-400-normal-BJe8n-hT.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-vietnamese-500-normal-DjztbcKe.woff2) format("woff2"),url(/assets/public-sans-vietnamese-500-normal-BsTjTmjh.woff) format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-ext-500-normal-DC-z7ASZ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-500-normal-CmwLalnN.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-500-normal-NlrCPXnF.woff2) format("woff2"),url(/assets/public-sans-latin-500-normal-Kkjf6c6R.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-vietnamese-600-normal-P4BtCUdw.woff2) format("woff2"),url(/assets/public-sans-vietnamese-600-normal-CtE6oKHE.woff) format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-ext-600-normal-DchWdWJ_.woff2) format("woff2"),url(/assets/public-sans-latin-ext-600-normal-C1bpx0IC.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-600-normal-Fru-LXNs.woff2) format("woff2"),url(/assets/public-sans-latin-600-normal-BjQ8ENXZ.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-vietnamese-700-normal-D97ShjGS.woff2) format("woff2"),url(/assets/public-sans-vietnamese-700-normal-BYtl4jcW.woff) format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-ext-700-normal-CgolUQuG.woff2) format("woff2"),url(/assets/public-sans-latin-ext-700-normal-CCfeRI-3.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-700-normal-BqJmxWdE.woff2) format("woff2"),url(/assets/public-sans-latin-700-normal-AugGdtWM.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #f5f6f3;--surface: #ffffff;--ink: #1d2b36;--ink-2: #56646e;--ink-3: #8a959c;--rule: #dce1dd;--rule-2: #eceeeb;--accent: #1f6f5c;--accent-ink: #ffffff;--accent-soft: #e3efea;--warn: #b5442f;--warn-soft: #f6e5e0;--kpi-I: #8a4fa8;--kpi-II: #c2850f;--kpi-III: #2c7da0;--radius: 6px;--font: "Public Sans", system-ui, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:24px;font-weight:700;letter-spacing:-.01em}h2{font-size:17px;font-weight:600}h3{font-size:15px;font-weight:600}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100%}.side{border-right:1px solid var(--rule);padding:20px 14px;display:flex;flex-direction:column;gap:24px;position:sticky;top:0;height:100vh}.brand{padding:0 10px}.brand b{display:block;font-size:15px}.brand span{color:var(--ink-2);font-size:13px}.nav{display:flex;flex-direction:column;gap:2px}.nav a{color:var(--ink);padding:7px 10px;border-radius:var(--radius);font-weight:500}.nav a:hover{background:var(--rule-2);text-decoration:none}.nav a.active{background:var(--surface);box-shadow:inset 3px 0 0 var(--accent)}.side-foot{margin-top:auto;padding:0 10px;font-size:13px;color:var(--ink-2);display:grid;gap:8px}.side-foot .who b{color:var(--ink);display:block}.lang{display:flex;gap:4px}.lang button{border:1px solid var(--rule);background:none;padding:2px 8px;border-radius:4px;cursor:pointer;font:inherit}.lang button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.main{padding:28px 36px 64px;max-width:1480px;width:100%}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head p{margin:4px 0 0;color:var(--ink-2)}.crumb{font-size:13px;color:var(--ink-2);margin-bottom:6px}@media (max-width: 860px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px 16px}.nav{flex-direction:row;flex-wrap:wrap}.side-foot{margin:0}.main{padding:20px 16px 48px}}.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius)}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--rule-2);gap:12px}.panel-body{padding:16px 18px}.grid{display:grid;gap:16px}.cols-2{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr))}.cols-3{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}.stack{display:grid;gap:16px}.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px 24px;margin:0}.facts dt{font-size:13px;color:var(--ink-2)}.facts dd{margin:2px 0 0;font-weight:500}.figure{font-size:28px;font-weight:700;letter-spacing:-.02em}.figure-sub{color:var(--ink-2);font-size:13px}table.data{width:100%;border-collapse:collapse;font-size:14px}.data th{text-align:left;font-weight:600;color:var(--ink-2);font-size:13px;padding:8px 12px;border-bottom:1px solid var(--rule);white-space:nowrap}.data td{padding:9px 12px;border-bottom:1px solid var(--rule-2);vertical-align:top}.data tr:last-child td{border-bottom:none}.data .num{text-align:right;white-space:nowrap}.data tbody tr.link{cursor:pointer}.data tbody tr.link:hover td{background:#fafbf9}.table-wrap{overflow-x:auto}.empty{padding:28px 18px;color:var(--ink-2)}.field{display:grid;gap:4px;font-size:13px;color:var(--ink-2)}.field>span{font-weight:500}.field small{color:var(--ink-3)}input,select,textarea{font:15px var(--font);color:var(--ink);background:#fff;border:1px solid #c9d0cb;border-radius:5px;padding:7px 9px;min-width:0;width:100%}textarea{min-height:64px;resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 16px}.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:14px}.toolbar .field{min-width:180px}.actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.btn{font:500 14px var(--font);border-radius:5px;padding:8px 14px;cursor:pointer;border:1px solid #c9d0cb;background:#fff;color:var(--ink);white-space:nowrap}.btn:hover{background:var(--rule-2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:#185a4a}.btn.small{padding:4px 10px;font-size:13px}.btn:disabled{opacity:.55;cursor:not-allowed}.error{background:var(--warn-soft);color:var(--warn);border-radius:5px;padding:8px 12px;font-size:14px}.ok{background:var(--accent-soft);color:var(--accent);border-radius:5px;padding:8px 12px;font-size:14px}.muted{color:var(--ink-2)}.small{font-size:13px}.status{display:inline-block;font-size:12.5px;font-weight:500;padding:1px 8px;border-radius:999px;background:var(--rule-2);color:var(--ink-2);white-space:nowrap}.status.disbursed,.status.matured{background:var(--accent-soft);color:var(--accent)}.status.assessed,.status.grant_paid{background:#e2ecf2;color:#22607c}.status.discontinued{background:var(--warn-soft);color:var(--warn)}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:0}.timeline>li{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:8px 0;border-top:1px solid var(--rule-2);font-size:14px}.timeline>li:first-child{border-top:none}.timeline .when{color:var(--ink-2)}.timeline .note{color:var(--ink-2);font-style:italic}.kpi{--c: var(--ink);display:grid;gap:6px}.kpi.I{--c: var(--kpi-I)}.kpi.II{--c: var(--kpi-II)}.kpi.III{--c: var(--kpi-III)}.kpi-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.kpi-name{font-weight:600;display:flex;align-items:center;gap:8px}.kpi-name:before{content:"";width:10px;height:10px;border-radius:2px;background:var(--c)}.kpi-val{font-size:13px;color:var(--ink-2);text-align:right}.kpi-val small{display:block;font-size:12px}.kpi-val b{color:var(--ink);font-size:15px}.meter{position:relative;height:12px;background:var(--rule-2);border-radius:3px;overflow:hidden}.meter .pot{position:absolute;inset:0 auto 0 0;background:var(--c);opacity:.28}.meter .ach{position:absolute;inset:3px auto 3px 0;background:var(--c);border-radius:0 2px 2px 0}.meter-legend{display:flex;gap:16px;font-size:12.5px;color:var(--ink-2)}.meter-legend i{display:inline-block;width:14px;height:8px;border-radius:2px;background:var(--ink-2);vertical-align:middle;margin-right:6px}.meter-legend i.pot{opacity:.28}.sc-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px;align-items:start}@media (max-width: 1280px){.sc-layout{grid-template-columns:1fr}}.sc-summary{position:sticky;top:16px}.sc-group{border-top:4px solid var(--c)}.sc-group.I{--c: var(--kpi-I)}.sc-group.II{--c: var(--kpi-II)}.sc-group.III{--c: var(--kpi-III)}.sc-item td{vertical-align:middle}.sc-item .q{min-width:240px;max-width:380px;font-size:14px}.sc-item td{padding:8px}.sc-item td:first-child{padding-left:14px}.sc-item .q small{display:block;color:var(--ink-3)}.sc-item input[type=number]{width:64px;text-align:right;padding:5px 6px}.pct-in{display:inline-flex;align-items:center;gap:4px}.yn{display:inline-flex;border:1px solid #c9d0cb;border-radius:5px;overflow:hidden}.yn button{border:none;background:#fff;padding:4px 8px;font:13px var(--font);cursor:pointer;color:var(--ink-2)}.yn button+button{border-left:1px solid #c9d0cb}.yn button[aria-pressed=true]{background:var(--ink);color:#fff}.yn button:disabled{cursor:not-allowed;opacity:.6}.pts{font-weight:600;text-align:right;white-space:nowrap}.pts.zero{color:var(--ink-3);font-weight:400}.total-line{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid var(--rule-2);font-size:14px}.total-line:first-child{border-top:none}.total-line.big{font-size:16px;font-weight:700;border-top:1px solid var(--rule);padding-top:10px}.warn-list{margin:0;padding-left:18px;color:var(--warn);font-size:13px}dialog{border:none;border-radius:8px;padding:0;max-width:560px;width:calc(100% - 32px);box-shadow:0 18px 50px #1d2b3640}dialog::backdrop{background:#1d2b3659}.dlg-head{padding:16px 20px;border-bottom:1px solid var(--rule-2)}.dlg-body{padding:16px 20px;display:grid;gap:12px}.dlg-foot{padding:12px 20px 16px}.login{min-height:100%;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:380px;display:grid;gap:16px}.login-card h1{font-size:22px}.login-mark{display:flex;gap:4px}.login-mark span{height:6px;flex:1;border-radius:2px}.changes{margin:0;padding:0;list-style:none;font-size:13px;display:grid;gap:2px}.changes code{font:12.5px var(--font);color:var(--ink-2)}.changes del{color:var(--warn)}.changes ins{color:var(--accent);text-decoration:none}.sc-summary .kpi-head{flex-direction:column;align-items:flex-start;gap:0}.sc-summary .kpi-val{text-align:left}.section-title{margin:28px 0 12px}.upload-row{display:flex;gap:16px;align-items:stretch;flex-wrap:wrap}.upload-row .field{min-width:220px;align-content:start}.drop{flex:1;min-width:280px;border:2px dashed var(--rule);border-radius:var(--radius);padding:18px 20px;display:grid;gap:6px;justify-items:start;background:var(--paper)}.drop.over{border-color:var(--accent);background:var(--accent-soft)}.drop.disabled{opacity:.7}.uploads{list-style:none;margin:0;padding:0 18px 14px;display:grid;gap:6px;font-size:14px}.uploads li{display:flex;gap:10px;align-items:center}.uploads li.failed{color:var(--warn)}.import-card .panel-head h3{font-size:16px}.import-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px}.import-main{padding:16px 18px;display:grid;gap:16px;align-content:start}.import-side{padding:16px 18px;border-left:1px solid var(--rule-2);display:grid;gap:4px;align-content:start}.import-side h3{margin-bottom:6px}.stack.tight{gap:12px;margin-top:12px}.counts{display:inline-flex;gap:6px;margin-right:6px}.sev{display:inline-block;font-size:12px;font-weight:600;padding:1px 8px;border-radius:999px;white-space:nowrap}.sev.error{background:var(--warn-soft);color:var(--warn)}.sev.warning{background:#f7eedc;color:#8a5a00}.sev.info{background:#e2ecf2;color:#22607c}.issues{list-style:none;margin:0;padding:0;display:grid;gap:8px}.issue{display:grid;grid-template-columns:96px 1fr;gap:10px;align-items:start;font-size:14px;padding:8px 10px;border-radius:var(--radius);border-left:3px solid var(--rule);background:#fafbf9}.issue.error{border-left-color:var(--warn)}.issue.warning{border-left-color:#c2850f}.issue.info{border-left-color:#2c7da0}.issue .sev{justify-self:start}.cell{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink-2)}.fix{display:flex;gap:8px;align-items:center;margin-top:6px;font-size:13.5px;cursor:pointer}.fix input{width:auto}.choice{border:1px solid var(--rule-2);border-radius:var(--radius);padding:10px 14px 12px;margin:0;display:grid;gap:8px}.choice legend{font-weight:600;font-size:13px;color:var(--ink-2);padding:0 4px}.radio{display:flex;gap:10px;align-items:flex-start;font-size:14px;cursor:pointer}.radio>input{width:auto;margin-top:3px}.diffs{display:grid;gap:2px;margin-top:4px;font-size:13px}.diffs del{color:var(--warn)}.diffs ins{color:var(--accent);text-decoration:none;font-weight:600}.status.import-applied{background:var(--accent-soft);color:var(--accent)}.status.import-discarded{background:var(--rule-2);color:var(--ink-3)}@media (max-width: 900px){.import-grid{grid-template-columns:1fr}.import-side{border-left:none;border-top:1px solid var(--rule-2)}.issue{grid-template-columns:1fr}}.report-figures{display:flex;flex-wrap:wrap;gap:8px}.report-figures>div{border:1px solid var(--rule-2);border-radius:var(--radius);padding:8px 12px;min-width:104px;display:grid;gap:2px}.report-figures span{font-size:12.5px;color:var(--ink-2)}.report-figures b{font-size:20px;font-weight:700;letter-spacing:-.01em}.report-figures small{font-size:12px;color:var(--ink-2)}.report-figures .new b{color:var(--accent)}.report-figures .upd b{color:#22607c}.report-figures .warn b{color:#8a5a00}.report-figures .bad b{color:var(--warn)}.seg{display:inline-flex;border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;align-self:end}.seg button{border:none;background:var(--surface);padding:7px 12px;font:13.5px var(--font);cursor:pointer;color:var(--ink-2)}.seg button+button{border-left:1px solid var(--rule)}.seg button[aria-pressed=true]{background:var(--ink);color:#fff}.report-rows td{font-size:13.5px}.report-rows td:nth-child(2){min-width:200px}.report-rows td:nth-child(4){min-width:220px}.report-rows td:nth-child(5){min-width:260px;max-width:420px}.report-rows tr.corr td:first-child{box-shadow:inset 3px 0 #c2850f}.report-rows tr.act-skip td,.report-rows tr.act-choose td{background:#fdf8f6}.act{display:inline-block;font-size:12px;font-weight:600;padding:1px 8px;border-radius:999px;white-space:nowrap;background:var(--rule-2);color:var(--ink-2)}.act.create{background:var(--accent-soft);color:var(--accent)}.act.update{background:#e2ecf2;color:#22607c}.act.skip,.act.choose{background:var(--warn-soft);color:var(--warn)}.act.corr{background:#f7eedc;color:#8a5a00;margin-top:4px}select.choose{margin-top:6px;font-size:13px;padding:4px 6px}.linklike{border:none;background:none;padding:0;color:var(--accent);cursor:pointer;font:inherit;display:block;margin-top:4px}.linklike.small{font-size:12px}.report-rows .linklike.small{color:var(--ink-3)}.report-rows tr:hover .linklike.small{color:var(--accent)}.linklike:hover{text-decoration:underline}.row-issues{display:grid;gap:3px;font-size:12.5px}.ri{display:flex;gap:6px;align-items:baseline}.ri.warning{color:#6f4a00}.ri.error{color:var(--warn)}.ri.quiet{color:var(--ink-3);display:block}.ri.quiet summary{cursor:pointer}.dot{width:7px;height:7px;border-radius:50%;flex:none;transform:translateY(-1px);background:#2c7da0}.dot.warning{background:#c2850f}.dot.error{background:var(--warn)}.not-reported summary{cursor:pointer;font-size:14px;color:var(--ink-2)}.not-reported ul{margin:8px 0 0;padding-left:18px;font-size:13.5px;columns:2}.data tr.total td{font-weight:600;border-top:1px solid var(--rule)}.data td.neg{color:var(--warn)}.dash.refreshing{opacity:.6;transition:opacity .2s}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:16px}.tile{display:grid;gap:4px;align-content:start}.tile .figure{font-size:24px}.tile.hero .figure{font-size:30px}.budget-meter{height:8px;border-radius:4px;background:#e8e5f8;overflow:hidden;margin-top:4px}.budget-meter span{display:block;height:100%;background:#6250d6;border-radius:0 4px 4px 0}.budget-meter.over span{background:var(--warn)}.panel-total{font-size:13px;color:var(--ink-2);margin-top:2px;font-variant-numeric:tabular-nums}.seg.small button{padding:4px 10px;font-size:12.5px}.section-title{margin:12px 0 0}.grid.structure{grid-template-columns:minmax(0,3fr) minmax(300px,2fr);align-items:start}@media (max-width: 1100px){.grid.structure{grid-template-columns:1fr}}.note-box{padding:0 4px;line-height:1.5}.stages{display:grid;gap:18px;position:relative}.stage{display:grid;gap:4px}.stage-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:6px;border-bottom:1px solid var(--rule-2);margin-bottom:2px}.stage-head>span:first-child{font-weight:600;display:flex;align-items:center;gap:8px}.stage-head i{width:10px;height:10px;border-radius:2px;display:inline-block}.stage-sum{font-size:13.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}.stage-sum b{color:var(--ink)}.stage-row{display:grid;grid-template-columns:170px 1fr 130px;gap:12px;align-items:center;color:var(--ink);padding:3px 4px;border-radius:4px;outline:none}.stage-row:hover,.stage-row:focus-visible{background:var(--rule-2);text-decoration:none}.stage-label{font-size:13.5px}.stage-bar{height:12px;display:block}.stage-bar span{display:block;height:100%;border-radius:0 4px 4px 0;min-width:2px}.stage-val{text-align:right;font-size:13.5px;font-variant-numeric:tabular-nums}.stage-val small{color:var(--ink-3);margin-left:8px;display:inline-block;min-width:22px}.sbars{position:relative;display:grid;gap:2px}.sbar-row{display:grid;grid-template-columns:minmax(150px,34%) 1fr 118px;gap:12px;align-items:center;padding:5px 0}.sbar-row.l0{border-top:1px solid var(--rule-2);padding-top:8px}.sbar-row.l0:first-child{border-top:none}.sbar-row.l1 .sbar-label{padding-left:18px;color:var(--ink-2);font-size:12.5px}.sbar-row.l1 .sbar-track{height:10px}.sbar-label{font-size:13.5px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.sbar-label small{display:block;color:var(--ink-3)}.sbar-track{height:14px;display:flex;gap:2px}.sbar-track .sbar-seg{display:block;height:100%;min-width:2px;outline:none;cursor:default}.sbar-track .sbar-seg.end{border-radius:0 4px 4px 0}.sbar-track .sbar-seg:hover,.sbar-track .sbar-seg:focus-visible{filter:brightness(1.12)}.sbar-total{text-align:right;font-size:13.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.sbar-total small{color:var(--ink-3);margin-left:8px;display:inline-block;min-width:22px}.sbar-row.l1 .sbar-total{color:var(--ink-2);font-size:12.5px}.sbar-row.l1 .sbar-total b{font-weight:500}.chart{position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .grid{stroke:var(--rule-2);stroke-width:1}.chart .axis{stroke:var(--rule);stroke-width:1}.chart .limit{stroke:var(--ink-2);stroke-width:1}.chart .cross{stroke:var(--ink-3);stroke-width:1}.chart .tick{font-size:11px;fill:var(--ink-2);font-variant-numeric:tabular-nums}.chart .val{font-size:11.5px;fill:var(--ink);font-weight:600}.chart .col{outline:none}.chart .col:hover path,.chart .col:focus-visible path{filter:brightness(1.12)}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--ink-2);margin-bottom:10px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:12px;height:10px;border-radius:2px;display:inline-block}.legend i.line{height:2px;width:16px;border-radius:1px}.tip{position:absolute;z-index:5;pointer-events:none;background:var(--surface);border:1px solid var(--rule);border-radius:6px;box-shadow:0 6px 20px #1d2b3624;padding:8px 10px;min-width:160px;font-size:12.5px}.tip-title{color:var(--ink-2);margin-bottom:4px}.tip-row{display:flex;align-items:center;gap:8px}.tip-row i{width:12px;height:2px;border-radius:1px;display:inline-block}.tip-row b{font-variant-numeric:tabular-nums}.tip-row span{color:var(--ink-2)}.data tr.group td{font-weight:500}.data tr.child td:first-child{padding-left:26px;color:var(--ink-2)}@media (max-width: 640px){.main{padding:20px 16px 48px}.stage-row{grid-template-columns:1fr 1fr}.stage-row .stage-val{grid-column:1 / -1;text-align:left}.sbar-row{grid-template-columns:1fr 100px}.sbar-row .sbar-track{grid-column:1 / -1;grid-row:2}.chart-panel .panel-head{flex-wrap:wrap}}.grid>*,.stack>*{min-width:0}.chart-panel .data td:first-child,.chart-panel .data th:first-child{min-width:190px}.chart-panel .data td.num{white-space:nowrap}.signing{display:grid;gap:12px}.signing-row{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:center}@media (max-width: 700px){.signing-row{grid-template-columns:1fr}}label.check{display:inline-flex;gap:8px;align-items:center;font-size:13.5px;align-self:end;padding-bottom:9px;cursor:pointer}label.check input{width:auto}.log-group{background:var(--paper-2, rgba(0,0,0,.025));cursor:pointer}.log-group td{border-top:1px solid var(--rule)}.log-member td:first-child,.log-member td:nth-child(2){border-left:3px solid var(--rule)}.group-toggle{font:inherit;color:inherit;text-align:left;padding:0}.group-toggle .caret{display:inline-block;width:1em;color:var(--ink-2)}.src{font-size:13px}.timeline>li.corr .when{color:var(--warn)}.timeline .ev-kind{font-weight:600;font-size:13px}.timeline .changes{margin-top:4px}.row-reason{display:grid;gap:2px;margin-top:6px;min-width:200px}.row-reason textarea{font:inherit;font-size:13px}.row-reason textarea[aria-invalid=true]{border-color:var(--warn)}.replacement{border:1px solid var(--rule);border-radius:8px;padding:10px 12px;display:grid;gap:6px}.replacement.signed{border-color:var(--warn)}.replacement h4{margin:0;font-size:14px}.replacement .chg-name{color:var(--ink-2)}.replacement del{color:var(--warn)}.replacement ins{color:var(--accent);text-decoration:none}.points-cmp{border-collapse:collapse;margin-top:6px;font-size:12.5px}.points-cmp th,.points-cmp td{padding:2px 8px;border-bottom:1px solid var(--rule-2);text-align:right;white-space:nowrap}.points-cmp tbody th{text-align:left;font-weight:500;color:var(--ink-2)}.points-cmp tr.off td{font-weight:700;color:var(--warn)}.points-cmp tr.sum th,.points-cmp tr.sum td{border-top:1px solid var(--rule)}.warn-count{color:var(--warn);font-weight:600}.log-subhead td{padding-top:10px}.log-warning td{background:#c8780009}.ri.repeat{opacity:.85;font-style:italic}.repeat-note{font-weight:600;margin-bottom:2px}td.activity{max-width:360px;font-size:13px;color:var(--ink-2)}.ri.closed{opacity:.7}.ri.closed s{color:var(--ink-2)}.finding-status{font-size:12.5px;margin-top:3px;display:grid;gap:3px;color:var(--ink-2);font-style:normal}.finding-status.fs-accepted b{color:var(--ink-2)}.finding-status.fs-resolved b{color:var(--accent)}.fs-form{display:grid;gap:4px;max-width:420px}.fs-form textarea{font:inherit;font-size:13px}.finding-msg{max-width:420px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.analysis{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}.analysis.refreshing{opacity:.7}@media (max-width: 1100px){.analysis{grid-template-columns:1fr}}.an-controls{padding:4px 16px 16px;display:grid;gap:4px;position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto}.an-group{display:grid;gap:8px;padding:10px 0;border-bottom:1px solid var(--rule-2)}.an-group:last-child{border-bottom:0}.an-group h3{margin:6px 0 0;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);font-weight:600}.an-group select{width:100%}.an-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.an-dims{display:grid;gap:6px}.an-chip{display:flex;align-items:center;gap:2px;background:var(--accent-soft);border-radius:5px;padding:3px 4px 3px 10px;font-size:14px}.an-chip span{flex:1}button.icon{border:0;background:none;cursor:pointer;font:inherit;color:var(--ink-2);padding:2px 6px;border-radius:4px;line-height:1}button.icon:hover:not(:disabled){background:var(--rule-2);color:var(--ink)}button.icon:disabled{opacity:.3;cursor:default}.an-checks{display:grid;gap:4px}label.check{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--ink);cursor:pointer}label.check input{width:auto;margin:0}.an-filters{display:grid;gap:6px}.an-filter{border:1px solid var(--rule);border-radius:5px;font-size:14px}.an-filter summary{padding:6px 10px;cursor:pointer}.an-filter-body{padding:6px 10px 10px;display:grid;gap:4px;max-height:260px;overflow:auto;border-top:1px solid var(--rule-2)}.an-result{min-width:0}.an-result .panel-head{flex-wrap:wrap}.pivot th.rowhead{min-width:220px}.pivot th.grp{text-align:center;border-bottom:1px solid var(--rule);border-left:1px solid var(--rule-2)}.pivot th.sub{font-weight:500;font-size:12px}.pivot td.num,.pivot th.num{text-align:right}.pivot td{padding:0;white-space:nowrap}.pivot td.tot,.pivot th.tot{background:#f7f8f6}.pivot tbody th{font-weight:500;color:var(--ink);font-size:14px;white-space:nowrap;border-bottom:1px solid var(--rule-2)}.pivot tr.grp-row th,.pivot tr.grp-row td{font-weight:600}.pivot tr.total-row th,.pivot tr.total-row td{font-weight:700;border-top:2px solid var(--rule);background:#f7f8f6}.pivot td.chg{color:var(--ink-2)}.pivot button.cell{all:unset;display:block;padding:8px 12px;text-align:right;cursor:pointer;font-variant-numeric:tabular-nums}.pivot button.cell:hover{background:var(--accent-soft)}.pivot button.cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.pivot .toggle{margin-right:4px}.an-charts{display:grid;gap:20px}.an-charts.two{grid-template-columns:1fr 1fr}@media (max-width: 1300px){.an-charts.two{grid-template-columns:1fr}}.an-chart h3{margin:0 0 6px;font-size:14px}.an-notes{font-size:13px;color:var(--ink-2);white-space:normal;min-width:220px}dialog .table-wrap{max-height:50vh;overflow:auto}.row-kind{border:0;padding:0;margin:6px 0 0;display:grid;gap:2px}.row-kind legend{padding:0}.row-kind[aria-invalid=true] legend{color:var(--warn)}.pivot thead th.rowhead,.pivot tbody th{position:sticky;left:0;background:var(--surface);z-index:1;box-shadow:inset -1px 0 0 var(--rule-2)}.pivot tr.total-row th{background:#f7f8f6}dialog:has(.an-drill){width:min(1100px,95vw);max-width:none}dialog:has(.an-drill) .dlg-body{max-height:72vh;overflow:auto}.row-kind label.check{font-size:13px;align-items:flex-start;gap:6px}.row-kind input[type=radio]{width:14px;height:14px;flex:none;margin:2px 0 0;padding:0}.nav a.ext{color:var(--ink-2);font-size:14px}.guide{min-height:100%;background:var(--paper)}.guide-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 28px;background:var(--surface);border-bottom:1px solid var(--rule)}.guide-head>div:first-child{display:grid}.guide-head span{color:var(--ink-2);font-size:13px}.guide-head .actions{align-items:center}.guide-body{display:grid;grid-template-columns:240px minmax(0,860px);gap:36px;justify-content:center;padding:28px}.guide-toc{position:sticky;top:76px;align-self:start;display:grid;gap:2px;font-size:14px;max-height:calc(100vh - 100px);overflow:auto}.guide-toc b{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);margin-bottom:6px}.guide-toc b.dl{margin-top:18px}.guide-toc a{padding:4px 8px;border-radius:5px;color:var(--ink)}.guide-toc a:hover{background:var(--rule-2);text-decoration:none}.guide-text{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:28px 40px 40px;line-height:1.6;font-size:15.5px}.guide-text h1{font-size:28px;margin:0 0 12px;line-height:1.25}.guide-text h2{font-size:21px;margin:40px 0 10px;padding-top:18px;border-top:1px solid var(--rule-2);scroll-margin-top:80px}.guide-text h3{font-size:16.5px;margin:24px 0 6px;scroll-margin-top:80px}.guide-text p{margin:8px 0}.guide-text ul,.guide-text ol{padding-left:22px;margin:8px 0}.guide-text li{margin:4px 0}.guide-text code{background:var(--rule-2);border-radius:4px;padding:1px 5px;font-size:13.5px}.guide-text pre{background:var(--ink);color:#fff;border-radius:var(--radius);padding:12px 16px;overflow:auto}.guide-text pre code{background:none;color:inherit;padding:0}.guide-text a.file{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px;background:var(--accent-soft);border-radius:4px;padding:1px 6px}.guide-text table{border-collapse:collapse;width:100%;margin:10px 0 14px;font-size:14px;display:block;overflow-x:auto}.guide-text th,.guide-text td{border-bottom:1px solid var(--rule-2);padding:7px 10px;text-align:left;vertical-align:top}.guide-text th{color:var(--ink-2);font-weight:600;border-bottom-color:var(--rule);white-space:nowrap}@media (max-width: 900px){.guide-body{grid-template-columns:1fr;padding:16px}.guide-toc{position:static}.guide-text{padding:20px}}@media print{.guide-head .actions,.guide-toc{display:none}.guide-head{position:static}.guide-body{display:block;padding:0}.guide-text{border:0;padding:0}.guide-text h2{break-after:avoid}}.chart .hoverband{fill:var(--ink);opacity:.04}.an-chart-opts{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.an-chart-opts .seg button:disabled{opacity:.45;cursor:not-allowed}.an-panel+.an-panel{margin-top:18px;padding-top:14px;border-top:1px solid var(--rule-2)}button.linkish{all:unset;color:var(--accent);cursor:pointer;text-decoration:underline}.axis-title .tick{fill:var(--ink-2);font-size:11.5px}.btn.danger{color:var(--warn);border-color:#e3b7ad}.btn.danger:hover{background:var(--warn-soft)}dialog .btn.danger{background:var(--warn);color:#fff;border-color:var(--warn)}td.actions{justify-content:flex-start;flex-wrap:nowrap}
