:root{--bg:#f4f6f8;--bg2:#eef1f4;--surface:#ffffff;--surface-2:#f1f4f7;--ink:#16202b;--ink-2:#43535f;--ink-3:#7a8894;--line:#e2e7ec;--line-2:#cfd7de;--teal:#0e8a86;--teal-ink:#0a6360;--teal-soft:#e0f2f0;--pass:#1f9d57;--warn:#c07f12;--fail:#d24b3e;--run:#4b56c9;--shadow:0 1px 2px rgba(16,32,43,.04),0 6px 20px rgba(16,32,43,.06)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:radial-gradient(1000px 460px at 82% -12%,rgba(14,138,134,.06),transparent 60%),var(--bg);color:var(--ink);font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh}.mono{font-family:IBM Plex Mono,ui-monospace,monospace}a{color:inherit;text-decoration:none}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;gap:14px;padding:14px 28px;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px}.brand .logo{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(145deg,var(--teal),#0b6f6b);color:#fff;font-weight:800;font-size:16px;box-shadow:0 4px 12px rgba(14,138,134,.28)}.brand .name{font-family:Sora,sans-serif;font-weight:700;font-size:16px;letter-spacing:-.01em}.brand .sub{color:var(--ink-3);font-size:12px;font-family:IBM Plex Mono,monospace}.topbar .spacer{flex:1 1}.topbar .env{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--teal-ink);background:var(--teal-soft);border:1px solid rgba(14,138,134,.25);border-radius:20px;padding:3px 10px}.wrap{max-width:1120px;margin:0 auto;padding:28px 28px 80px}.h-row{display:flex;align-items:baseline;justify-content:space-between;margin:32px 0 14px}.h-row h2{font-family:Sora,sans-serif;font-weight:600;font-size:18px;margin:0;letter-spacing:-.01em}.h-row .count{color:var(--ink-3);font-size:13px;font-family:IBM Plex Mono,monospace}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px;margin-top:8px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--stripe,var(--teal))}.stat .v{font-family:Sora,sans-serif;font-weight:700;font-size:30px;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink)}.stat .k{color:var(--ink-3);font-size:12px;margin-top:6px;font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.05em}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:12px;gap:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 16px 14px;box-shadow:var(--shadow);transition:border-color .15s,box-shadow .15s,transform .15s;cursor:pointer}.card:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:0 2px 4px rgba(16,32,43,.05),0 14px 30px rgba(16,32,43,.1)}.card .top{display:flex;align-items:center;gap:9px;margin-bottom:12px}.card .swatch{width:10px;height:10px;border-radius:3px;flex:0 0 auto}.card .pname{font-family:Sora,sans-serif;font-weight:600;font-size:15px;flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{font-family:IBM Plex Mono,monospace;font-size:10.5px;padding:2px 8px;border-radius:20px;border:1px solid var(--b,var(--line-2));color:var(--c,var(--ink-2));background:var(--bg2);white-space:nowrap}.card .foot{display:flex;justify-content:space-between;margin-top:14px;padding-top:11px;border-top:1px solid var(--line)}.cap,.card .foot{align-items:center}.cap{display:inline-flex;gap:6px;font-size:11.5px;color:var(--ink-3)}.dot{width:7px;height:7px;border-radius:50%;background:var(--line-2)}.cap.ok{color:var(--teal-ink)}.cap.ok .dot{background:var(--teal);box-shadow:0 0 7px rgba(14,138,134,.5)}.card .go{font-size:12px;color:var(--ink-3);font-family:IBM Plex Mono,monospace}.card:hover .go{color:var(--teal-ink)}.runs{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}.run{display:grid;grid-template-columns:78px 1fr auto;grid-gap:14px;gap:14px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--line)}.run:last-child{border-bottom:none}.run:hover{background:var(--surface-2)}.pill{justify-self:start;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;text-transform:uppercase;padding:3px 10px;border-radius:20px;letter-spacing:.04em}.pill.pass{color:var(--pass);background:rgba(31,157,87,.1);border:1px solid rgba(31,157,87,.3)}.pill.warn{color:var(--warn);background:rgba(192,127,18,.1);border:1px solid rgba(192,127,18,.3)}.pill.fail{color:var(--fail);background:rgba(210,75,62,.1);border:1px solid rgba(210,75,62,.3)}.pill.running{color:var(--run);background:rgba(75,86,201,.1);border:1px solid rgba(75,86,201,.3)}.run .mid{min-width:0}.run .rtype{font-family:IBM Plex Mono,monospace;font-size:12.5px;color:var(--ink)}.run .rmeta{font-size:12px;color:var(--ink-3);margin-top:2px;display:flex;gap:10px;flex-wrap:wrap}.sev{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sev.p{color:var(--pass)}.sev.w{color:var(--warn)}.sev.f{color:var(--fail)}.run .rtime{color:var(--ink-3);font-size:11.5px;font-family:IBM Plex Mono,monospace;white-space:nowrap}.empty{padding:40px;text-align:center;color:var(--ink-3);font-size:14px}.empty .big{font-size:15px;color:var(--ink-2);margin-bottom:4px}.banner{border:1px solid rgba(210,75,62,.35);background:rgba(210,75,62,.07);color:var(--fail);border-radius:12px;padding:12px 16px;font-size:13px;margin-bottom:8px}.banner a{color:var(--teal-ink);text-decoration:underline}.skel{background:linear-gradient(90deg,var(--surface),var(--surface-2),var(--surface));background-size:200% 100%;animation:sk 1.2s infinite;border-radius:14px;height:96px;border:1px solid var(--line)}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}.back{display:inline-flex;align-items:center;gap:6px;color:var(--ink-3);font-size:13px;font-family:IBM Plex Mono,monospace;margin-bottom:14px}.back:hover{color:var(--teal-ink)}.phead{gap:12px;margin-bottom:6px}.phead h1{font-family:Sora,sans-serif;font-size:26px;font-weight:700;letter-spacing:-.02em}.phead .badge{font-size:12px}.status-tag{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px}.status-tag.done{color:#fff;background:var(--pass)}.status-tag.rej{color:#fff;background:var(--fail)}.status-tag.none{color:var(--ink-3);background:var(--bg2);border:1px solid var(--line)}.btn{font-family:IBM Plex Sans,sans-serif;font-size:13px;font-weight:600;border-radius:9px;padding:8px 14px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);cursor:pointer;transition:.12s}.btn:hover{border-color:var(--teal);color:var(--teal-ink)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff}.btn.primary:hover{background:#0b6f6b;color:#fff}.btn.sm{font-size:12px;padding:6px 11px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 22px}.tasklist{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}.trow{display:grid;grid-template-columns:1fr auto auto;grid-gap:12px;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.trow:last-child{border-bottom:none}.trow:hover{background:var(--surface-2)}.trow .tn{font-size:13px;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trow .tn,.trow .tstatus{font-family:IBM Plex Mono,monospace}.trow .tstatus{font-size:11px;color:var(--ink-3)}.panel{margin-top:22px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.panel .ph{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--surface-2)}.panel .ph .t{font-family:Sora,sans-serif;font-weight:600;font-size:14px}.summary{display:flex;gap:8px}.chip{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px}.chip.p{color:var(--pass);background:rgba(31,157,87,.1)}.chip.w{color:var(--warn);background:rgba(192,127,18,.1)}.chip.f{color:var(--fail);background:rgba(210,75,62,.1)}.finding{display:grid;grid-template-columns:64px 1fr;grid-gap:12px;gap:12px;padding:11px 18px;border-bottom:1px solid var(--line);align-items:start}.finding:last-child{border-bottom:none}.fsev{font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:6px;justify-self:start}.fsev.pass{color:var(--pass);background:rgba(31,157,87,.12)}.fsev.warn{color:var(--warn);background:rgba(192,127,18,.12)}.fsev.fail{color:var(--fail);background:rgba(210,75,62,.12)}.fmsg{font-size:13.5px;color:var(--ink)}.fmeta{font-size:11.5px;color:var(--ink-3);font-family:IBM Plex Mono,monospace;margin-top:2px}.previmg{max-width:100%;border-radius:10px;border:1px solid var(--line);display:block}.spin{display:inline-block;width:14px;height:14px;border:2px solid var(--line-2);border-top-color:var(--teal);border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px}@keyframes sp{to{transform:rotate(1turn)}}.section-done{margin-top:40px}.section-done .h-row h2{color:var(--ink-2)}details.done-wrap{border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}details.done-wrap>summary{cursor:pointer;list-style:none;padding:14px 18px;font-family:IBM Plex Mono,monospace;font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:10px}details.done-wrap>summary::-webkit-details-marker{display:none}details.done-wrap>summary .cnt{color:var(--ink-3)}details.done-wrap .grid{padding:0 14px 14px}.card.dim{opacity:.72}.card .stnib{margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:700;color:#fff;background:var(--pass);padding:2px 7px;border-radius:20px}.plist{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}.prow{display:grid;grid-template-columns:14px minmax(0,1fr) auto auto 64px;grid-gap:14px;gap:14px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--line);transition:background .12s}.prow:last-child{border-bottom:none}.prow:hover{background:var(--surface-2)}.prow.dim{opacity:.66}.prow .sw{width:11px;height:11px;border-radius:3px}.prow .pn{font-family:Sora,sans-serif;font-weight:600;font-size:14.5px;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prow .pcap{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3);white-space:nowrap}.prow .pcap.ok{color:var(--teal-ink)}.prow .pcap.ok .dot{background:var(--teal)}.prow .pcap.done{color:var(--pass);font-weight:600}.prow .pcap.done .dot{background:var(--pass)}.prow .parrow{justify-self:end;font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--ink-3)}.prow:hover .parrow{color:var(--teal-ink)}@media(max-width:640px){.prow{grid-template-columns:14px minmax(0,1fr) auto}.prow .parrow,.prow .pcap{display:none}}.wrap.full{max-width:none;margin:0;padding-left:28px;padding-right:28px}.split{display:grid;grid-template-columns:300px 170px minmax(0,1fr);grid-gap:14px;gap:14px;align-items:start}.pane-m{position:-webkit-sticky;position:sticky;top:16px}.pane-m .tasklist{max-height:calc(100vh - 240px);overflow-y:auto}.frow{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;padding:6px 10px;background:none;border:0;border-bottom:1px solid var(--line);cursor:pointer;font:inherit;text-align:left}.frow:last-child{border-bottom:none}.frow.on,.frow:hover{background:var(--surface-2)}.frow.on{box-shadow:inset 2px 0 0 var(--brand,#0d9488)}.frow.bad .fn{color:#b4231a}.frow .fn{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--ink);white-space:nowrap}.pane-l{position:-webkit-sticky;position:sticky;top:16px}.pane-l .tasklist{max-height:calc(100vh - 190px);overflow-y:auto}.pane-r{min-width:0;display:grid;grid-gap:16px;gap:16px}.split .trow{display:block}.split .trow.on{background:var(--surface-2)}.split .tmain{display:flex;align-items:baseline;gap:8px;min-width:0}.split .tmain .tn{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.split .tacts{display:flex;gap:6px;margin-top:8px}.split .tacts .btn{flex:1 1}.pane-r .previmg{width:100%;height:auto}@media (max-width:1200px){.split{grid-template-columns:260px 150px minmax(0,1fr)}}@media (max-width:900px){.split{grid-template-columns:1fr}.pane-l,.pane-m{position:static}.pane-l .tasklist{max-height:none}}.trow2{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;grid-gap:8px;gap:8px;align-items:center;width:100%;text-align:left;padding:7px 12px;background:none;border:0;border-bottom:1px solid var(--line);cursor:pointer;font:inherit}.trow2:last-child{border-bottom:none}.trow2.on,.trow2:hover{background:var(--surface-2)}.trow2.on{box-shadow:inset 2px 0 0 var(--brand,#0d9488)}.trow2:disabled{opacity:.55;cursor:default}.trow2 .tn{font-family:IBM Plex Mono,monospace;font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trow2 .tstatus{font-size:11px;color:var(--ink-3);white-space:nowrap}.trow2 .ico{font-size:13px;opacity:.55;padding:0 2px}.trow2 .ico:hover{opacity:1}.mini{display:flex;gap:4px;align-items:center}.mini b{font-size:11px;font-weight:600;padding:1px 6px;border-radius:999px;line-height:1.5}.mini b.f{color:#b4231a;background:#fdeceb}.mini b.w{color:#8a5a00;background:#fdf3e0}.mini b.p{color:#0a7a52;background:#e6f5ef}.mini b.n{color:var(--ink-3);background:transparent;padding:1px 4px}.toolbar .search{height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:13px;color:var(--ink);min-width:180px}.toolbar .search:focus{outline:none;border-color:var(--brand,#0d9488)}.toolbar .chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2)}.toolbar .spacer{flex:1 1}.pbar{height:3px;background:var(--line);border-radius:999px;overflow:hidden;margin:-4px 0 14px}.pbar i{display:block;height:100%;background:var(--brand,#0d9488);transition:width .2s}.pane-l .tasklist{max-height:calc(100vh - 240px)}.toolbar select.search{min-width:110px;cursor:pointer}.trow2 .tstatus{min-width:44px;text-align:right}.finding.clickable{cursor:pointer}.finding.clickable:hover{background:var(--surface-2)}.fmeta .seeimg{margin-left:8px;color:var(--brand,#0d9488);font-weight:600}.topbar{padding:8px 20px}.topbar .sub{display:none}.wrap.full{padding-top:14px}.phead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}.phead h1{font-size:20px;margin:0}.phead .back1{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line);color:var(--ink-2);text-decoration:none;font-size:15px}.phead .back1:hover{border-color:var(--brand,#0d9488);color:var(--brand,#0d9488)}.phead .hsum{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--ink-3)}.phead .spacer{flex:1 1}.toolbar{margin:0 0 12px}.btn.sm{height:28px;padding:0 10px;font-size:12.5px}.pane-r .panel .previmg{max-height:340px;width:auto;max-width:100%;margin:0 auto}.ph .zoomer{display:flex;gap:4px;align-items:center;margin-left:auto}.ph .zoomer .btn.sm{padding:2px 8px}.ph .zoomer .btn.sm.on{background:var(--accent,#2b6cb0);color:#fff;border-color:transparent}.ph .zoomer a.btn{text-decoration:none;line-height:1.6}.pane-r .panel .previmg{max-height:none;width:100%;height:auto}.fdgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;padding:12px}.fdgrid .fdcell.boundary,.fdgrid .fdcell.seg{grid-column:span 1}.fdgrid .fdcell.height{grid-column:span 2}@media (max-width:1100px){.fdgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.fdgrid .fdcell.height{grid-column:span 2}}.custview{border-top:1px solid var(--line);margin-top:4px}.custbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px 0}.custbar .t{font-weight:600}.custbar .cap{margin-left:0}.custbar .btn{margin-left:auto}.custerr{margin:8px 12px 0;padding:8px 10px;border-radius:6px;background:var(--bad-bg,rgba(220,60,60,.12));color:var(--bad,#e05252);font-size:12px}.custgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.36fr);grid-gap:12px;gap:12px;padding:12px}@media (max-width:1100px){.custgrid{grid-template-columns:minmax(0,1fr)}}.custbar.sub{padding-top:6px}.custbar.sub .btn{margin-left:0}.custsel{font-size:12px;padding:2px 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface,#fff);color:var(--ink)}.custbadge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}.custbadge.warn{background:rgba(224,140,40,.15);color:#b45f06}.custempty{margin:12px;padding:28px;border:1px dashed var(--line-2);border-radius:10px;text-align:center;color:var(--ink-2);font-size:13px}.zoomwrap{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#0d1526}.zoombar{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--surface-2);border-bottom:1px solid var(--line)}.zoombar .zt{font-size:12.5px;font-weight:600;color:var(--ink)}.zoombar .zbtns{display:flex;gap:4px;align-items:center}.zoombar .zs{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-3);min-width:38px;text-align:right}.zview{position:relative;display:flex;align-items:center;justify-content:center;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;overscroll-behavior:contain}.zview img{display:block;transition:transform .05s linear;will-change:transform}.zview .zempty{color:#9fb4d8;font-size:12px}.fixpanel .fixbody{display:grid;grid-template-columns:minmax(200px,300px) 1fr;grid-gap:14px;gap:14px;padding:12px}.fixcrop img{width:100%;max-height:360px;object-fit:contain;background:#0b0f15;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.fixmeta{margin-top:6px;font-size:11.5px;opacity:.75}.famtabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.famtabs .btn.on{outline:2px solid #4f8cff}.tsgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));grid-gap:6px;gap:6px;max-height:380px;overflow:auto;padding:2px}.tsopt{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 3px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(255,255,255,.03);cursor:pointer;color:inherit;font-size:10.5px}.tsopt img{width:64px;height:64px;object-fit:contain;background:#fff;border-radius:6px}.tsopt:hover{border-color:rgba(79,140,255,.6)}.tsopt.on{border-color:#4f8cff;background:rgba(79,140,255,.18);box-shadow:0 0 0 2px rgba(79,140,255,.45)}.fixfoot{gap:10px;margin-top:10px;flex-wrap:wrap}.fixfoot,.fixfoot .chk{display:flex;align-items:center}.fixfoot .chk{gap:6px;font-size:12px;opacity:.85}.fixfoot .ferr{color:#ff7b72;font-size:12px}.v3d{display:flex;flex-direction:column;min-height:520px}.v3d-body{display:grid;grid-template-columns:1fr 260px;min-height:480px}.v3d-canvas{position:relative;min-height:480px}.v3d-canvas canvas{display:block;width:100%!important;height:100%!important}.v3d-busy{top:8px;z-index:2;font-size:12px;color:#fff;background:rgba(0,0,0,.5);padding:4px 8px;border-radius:6px}.v3d-busy,.v3d-hint{position:absolute;left:8px}.v3d-hint{bottom:6px;font-size:11px;color:rgba(255,255,255,.55);pointer-events:none}.v3d-list{border-left:1px solid var(--line,#e6e6e6);overflow-y:auto;max-height:560px;padding:6px}.orow{display:grid;grid-template-columns:12px 1fr;grid-column-gap:8px;column-gap:8px;width:100%;text-align:left;padding:6px 8px;border:1px solid transparent;border-radius:8px;background:transparent;cursor:pointer;font:inherit}.orow:hover{background:rgba(0,0,0,.04)}.orow.on{border-color:var(--accent,#0e8a8a);background:rgba(14,138,138,.08)}.orow .sw{width:12px;height:12px;border-radius:3px;margin-top:3px;border:1px solid rgba(0,0,0,.2);grid-row:span 2}.orow .on-l{font-size:12px;font-weight:600}.orow .on-i{font-size:10.5px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line);margin:10px 0 0}.tabs>button{font:600 13.5px IBM Plex Sans,sans-serif;background:none;border:none;border-bottom:2px solid transparent;padding:9px 14px;color:var(--ink-3);cursor:pointer}.tabs>button.on{color:var(--ink);border-bottom-color:var(--teal)}.tabs>button i{font-style:normal;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-3);margin-left:4px}.iss-bar .spacer,.jobs-head .spacer,.jr-top .spacer,.tabs .spacer{flex:1 1}.chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.chipbtn{font:500 12px IBM Plex Sans,sans-serif;padding:4px 11px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);cursor:pointer}.chipbtn.on{background:var(--teal-soft);border-color:rgba(14,138,134,.45);color:var(--teal-ink)}.chipbtn:disabled{opacity:.4;cursor:default}.pick{flex:none;width:15px;height:15px;border:1.5px solid var(--line-2);border-radius:4px;display:grid;place-items:center;font-size:11px;line-height:1;color:#fff;background:var(--surface)}.pick.on{background:var(--teal);border-color:var(--teal)}.pickall{font-family:IBM Plex Sans,sans-serif;font-size:12px;margin-right:8px;cursor:pointer}.stale{font-size:10px;color:var(--warn);border:1px solid rgba(192,127,18,.4);padding:0 4px}.stale,.vlmb{border-radius:4px;white-space:nowrap}.vlmb{font:600 10px IBM Plex Mono,monospace;color:#6b3fc0;background:#efe9fb;padding:1px 4px}.split{grid-template-columns:340px 170px minmax(0,1fr)}.hint{color:var(--ink-3);font-size:12px}.hint.bad,.vlmstat.bad{color:var(--fail)}.dlg-back{position:fixed;inset:0;background:rgba(16,32,43,.45);z-index:50;display:grid;place-items:center;padding:20px}.dlg{width:min(560px,100%);max-height:90vh;overflow:auto;background:var(--surface);border-radius:16px;padding:22px 24px;box-shadow:0 20px 60px rgba(16,32,43,.3)}.dlg h3{font-family:Sora,sans-serif;font-size:18px;margin:0 0 14px}.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:10px;overflow:hidden;margin-bottom:6px}.seg button{font:600 13px IBM Plex Sans,sans-serif;border:none;background:var(--surface);padding:7px 16px;cursor:pointer;color:var(--ink-2)}.seg button.on{background:var(--teal);color:#fff}.dlg-sec{margin-top:14px}.dlg-sec .lb,.iss-l .lb{font-size:11.5px;font-weight:600;color:var(--ink-3);margin-bottom:6px;letter-spacing:.02em}.rad{display:flex;gap:7px;align-items:baseline;font-size:13px;margin:5px 0;cursor:pointer}.num{width:64px;font:13px IBM Plex Mono,monospace;padding:3px 6px;border:1px solid var(--line-2);border-radius:6px}.est{margin-top:16px;padding:10px 12px;background:var(--surface-2);border-radius:10px;font-size:13px}.dlg-foot{justify-content:flex-end;gap:8px}.dlg-foot,.jobs{display:flex;margin-top:16px}.jobs{flex-direction:column;gap:10px}.jobs-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.vlmstat{font:12px IBM Plex Mono,monospace;color:var(--ink-3)}.jobrow{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 14px;box-shadow:var(--shadow)}.jr-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.kind{font:600 10.5px IBM Plex Mono,monospace;padding:2px 7px;border-radius:5px;background:var(--surface-2);color:var(--ink-2)}.kind.vlm{background:#efe9fb;color:#6b3fc0}.jn{font-weight:600;font-size:13.5px}.jst{font-size:12px;color:var(--ink-3)}.jst.collecting,.jst.preparing,.jst.running{color:var(--run)}.jst.done{color:var(--pass)}.jst.failed{color:var(--fail)}.jst.submitted{color:var(--warn)}.jr-sub{font-size:12px;color:var(--ink-2);margin-top:6px}.jr-sub .when{float:right;color:var(--ink-3);font-family:IBM Plex Mono,monospace;font-size:11px}.jobrow .pbar{margin:8px 0 0}.issues{display:grid;grid-template-columns:230px minmax(0,1fr) 360px;grid-gap:14px;gap:14px;margin-top:16px;align-items:start}.iss-l,.iss-r{position:-webkit-sticky;position:sticky;top:76px}.grow{display:flex;justify-content:space-between;gap:8px;width:100%;text-align:left;font:13px IBM Plex Sans,sans-serif;padding:6px 9px;border:none;border-radius:8px;background:none;cursor:pointer;color:var(--ink)}.grow.on,.grow:hover{background:var(--surface-2)}.grow.on{box-shadow:inset 2px 0 0 var(--teal)}.grow span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grow span.mono{font-size:11.5px}.grow b{font:600 12px IBM Plex Mono,monospace;white-space:nowrap}.grow b i{font-style:normal;color:var(--ink-3);font-weight:400}.grow em{font-style:normal;margin-left:5px}.grow em.f{color:var(--fail)}.grow em.w{color:var(--warn)}.iss-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px;font-size:13.5px}.igrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:10px;gap:10px}.icard{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:7px;cursor:pointer;font-family:IBM Plex Sans,sans-serif}.icard.on{border-color:var(--teal);box-shadow:0 0 0 2px rgba(14,138,134,.25)}.icard.done{opacity:.55}.icard img{width:100%;height:130px;object-fit:contain;background:#0d1526;border-radius:8px;display:block}.ic-t{font-size:12.5px;margin-top:6px;font-weight:600}.ic-t .from{color:var(--ink-3);font-weight:500}.to{color:var(--warn)}.ic-t i,.kv i{font-style:normal;color:var(--ink-3);font-weight:400;font-size:11.5px}.ic-r{font-size:11.5px;color:var(--ink-2);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ic-m{font:10.5px IBM Plex Mono,monospace;color:var(--ink-3);margin-top:4px}.ic-m em{font-style:normal;color:var(--pass)}.bigimg{width:100%;max-height:340px;object-fit:contain;background:#0d1526;border-radius:10px;display:block;margin-bottom:10px}.kv{display:grid;grid-template-columns:64px minmax(0,1fr);grid-gap:8px;gap:8px;font-size:12.5px;margin:5px 0}.kv>span{color:var(--ink-3)}.acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}@media (max-width:1100px){.issues{grid-template-columns:200px minmax(0,1fr)}.iss-r{display:none}}.trow2{grid-template-columns:15px minmax(0,1fr) 50px 62px 30px 46px}.trow2 .tcell-n{display:flex;align-items:center;gap:6px;min-width:0}.trow2 .tcell-n .tn{min-width:0;flex:0 1 auto}.trow2 .tstatus{text-align:left}.trow2 .mini{justify-content:flex-end}.trow2 .tcell-v{display:flex;justify-content:center}.trow2 .tcell-i{display:flex;justify-content:flex-end;gap:2px;align-items:center}.split{grid-template-columns:400px 170px minmax(0,1fr);grid-template-columns:470px 170px minmax(0,1fr)}.trow2{grid-template-columns:15px minmax(0,1fr) 46px 46px 26px 40px;gap:6px}.trow2 .tn{overflow:visible;text-overflow:clip;white-space:normal;word-break:break-all;line-height:1.35}.trow2 .tcell-n{flex-wrap:wrap;row-gap:2px}@media (max-width:1500px){.split{grid-template-columns:430px 150px minmax(0,1fr)}}.zview{resize:vertical;overflow:hidden;min-height:160px;max-height:1600px}.zview img{max-width:100%;max-height:100%;object-fit:contain}.mini b.v{color:#6b3fc0;background:#efe9fb}.tvlm{display:flex;flex-direction:column}.tv{display:grid;grid-template-columns:150px minmax(0,1fr);grid-gap:12px;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line)}.tv:last-child{border-bottom:none}.tv.done{opacity:.6}.tv.bad{box-shadow:inset 3px 0 0 #8b5cf6}.tv img{width:150px;height:104px;object-fit:contain;background:#0d1526;border-radius:8px;cursor:zoom-in}.tv-t{font-size:13px}.tv-t .vk{font:600 10.5px IBM Plex Mono,monospace;color:#6b3fc0;background:#efe9fb;border-radius:4px;padding:1px 5px;margin-right:4px}.tv-t i{font-style:normal;color:var(--ink-3);font-size:11.5px}.tv-r{font-size:12.5px;color:var(--ink-2);margin-top:3px}.tv-m{font:11px IBM Plex Mono,monospace;color:var(--ink-3);margin-top:4px}.tv-a{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.seg.sm{margin:0}.seg.sm button{font-size:12px;padding:4px 10px}.frow .tcls{font-style:normal;font-size:10.5px;color:var(--ink-3);margin-left:4px}.scope{font:600 10px IBM Plex Sans,sans-serif;border-radius:4px;padding:0 5px;margin-right:6px}.scope.o{color:#6b3fc0;background:#efe9fb}.scope.f{color:var(--teal-ink);background:var(--teal-soft)}.scope.t{color:var(--ink-2);background:var(--surface-2)}.tline{display:flex;flex-wrap:wrap;gap:3px;padding:12px 14px 6px}.tl{width:30px;height:24px;border-radius:5px;border:1px solid var(--line-2);font:10.5px IBM Plex Mono,monospace;cursor:pointer;color:var(--ink-2);background:var(--surface);display:inline-grid;place-items:center;padding:0}.tl.has{background:var(--teal-soft);border-color:rgba(14,138,134,.35)}.tl.gap{background:repeating-linear-gradient(45deg,#fff,#fff 3px,#f3d9d6 0,#f3d9d6 6px);border-color:#e1a59e;color:#b4231a}.tl.warn{background:#fdf3e0;border-color:#e5c07a;color:#8a5a00}.tl.fail{background:#fdeceb;border-color:#e59a93;color:#b4231a}.tl.out{opacity:.35}.tl.on{outline:2px solid var(--teal);outline-offset:1px}.tlegend{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:4px 14px 12px;font-size:11.5px;color:var(--ink-3)}.tlegend .tl{width:14px;height:12px;cursor:default;margin-right:-6px}.custb{font:600 10px IBM Plex Mono,monospace;border:1px solid rgba(210,75,62,.35);border-radius:4px;padding:0 4px}.custb,.mini b.c{color:#a4262c;background:#fdeceb;white-space:nowrap}.frow.cust{box-shadow:inset 3px 0 0 #d24b3e}.fb{display:grid;grid-template-columns:240px minmax(0,1fr);grid-gap:14px;gap:14px;align-items:start;margin-top:14px}.fb-rounds{position:-webkit-sticky;position:sticky;top:16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.fb-rounds .h-row{padding:10px 12px;border-bottom:1px solid var(--line)}.fb-round{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:10px 12px;background:none;border:0;border-bottom:1px solid var(--line);cursor:pointer;font:inherit}.fb-round.on,.fb-round:hover{background:var(--surface-2)}.fb-round.on{box-shadow:inset 2px 0 0 var(--brand,#0d9488)}.fb-round .d{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--ink-3)}.fb-round .t{font-weight:600;font-size:13px;color:var(--ink)}.fb-round .m{font-size:11px;color:var(--ink-3)}.fb-round .m b.f{color:#b4231a}.fb-help{padding:10px 12px;font-size:11px;color:var(--ink-3);line-height:1.5}.fb-help code{font-size:10px}.fb-main{min-width:0;display:grid;grid-gap:14px;gap:14px}.fb-main .panel{margin-top:0}.fb-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.fb-title{font-family:Sora,sans-serif;font-weight:700;font-size:18px;letter-spacing:-.01em}.fb-sub{font-size:12px;color:var(--ink-3);margin-top:2px}.fb-note{margin-top:8px;font-size:13px;color:var(--ink-2);background:var(--teal-soft);border-left:3px solid var(--teal);padding:8px 12px;border-radius:0 8px 8px 0;line-height:1.55}.fb-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:10px;gap:10px}.fb-tile{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}.fb-tile .k{font-size:11px;color:var(--ink-3);letter-spacing:.02em}.fb-tile b{font-family:Sora,sans-serif;font-size:24px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.fb-tile.bad b{color:#b4231a}.fb-tile .s{font-size:11px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));grid-gap:12px;gap:12px;padding:14px}.fb-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);display:flex;flex-direction:column}.fb-card img{width:100%;height:auto;display:block;cursor:zoom-in;background:#111}.fb-cb{padding:10px 12px;display:grid;grid-gap:6px;gap:6px}.fb-ct{font-size:13px;line-height:1.45}.fb-ct b{font-weight:600}.fb-cat{display:inline-block;font:700 10px IBM Plex Mono,monospace;color:#fff;border-radius:4px;padding:1px 5px;margin-right:2px;vertical-align:1px}.fb-cat.cA{background:#2f6fd6}.fb-cat.cB{background:#9a4fd0}.fb-cat.cC{background:#c07f12}.fb-cat.cD{background:#d24b3e}.fb-cat.cE{background:#0e8a86}.fb-cm{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px}.fb-cm .cap{font-size:11px;color:var(--ink-3)}.fb-cn{font-size:12px;color:var(--ink-2);background:var(--surface-2);border-radius:8px;padding:6px 10px;line-height:1.5}.fb-st{font-size:10px;font-weight:600;padding:1px 7px;border-radius:999px;margin-left:auto}.fb-st.todo{color:var(--ink-3);background:var(--surface-2)}.fb-st.fixing{color:#8a5a00;background:#fdf3e0}.fb-st.done{color:#0a7a52;background:#e6f5ef}.fb-st.dispute{color:#6b3fc0;background:#efe9fb}.lnk{background:none;border:0;padding:0;font:inherit;font-family:IBM Plex Mono,monospace;font-size:12.5px;color:var(--teal-ink);cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.lnk:hover{color:var(--teal)}.lnk:disabled{color:var(--ink-3);cursor:default;text-decoration:none}.fb-tablewrap{overflow-x:auto}.fb-table{width:100%;border-collapse:collapse;font-size:12.5px}.fb-table th{position:-webkit-sticky;position:sticky;top:0;background:var(--surface-2);text-align:left;font-weight:600;font-size:11px;color:var(--ink-3);padding:8px 12px;white-space:nowrap}.fb-table td,.fb-table th{border-bottom:1px solid var(--line)}.fb-table td{padding:7px 12px;vertical-align:top}.fb-table tr.dim td{opacity:.6}.fb-table .r{text-align:right}.fb-table .mono{font-family:IBM Plex Mono,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fb-table b.f{color:#b4231a}.dlvb{font:600 10px IBM Plex Mono,monospace;color:#0a6b4f;background:#e6f5ef;border:1px solid rgba(14,138,100,.3);border-radius:4px;padding:0 4px;white-space:nowrap}.dlvb.no,.mini b.nd{color:var(--ink-3);background:none;border:1px dashed var(--line)}.mini b.nd{white-space:nowrap}.fb-f.nd{border:1px dashed #c9a400}.fb-f.nd,.fb-nd{color:#6b5a00;background:#fff7d6}.fb-nd{font:600 10px IBM Plex Mono,monospace;border-radius:4px;padding:1px 5px}.fb-tile b.warn{color:#9a6a00}.fb-rules tbody tr{cursor:pointer}.fb-rules tbody tr:hover td{background:var(--surface-2)}.fb-rules tbody tr.on td{background:#fdeceb}.fb-rules .cap{font-size:11px;color:var(--ink-3)}.custwhy ul{list-style:none;margin:0;padding:8px 14px 12px;display:grid;grid-gap:4px;gap:4px;font-size:12.5px;max-height:220px;overflow:auto}.custwhy li b{color:#a4262c;font-weight:600}.custwhy .mono{font-family:IBM Plex Mono,monospace;font-size:11.5px;color:var(--ink-2)}.fb-new{font:600 10px IBM Plex Mono,monospace;color:#a4262c;background:#fdeceb;border-radius:4px;padding:1px 5px}.fb-frames{display:flex;flex-wrap:wrap;gap:3px;max-width:520px}.fb-f{font:500 10.5px IBM Plex Mono,monospace;color:#a4262c;background:#fdeceb;border:1px solid rgba(210,75,62,.25);border-radius:4px;padding:0 4px;cursor:pointer;line-height:1.6}.fb-f:hover{background:#f9d5d1}.fb-f:disabled{cursor:default;opacity:.6}.fb-big{position:fixed;inset:0;background:rgba(10,14,18,.88);z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;cursor:zoom-out}.fb-big img{max-width:100%;max-height:calc(100vh - 80px);object-fit:contain;border-radius:8px}.fb-bigbar{display:flex;gap:8px}@media (max-width:900px){.fb{grid-template-columns:1fr}.fb-rounds{position:static}}.fb-items .ph{flex-wrap:wrap;gap:8px}.fb-items .ph .summary{display:flex;flex-wrap:wrap;gap:6px}.fb-items .ph .btn{white-space:nowrap}.fdbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px 0}.fdbar .seg-btns,.fdchips{display:inline-flex;gap:4px}.fdchips{flex-wrap:wrap;flex:1 1 360px;min-width:0}.fdchip{white-space:nowrap;font:inherit;font-size:11.5px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink-3);cursor:pointer}.fdchip.on{background:var(--surface-2);color:var(--ink);border-color:var(--brand,#0d9488);box-shadow:inset 0 0 0 1px var(--brand,#0d9488)}.fdgrid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.fdgrid.two .fdcell.height{grid-column:span 2}.fdfocus{padding:12px}.split.wide{grid-template-columns:170px minmax(0,1fr)}.split.wide>.pane-l{display:none}.zview.fixed{resize:none;max-height:none}.fb-big.zoomable{padding:16px 20px;cursor:default}.fb-bigbox{width:100%;max-width:none;display:flex;flex-direction:column;gap:8px}.fb-big.zoomable .zview img{max-width:100%;max-height:100%;border-radius:0}.fb-big.zoomable .fb-bigbar{justify-content:space-between;align-items:center;color:#cfd8e6}.fb-big.zoomable .fb-bigbar .cap{color:#aab6c8}.fb-big.zoomable .zoombar .zt{max-width:55vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:900px){.split.wide{grid-template-columns:1fr}}.studio-lnk{display:inline-block;padding:0 5px;border-radius:4px;color:var(--ink-3);font-size:12px;line-height:18px;cursor:pointer;opacity:.55}.frow.on .studio-lnk,.frow:hover .studio-lnk{opacity:1}.studio-lnk:hover{background:var(--surface-2);color:var(--brand,#0d9488)}.fp .topbar{padding:10px 20px}.fp-title{font-family:Sora,sans-serif;font-weight:600;font-size:15px}.fp-frame{display:inline-flex;align-items:center;gap:6px}.fp-frame input{width:64px;height:28px;border:1px solid var(--line-2);border-radius:7px;padding:0 6px;font-size:12.5px;background:var(--surface);color:var(--ink)}.fp-err{margin:12px 20px 0}.fp-body{display:grid;grid-template-columns:400px minmax(0,1fr);grid-gap:16px;gap:16px;padding:16px 20px 60px;align-items:start}.fp-side{position:-webkit-sticky;position:sticky;top:62px;max-height:calc(100vh - 76px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.fp-block{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.fp-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.fp-row .seg-btns{display:inline-flex;gap:4px}.fp-lab{font-size:12px;color:var(--ink-3);width:64px}.fp-check{font-size:12.5px;color:var(--ink-2);cursor:pointer}.fp .btn.sm.on,.fp .seg-btns .btn.on{background:var(--teal);border-color:var(--teal);color:#fff}.fp-tabs{display:flex;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;background:var(--surface);z-index:2}.fp-tab{flex:1 1;font:inherit;font-size:12.5px;font-weight:600;padding:9px 6px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--ink-3);cursor:pointer}.fp-tab.on{color:var(--ink);border-bottom-color:var(--teal)}.fp-tab b{color:var(--warn)}.fp-form{padding:8px 10px 4px;display:flex;flex-direction:column;gap:6px}.fp-chips{display:flex;flex-wrap:wrap;gap:4px;padding:2px 0 4px}.fp-chip{font:inherit;font-size:11.5px;padding:3px 8px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink-2);cursor:pointer;white-space:nowrap}.fp-chip.on{background:var(--teal-soft);border-color:rgba(14,138,134,.5);color:var(--teal-ink)}.fp-chip b{color:var(--warn)}.fp-clsname{font-weight:600;font-size:13px;padding:2px 2px 0}.fp-group{border:1px solid var(--line);border-radius:9px;padding:6px 8px;background:var(--surface)}.fp-group.off{background:var(--surface-2)}.fp-group.off .fp-gtitle{color:var(--ink-3)}.fp-ghead{display:flex;align-items:center;gap:7px;min-width:0}.fp-gtitle{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500}.fp-gdesc{font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1}.fp-dot{width:7px;height:7px;border-radius:50%;background:var(--warn)}.fp-field{display:grid;grid-template-columns:minmax(0,1fr) 110px 74px;align-items:center;grid-gap:6px;gap:6px;padding:3px 0 3px 4px;font-size:12px;border-radius:5px;cursor:help}.fp-field.changed{background:rgba(192,127,18,.1)}.fp-field.changed .fp-fname{color:#9a640c;font-weight:600}.fp-fname{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-q{display:inline-grid;place-items:center;width:13px;height:13px;margin-left:4px;border-radius:50%;font-size:9px;background:var(--bg2);color:var(--ink-3);vertical-align:1px}.fp-fin input:not([type=checkbox]),.fp-fin select{width:100%;height:26px;border:1px solid var(--line-2);border-radius:6px;padding:0 6px;font-size:12px;background:var(--surface);color:var(--ink)}.fp-fin input[type=checkbox]{width:15px;height:15px}.fp-reset{font:inherit;font-size:10.5px;border:0;background:transparent;color:var(--ink-3);cursor:pointer;padding:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:74px}.fp-reset:hover{color:var(--teal-ink)}.fp-sub{margin:4px 0 2px 4px;padding-left:8px;border-left:2px solid var(--line)}.fp-subt{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-3);margin-bottom:2px}.fp-actions{position:-webkit-sticky;position:sticky;bottom:0;border-top:1px solid var(--line);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.fp-actions,.fp-label{background:var(--surface)}.fp-label{height:30px;border:1px solid var(--line-2);border-radius:7px;padding:0 8px;font:inherit;font-size:12.5px;color:var(--ink)}.fp-row2{flex-wrap:wrap}.fp-import,.fp-row2{display:flex;gap:6px}.fp-import{flex-direction:column}.fp-import textarea{height:120px;font-size:11px;border:1px solid var(--line-2);border-radius:7px;padding:6px;background:var(--surface);color:var(--ink)}.fp-changes{max-height:110px;overflow:auto;font-size:11px;color:#9a640c;background:rgba(192,127,18,.07);border-radius:6px;padding:5px 7px}.fp-main{min-width:0;display:flex;flex-direction:column;gap:14px}.fp-main>.empty,.fp-metrics{background:var(--surface);border:1px solid var(--line);border-radius:12px}.fp-metrics{box-shadow:var(--shadow);padding:12px 14px}.fp-mhead{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:8px}.fp-mhead .t{font-family:Sora,sans-serif;font-weight:600;font-size:14px}.fp-mt{width:100%;border-collapse:collapse;font-size:12.5px}.fp-mt td,.fp-mt th{text-align:left;padding:5px 8px;border-bottom:1px solid var(--line)}.fp-mt th{font-size:11px;color:var(--ink-3);font-weight:600}.fp-mt td.mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fp-vsref{color:var(--ink-2);background:var(--teal-soft);border-radius:7px;padding:7px 10px}.fp-removal,.fp-vsref{margin-top:8px;font-size:12.5px}.fp-removal summary{cursor:pointer;color:var(--ink-2)}.fp-chg{font-size:11px;color:#9a640c;padding:1px 0}.fp-imgs{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:12px;gap:12px}.fp-imgs.two{grid-template-columns:repeat(2,minmax(0,1fr))}.fp-imgcol{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px}.fp-imgt{font-weight:600;font-size:13px}.fp-history{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 10px}.fp-ht{font-weight:600;font-size:13px;padding:2px 4px 6px}.fp-hrow{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto 78px;align-items:center;grid-gap:10px;gap:10px;padding:5px 6px;border-radius:7px;cursor:pointer;font-size:12.5px}.fp-hrow:hover{background:var(--surface-2)}.fp-hrow.on{background:var(--teal-soft)}.fp-hlabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-hrow .custbadge{background:var(--teal);color:#fff;text-align:center}@media (max-width:900px){.fp-body{grid-template-columns:1fr}.fp-side{position:static;max-height:none}.fp-imgs.two{grid-template-columns:1fr}}.fp-body{grid-template-columns:440px minmax(0,1fr)}.fp-field{grid-template-columns:minmax(0,1fr) 150px 74px;cursor:default}.fp-q{font:inherit;border:0;cursor:pointer}.fp-q.on,.fp-q:hover{background:var(--teal);color:#fff}.fp-help{white-space:pre-wrap;font-size:11.5px;line-height:1.5;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:6px 8px;margin:2px 0 6px 4px}.fp-num{display:flex;align-items:center;gap:3px}.fp-num input{flex:1 1;min-width:0}.fp-step{font:inherit;font-size:13px;line-height:1;width:24px;height:26px;border:1px solid var(--line-2);border-radius:6px;background:var(--surface-2);color:var(--ink-2);cursor:pointer;flex:0 0 auto}.fp-step:hover{border-color:var(--teal);color:var(--teal-ink)}.fp-err2{margin:0}.fp-saved{background:var(--surface-2)}.fp-svs{display:flex;flex-direction:column;gap:2px;font-size:12.5px}.fp-hist{font-size:12px;color:var(--ink-2)}.fp-hist summary{cursor:pointer}.fp-hrow2{padding:3px 0;border-bottom:1px solid var(--line)}.fp-savebox{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.fp-savemsg{font-size:12px;background:var(--teal-soft);border-radius:6px;padding:5px 8px}.fp-savemsg,.ovmark{color:var(--teal-ink)}.ovmark{font-size:11px}.hubb{font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:999px;line-height:1.6;white-space:nowrap;border:1px solid transparent}.hubb.reject_requested{color:#b4231a;background:#fdeceb;border-color:#f3c6c2}.hubb.checked{color:#2b49a8;background:#e9eefc;border-color:#c7d3f5}.hubb.final{color:#0a7a52;background:#e6f5ef;border-color:#b9e3d1}.hubb.none{color:var(--ink-3);background:var(--bg2);border-color:var(--line)}.hubb.lg{font-size:12px;padding:3px 10px}.hubbar{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;position:relative}.hubbtn.reject_requested:not(:disabled):hover{border-color:#d24b3e;color:#b4231a}.hubbtn.checked:not(:disabled):hover{border-color:#4b6fd6;color:#2b49a8}.hubbtn.final:not(:disabled):hover{border-color:#1f9d57;color:#0a7a52}.hubbtn.on{opacity:.45}.hubnote{font-size:11.5px;color:#b4231a;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.huberr{font-size:11.5px;color:var(--fail)}.hubhist{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:320px;max-height:280px;overflow-y:auto;background:var(--surface);border:1px solid var(--line-2);border-radius:10px;box-shadow:0 8px 24px rgba(16,24,40,.12);padding:6px;gap:2px}.hubhist,.hubhist .hrow{display:flex;flex-direction:column}.hubhist .hrow{gap:1px;padding:6px 8px;border-radius:6px;font-size:12px}.hubhist .hrow:hover{background:var(--surface-2)}.hubhist .hrow span{color:var(--ink-3);font-size:11px}.hubhist .hrow .hn{color:var(--ink-2)}.hubhist i{padding:8px;color:var(--ink-3);font-size:12px}.chipbtn.hubchip.reject_requested{color:#b4231a}.chipbtn.hubchip.checked{color:#2b49a8}.chipbtn.hubchip.final{color:#0a7a52}