/* round 9 (psload), built by its owner agent: existing variables only. PS-04 Load vs capacity. */
.psl .psl-wrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}
.psl .psl-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.psl .psl-card{padding:12px 14px;min-width:0}
.psl .psl-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.psl .psl-head h3{margin:0;font-size:16px} .psl .psl-head h3 .small{font-weight:500;margin-left:6px}
.psl .psl-head .sp{flex:1}
.psl .psl-lg{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--ink3);flex:0 0 auto;white-space:nowrap}
.psl .psl-lg{display:inline-flex;flex-direction:row;gap:10px} .psl .psl-lgi{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.psl .psl-lg i{display:inline-block;width:12px;height:10px;border-radius:2px;border:1px solid var(--rule);flex:0 0 auto}
.psl .psl-scroll{overflow-x:auto}
.psl .psl-grid{border-collapse:separate;border-spacing:3px;width:100%;min-width:720px;table-layout:fixed}
.psl .psl-grid th,.psl .psl-grid td{border:0;padding:0;background:none}
.psl .psl-grid thead th{text-transform:none;letter-spacing:normal;font-size:12px;text-align:center;padding:2px 0 4px;color:var(--ink3);font-weight:500}
.psl .psl-grid thead th b{display:block;color:var(--ink);font-size:12.5px} .psl .psl-grid thead th span{font-family:var(--font);font-size:11px;font-variant-numeric:tabular-nums}
.psl .psl-grid thead th.cur b{color:var(--red)}
.psl .psl-grid .psl-cellh{text-align:left;width:190px;font-size:11px;line-height:1.25;white-space:normal}
.psl .psl-grid .psl-name{text-transform:none;letter-spacing:normal;text-align:left;font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:6px}
.psl .psl-name .dot{margin-right:6px}
.psl tr.psl-bn .psl-name{color:var(--red)}
.psl .psl-sq,.psl .psl-tot{font-weight:400;text-align:center;font-family:var(--font);font-variant-numeric:tabular-nums;font-size:12px;border-radius:5px;height:26px;cursor:pointer;color:var(--ink);border:1px solid transparent;transition:box-shadow .12s}
.psl .psl-sq span,.psl .psl-tot span{font-weight:700;color:inherit} .psl .psl-sq small,.psl .psl-tot small{font-weight:400;font-size:11px;color:var(--ink3)}
.psl .psl-sq:hover,.psl .psl-sq:focus-visible{box-shadow:0 0 0 2px var(--ink2);outline:0}
.psl .psl-sq.on{box-shadow:0 0 0 2px var(--ink);border-color:var(--ink)}
.psl .psl-up{font-style:normal;font-size:11px;margin-right:2px}
.psl .psl-tot{cursor:default;height:36px;line-height:1.15;white-space:nowrap;font-family:var(--font);font-variant-numeric:tabular-nums}
.psl .psl-head .card-m{font-size:12px;color:var(--ink2)} .psl .psl-note{font-size:12px;cursor:help} .psl .psl-tot em{display:block;font-style:normal;font-size:11px;color:var(--ink3)}
.psl .psl-grid tfoot th{padding-top:6px}
/* heat: under 50 · 50–70 · 70–85 · 85–100 · over 100 */
.psl .psl-sq.psl-h0,.psl .psl-tot.psl-h0,.psl .psl-lg i.psl-h0{background:var(--paper2)}
.psl .psl-sq.psl-h1,.psl .psl-tot.psl-h1,.psl .psl-lg i.psl-h1{background:color-mix(in srgb,var(--amber) 14%,var(--paper))}
.psl .psl-sq.psl-h2,.psl .psl-tot.psl-h2,.psl .psl-lg i.psl-h2{background:color-mix(in srgb,var(--amber) 30%,var(--paper))}
.psl .psl-sq.psl-h3,.psl .psl-tot.psl-h3,.psl .psl-lg i.psl-h3{background:color-mix(in srgb,var(--amber) 55%,var(--paper))}
.psl .psl-sq.psl-h4,.psl .psl-tot.psl-h4,.psl .psl-lg i.psl-h4{background:color-mix(in srgb,var(--red) 22%,var(--paper));color:var(--red)}
.psl .psl-sq.psl-hz,.psl .psl-tot.psl-hz{background:var(--paper2)}
.psl .psl-sq.psl-h4 small{color:var(--red)} .psl .psl-sq.psl-hz{color:var(--ink3);opacity:.7}
.psl .psl-sq.psl-h4.on{background:var(--red);color:var(--on-accent,#fff)} .psl .psl-sq.psl-h4.on small{color:inherit}
.psl .psl-note{margin:8px 0 0}
/* side panel */
.psl .psl-side{position:sticky;top:10px;padding:12px 14px;max-height:calc(100vh - 90px);overflow:auto}
.psl .psl-sidehd{position:relative;padding-bottom:8px;border-bottom:1px solid var(--rule)}
.psl .psl-sidehd h3{margin:2px 0 2px;font-size:18px} .psl .psl-x{position:absolute;right:0;top:0}
.psl .psl-big{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:8px} .psl .psl-big b{font-size:26px} .psl .psl-big .mono{font-family:var(--font);font-size:12.5px;font-variant-numeric:tabular-nums}
.psl .psl-sec{padding:8px 0;border-bottom:1px solid var(--rule)} .psl .psl-sec:last-of-type{border-bottom:0}
.psl .psl-sech{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.04em;color:var(--ink3);font-weight:600;margin-bottom:4px}
.psl .psl-ord{padding:5px 0;border-bottom:1px dashed var(--rule2)} .psl .psl-ord:last-child{border-bottom:0}
.psl .psl-ord1{display:flex;align-items:center;gap:8px} .psl .psl-ord1 .linkish{font-family:var(--mono);font-weight:700;font-size:12.5px;background:none;border:0;padding:0;color:var(--ink);cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.psl .psl-ord1 .linkish:hover{color:var(--link);text-decoration:underline}
.psl .psl-bar{flex:1;height:5px;border-radius:3px;background:var(--grey-l);overflow:hidden} .psl .psl-bar i{display:block;height:100%;background:var(--blue)}
.psl .psl-ord1 b{font-size:12px;white-space:nowrap}
.psl .psl-ord2{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink3);margin-top:2px} .psl .psl-ord2 span:first-child{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.psl .psl-ord2 .pill{font-size:11px;padding:1px 6px}
.psl .psl-fix{border:1px solid var(--rule);border-radius:8px;padding:8px 10px;margin:6px 0}
.psl .psl-fix.best{border-color:var(--green)} .psl .psl-fix.soon{opacity:.8}
.psl .psl-fixh{display:flex;align-items:center;gap:8px} .psl .psl-fixh b{flex:1;font-size:13.5px}
.psl .psl-fix p{margin:5px 0}
.psl .psl-imp{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:11.5px} .psl .psl-imp .mono{font-family:var(--font);font-variant-numeric:tabular-nums}
.psl .psl-late{background:color-mix(in srgb,var(--green) 18%,var(--paper));color:var(--ink);border-radius:4px;padding:1px 7px;font-family:var(--font);font-weight:700;font-variant-numeric:tabular-nums}
.psl .psl-pad{margin:6px 0}
.psl .psl-empty{max-width:640px}
/* bottleneck chart */
.psl .psl-svg{width:100%;height:auto;display:block}
.psl .psl-svg .psl-gl{stroke:var(--rule);stroke-width:1} .psl .psl-svg .psl-yt{font-size:12px;fill:var(--ink3);font-family:var(--font)}
.psl .psl-svg .psl-in{fill:var(--blue)} .psl .psl-svg .psl-ov{fill:var(--red)}
.psl .psl-svg .psl-capl{stroke:var(--ink);stroke-width:2;stroke-dasharray:6 4}
.psl .psl-svg .psl-bv{font-size:13px;font-weight:700;fill:var(--ink);font-family:var(--font)} .psl .psl-svg .psl-bv.red{fill:var(--red)}
.psl .psl-svg .psl-wx{font-size:12.5px;fill:var(--ink2)} .psl .psl-svg .psl-wx.on{font-weight:700;fill:var(--ink)}
.psl .psl-svg .psl-cb{cursor:pointer} .psl .psl-svg .psl-cb:hover .psl-in{opacity:.85}
.psl .psl-lg i.psl-lin{background:var(--blue);border-color:var(--blue)} .psl .psl-lg i.psl-lov{background:var(--red);border-color:var(--red)} .psl .psl-lg i.psl-lcap{border:0;border-top:2px dashed var(--ink);height:0;border-radius:0}
/* tablet */
@media (max-width:1280px){.psl .psl-wrap{grid-template-columns:minmax(0,1fr) 300px}}
@media (max-width:1100px){.psl .psl-wrap{grid-template-columns:1fr}.psl .psl-side{position:static;max-height:none}}

/* dark: stronger amber steps so the numbers stay readable */
:root[data-theme="dark"] .psl .psl-sq.psl-h1,:root[data-theme="dark"] .psl .psl-tot.psl-h1{background:color-mix(in srgb,var(--amber) 16%,var(--paper))}
:root[data-theme="dark"] .psl .psl-sq.psl-h2,:root[data-theme="dark"] .psl .psl-tot.psl-h2{background:color-mix(in srgb,var(--amber) 28%,var(--paper))}
:root[data-theme="dark"] .psl .psl-sq.psl-h3,:root[data-theme="dark"] .psl .psl-tot.psl-h3{background:color-mix(in srgb,var(--amber) 42%,var(--paper))}
:root[data-theme="dark"] .psl .psl-sq.psl-h4,:root[data-theme="dark"] .psl .psl-tot.psl-h4{background:color-mix(in srgb,var(--red) 30%,var(--paper))}
.psl .psl-sq,.psl .psl-tot{color:var(--ink)} .psl .psl-sq.psl-h4,.psl .psl-tot.psl-h4{color:var(--red)}
@media (max-width:900px){.psl .psl-sq,.psl .psl-tot{font-size:11px}.psl .psl-grid .psl-cellh{width:128px}.psl .psl-grid{min-width:680px}.psl .psl-tot small{display:block}}
