.pf-page{--pf-bg:var(--surface,#fff);--pf-ink:var(--text,#182835);--pf-muted:var(--muted,#617080);--pf-line:var(--border,#dce4e7);--pf-soft:var(--surface-alt,#f3f7f6);--pf-green:#087b51;--pf-green-bg:#e6f6ee;--pf-amber:#9d5700;--pf-amber-bg:#fff3dc;--pf-red:#bc3142;--pf-red-bg:#fff0f1;--pf-gray:#5d6b7a;--pf-gray-bg:#eff3f6;color:var(--pf-ink);padding-bottom:54px;line-height:1.65}.pf-page button,.pf-page input{font:inherit}.pf-page button,.pf-page a{touch-action:manipulation}.pf-page button{min-height:44px;padding:9px 15px;border:1px solid var(--pf-line);background:var(--pf-bg);color:var(--pf-ink);border-radius:10px;font-weight:650;cursor:pointer}.pf-page button:hover{border-color:#22866f;box-shadow:0 3px 10px #184c3910}.pf-page button:disabled{opacity:.5;cursor:wait;box-shadow:none}.pf-page a:focus-visible,.pf-page button:focus-visible,.pf-page input:focus-visible,.pf-page summary:focus-visible{outline:3px solid #46a9c6;outline-offset:3px}.pf-page [hidden]{display:none!important}.pf-heading{display:flex;justify-content:space-between;gap:24px;margin:28px 0}.pf-heading h1{font-size:clamp(2rem,4.2vw,3.35rem);margin:4px 0 8px;letter-spacing:-.05em;line-height:1.15}.pf-heading p:not(.eyebrow){font-size:1.2rem;color:var(--pf-muted);margin:12px 0}.pf-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.pf-tags span,.pf-method-pill{font-size:.82rem;font-weight:700;border:1px solid var(--pf-line);padding:5px 10px;border-radius:99px;background:var(--pf-bg)}.pf-hero-art{position:relative;flex:0 0 215px;align-self:center;min-height:142px;background:linear-gradient(135deg,#e7f8ee,#eef5ff);border:1px solid #cde5dc;border-radius:22px;padding:22px;color:#176e50;transform:rotate(-3deg)}.pf-hero-art>div{display:flex;align-items:flex-end;justify-content:center;gap:10px;height:65px}.pf-hero-art i{width:20px;border-radius:5px 5px 0 0;background:#68b79a;height:30%}.pf-hero-art i:nth-child(2){height:45%}.pf-hero-art i:nth-child(3){height:63%}.pf-hero-art i:nth-child(4){height:79%}.pf-hero-art i:nth-child(5){height:100%;background:#147958}.pf-art-score{position:absolute;right:18px;top:0;font-size:2rem;font-weight:800}.pf-hero-art small{display:block;text-align:center;margin-top:12px;letter-spacing:.1em}.pf-workbench,.pf-report,.pf-html-report{border:1px solid var(--pf-line);border-radius:20px;background:var(--pf-bg);box-shadow:0 9px 26px #183c3510;overflow:hidden}.pf-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 22px;background:var(--pf-soft);border-bottom:1px solid var(--pf-line);font-size:.78rem;letter-spacing:.07em}.pf-topline button{font-size:.85rem;letter-spacing:0;min-height:38px;padding:6px 12px}.pf-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 26px;padding:23px}.pf-input-main label{display:block;font-size:1.1rem;font-weight:750;margin-bottom:8px}.pf-input-main input{width:100%;border:1px solid var(--pf-line);border-radius:10px;background:var(--pf-bg);color:var(--pf-ink);padding:13px 14px;min-height:50px;font-size:1.05rem}.pf-input-main input[aria-invalid=true]{border-color:var(--pf-red)}.pf-input-main p{font-size:.85rem;color:var(--pf-muted);margin:8px 0 0}.pf-device{border:0;margin:0;padding:0;align-self:start;white-space:nowrap}.pf-device legend{font-size:.9rem;font-weight:650;margin-bottom:9px}.pf-device label{display:inline-flex;position:relative}.pf-device input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}.pf-device span{border:1px solid var(--pf-line);background:var(--pf-bg);padding:13px 14px;min-height:50px;border-radius:10px;pointer-events:none;font-size:.95rem}.pf-device input:checked+span{border-color:#208666;background:var(--pf-green-bg);color:var(--pf-green);box-shadow:inset 0 0 0 1px #208666;font-weight:750}.pf-device input:focus-visible+span{outline:3px solid #46a9c6;outline-offset:3px}.pf-form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;grid-column:1/-1}.pf-page .pf-primary{background:#117d60;color:#fff;border-color:#117d60;padding:12px 20px;box-shadow:0 5px 14px #117d6028}.pf-page .pf-primary:hover{background:#0b6b52}.pf-form-actions a{font-size:.88rem;padding:8px 4px;color:var(--pf-muted)}.pf-error{color:var(--pf-red);grid-column:1/-1;margin:0}.pf-method-note{display:flex;gap:10px;background:var(--pf-soft);border-top:1px solid var(--pf-line);padding:12px 23px;font-size:.87rem;color:var(--pf-muted)}.pf-method-note p{margin:0}.pf-method-note>span{font-size:1.1rem}.pf-status{border:1px solid var(--pf-line);background:var(--pf-bg);padding:13px 18px;border-radius:12px;overflow-wrap:anywhere}.pf-status[data-kind=error]{border-color:#df8992;background:var(--pf-red-bg);color:var(--pf-red)}.pf-status[data-kind=success]{border-color:#81c3aa;background:var(--pf-green-bg);color:var(--pf-green)}.pf-progress{background:var(--pf-soft);padding:18px 22px;margin:18px 0;border:1px solid var(--pf-line);border-radius:15px}.pf-progress>div{display:flex;gap:10px;align-items:center}.pf-progress #pf-elapsed{margin-left:auto;font-variant-numeric:tabular-nums;font-size:.85rem;color:var(--pf-muted)}.pf-progress progress{accent-color:#168666;width:100%;height:9px;display:block;margin:14px 0}.pf-progress p{font-size:.9rem;color:var(--pf-muted);margin:0}.pf-spinner{width:18px;height:18px;border:2px solid #c7ddd6;border-top-color:#168666;border-radius:50%;animation:pf-spin .8s linear infinite;flex:none}@keyframes pf-spin{to{transform:rotate(360deg)}}.pf-report{margin-top:24px;animation:pf-enter .3s ease-out}@keyframes pf-enter{from{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:none}}.pf-report-head{display:flex;gap:20px;justify-content:space-between;align-items:flex-start;padding:23px;border-bottom:1px solid var(--pf-line);background:var(--pf-soft)}.pf-overline{font-size:.72rem;letter-spacing:.12em;font-weight:750;color:var(--pf-muted);margin:0 0 5px}.pf-report h2,.pf-html-report h2{font-size:1.65rem;letter-spacing:-.03em;line-height:1.25;margin:0 0 8px}.pf-report-head p:not(.pf-overline){font-size:.85rem;color:var(--pf-muted);overflow-wrap:anywhere;margin:0}.pf-export{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.pf-export button{font-size:.85rem;padding:8px 12px}.pf-stale{background:var(--pf-amber-bg);color:var(--pf-amber);padding:12px 20px;margin:16px 22px;border:1px solid #e0bb73;border-radius:10px}.pf-report #pf-export-status{margin:12px 23px;color:var(--pf-muted);font-size:.9rem}#pf-ai-bar{margin:20px 23px}.pf-warnings{margin:16px 23px;padding:14px 16px;border:1px solid #e0bb73;border-radius:12px;background:var(--pf-amber-bg);color:var(--pf-amber);font-size:.9rem}.pf-warnings p{margin:5px 0}.pf-report>section,.pf-limitations{padding:24px;border-top:1px solid var(--pf-line)}.pf-section-head{display:flex;gap:18px;justify-content:space-between;align-items:flex-start;margin-bottom:19px}.pf-section-head h3{font-size:1.35rem;letter-spacing:-.02em;line-height:1.25;margin:0 0 7px}.pf-section-head p:not(.pf-overline){font-size:.9rem;color:var(--pf-muted);margin:0}.pf-lab-layout{display:grid;grid-template-columns:195px minmax(0,1fr);gap:20px}.pf-score{background:var(--pf-soft);border:1px solid var(--pf-line);border-radius:16px;padding:22px 14px;text-align:center;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:10px}.pf-score-ring{width:112px;height:112px;border-radius:50%;padding:8px;background:conic-gradient(var(--pf-status-color) var(--pf-angle,0deg),var(--pf-line) 0)}.pf-score-ring>span{height:100%;width:100%;display:flex;align-items:center;justify-content:center;background:var(--pf-bg);border-radius:50%;font-size:2.5rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--pf-status-color)}.pf-score small{color:var(--pf-muted);font-size:.78rem}.pf-score strong{font-size:.92rem}.pf-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pf-metric{border:1px solid var(--pf-line);background:var(--pf-bg);border-radius:13px;padding:15px;min-width:0;box-shadow:inset 4px 0 0 var(--pf-status-color)}.pf-metric-top{display:flex;align-items:center;gap:10px;justify-content:space-between}.pf-metric h4{font-size:.88rem;line-height:1.4;margin:0;color:var(--pf-muted);font-weight:650}.pf-metric h4 strong{font-size:1.03rem;color:var(--pf-ink);margin-right:5px}.pf-metric-value{display:block;font-size:1.75rem;line-height:1.3;font-weight:780;letter-spacing:-.025em;margin-top:13px;font-variant-numeric:tabular-nums;color:var(--pf-status-color)}.pf-metric p{font-size:.82rem;color:var(--pf-muted);margin:8px 0 0}.pf-metric details{font-size:.8rem;margin-top:8px}.pf-metric details summary{cursor:pointer;color:var(--pf-status-color);font-weight:650}.pf-metric details p{font-size:.85rem}.pf-badge{display:inline-flex;gap:5px;align-items:center;padding:4px 8px;border-radius:99px;background:var(--pf-status-bg);color:var(--pf-status-color);font-size:.77rem;font-weight:750;white-space:nowrap;line-height:1.45}.pf-badge>span{font-weight:900;line-height:1;font-size:.9rem}.pf-page [data-state=pass]{--pf-status-color:var(--pf-green);--pf-status-bg:var(--pf-green-bg)}.pf-page [data-state=warn]{--pf-status-color:var(--pf-amber);--pf-status-bg:var(--pf-amber-bg)}.pf-page [data-state=fail]{--pf-status-color:var(--pf-red);--pf-status-bg:var(--pf-red-bg)}.pf-page [data-state=unknown]{--pf-status-color:var(--pf-gray);--pf-status-bg:var(--pf-gray-bg)}.pf-lab-boundary,.pf-thresholds{font-size:.85rem;color:var(--pf-muted);background:var(--pf-soft);border-radius:10px;padding:11px 14px;margin:16px 0 0}.pf-environment{font-size:.85rem;margin-top:16px}.pf-environment summary,.pf-limitations summary{cursor:pointer;font-weight:700}.pf-environment dl{display:grid;grid-template-columns:minmax(90px,auto) 1fr;gap:8px 16px;padding:14px;background:var(--pf-soft);border-radius:10px}.pf-environment dt{color:var(--pf-muted)}.pf-environment dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.pf-field-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.pf-field-note{font-size:.92rem;border-radius:10px;padding:12px 14px;background:var(--pf-soft);color:var(--pf-muted);margin:0 0 16px}.pf-opportunity{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:13px;padding:18px 0;border-top:1px solid var(--pf-line)}.pf-opportunity:first-child{border:0;padding-top:0}.pf-priority{height:32px;width:32px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--pf-status-bg);color:var(--pf-status-color);font-weight:800}.pf-opportunity h4{margin:0;font-size:1rem}.pf-opportunity p{margin:8px 0 0;font-size:.9rem;color:var(--pf-muted);overflow-wrap:anywhere}.pf-opportunity summary{cursor:pointer;font-size:.85rem;margin-top:8px}.pf-savings{font-size:.85rem;font-variant-numeric:tabular-nums;color:var(--pf-status-color);text-align:right;font-weight:700;white-space:nowrap}.pf-savings small{display:block;color:var(--pf-muted);font-size:.74rem;font-weight:500}.pf-opportunity-empty{background:var(--pf-soft);border-radius:12px;padding:16px;color:var(--pf-muted)}.pf-limitations{font-size:.9rem}.pf-limitations li{margin:8px 0;color:var(--pf-muted)}.pf-source-links{display:flex;gap:16px;flex-wrap:wrap;margin-top:18px;font-size:.85rem}.pf-html-report{padding:22px;margin-top:20px}.pf-html-report>p{color:var(--pf-muted);font-size:.85rem;margin:12px 0 0;overflow-wrap:anywhere}.pf-html-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.pf-html-metrics>div{border:1px solid var(--pf-line);border-radius:12px;padding:15px;min-width:0}.pf-html-metrics span{font-size:.85rem;color:var(--pf-muted);display:block}.pf-html-metrics strong{font-size:1.65rem;display:block;font-variant-numeric:tabular-nums;margin:5px 0}.pf-empty{text-align:center;border:1px dashed var(--pf-line);border-radius:18px;margin:24px 0;padding:32px 22px;color:var(--pf-muted);background:var(--pf-soft)}.pf-empty h2{font-size:1.25rem;color:var(--pf-ink);margin:16px 0 10px}.pf-empty p{font-size:.95rem;max-width:570px;margin:auto}.pf-empty-signals{display:flex;gap:10px;justify-content:center}.pf-empty-signals span{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:var(--pf-green-bg);color:var(--pf-green);font-weight:800}.pf-empty-signals span:nth-child(2){background:var(--pf-amber-bg);color:var(--pf-amber)}.pf-empty-signals span:nth-child(3){background:var(--pf-red-bg);color:var(--pf-red)}.pf-empty-signals span:nth-child(4){background:var(--pf-gray-bg);color:var(--pf-gray)}.pf-guide{margin-top:40px}.pf-dialog{--pf-ink:var(--ink,#182835);--pf-bg:var(--white,#fff);--pf-soft:var(--paper,#f3f7f6);--pf-line:var(--line,#dce4e7);color:var(--pf-ink);background:var(--pf-bg);border:1px solid var(--pf-line);border-radius:18px;width:min(760px,calc(100vw - 30px));max-height:90vh;padding:22px}.pf-dialog::backdrop{background:#122a36aa}.pf-dialog>div{display:flex;align-items:center;justify-content:space-between}.pf-dialog h2{font-size:1.25rem}.pf-dialog textarea{width:100%;font:inherit;font-size:.9rem;padding:12px;color:var(--pf-ink);background:var(--pf-soft);border:1px solid var(--pf-line);border-radius:10px}.pf-dialog button{min-height:44px;font:inherit;border:1px solid var(--pf-line);border-radius:8px;background:var(--pf-bg);color:var(--pf-ink);padding:8px 14px}.pf-dialog>button{margin-top:12px}
:root[data-theme=dark] .pf-page,html[data-theme=dark] .pf-page,html[data-xunl-theme=dark] .pf-page{--pf-bg:#17262b;--pf-ink:#e4edef;--pf-muted:#a7bac1;--pf-line:#34474e;--pf-soft:#1e3036;--pf-green:#82dcb6;--pf-green-bg:#123d31;--pf-amber:#f5c76f;--pf-amber-bg:#453719;--pf-red:#ff9ea9;--pf-red-bg:#46232c;--pf-gray:#b1c3ce;--pf-gray-bg:#2a3b45}.pf-page [data-state=unknown] .pf-score-ring{background:var(--pf-line)}
@media(max-width:850px){.pf-heading{gap:18px}.pf-hero-art{flex-basis:170px;padding:16px;min-height:130px}.pf-form{grid-template-columns:1fr}.pf-form-actions{gap:8px}.pf-device{display:flex;gap:8px;flex-wrap:wrap}.pf-device legend{width:100%}.pf-device span{padding:9px 16px;min-height:44px}.pf-report-head{flex-direction:column;gap:16px}.pf-export{justify-content:flex-start}.pf-lab-layout{grid-template-columns:1fr}.pf-score{flex-direction:row;justify-content:flex-start;padding:16px;gap:16px;flex-wrap:wrap;text-align:left}.pf-score-ring{width:85px;height:85px}.pf-score-ring>span{font-size:2rem}.pf-score small{width:100%}.pf-field-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:580px){.pf-heading{margin:24px 0}.pf-hero-art{display:none}.pf-heading h1{font-size:2.15rem}.pf-heading p:not(.eyebrow){font-size:1.08rem}.pf-heading .eyebrow{font-size:.6rem}.pf-tags{gap:5px;margin-top:14px}.pf-tags span{font-size:.72rem;padding:4px 8px}.pf-topline{padding:12px 15px;font-size:.65rem;letter-spacing:.04em}.pf-topline button{font-size:.75rem;padding:5px 8px}.pf-form{padding:17px;gap:17px}.pf-input-main input{font-size:1rem}.pf-form-actions button{flex:1 1 auto}.pf-form-actions .pf-primary{width:100%}.pf-form-actions a{margin-left:auto}.pf-method-note{padding:12px 17px}.pf-report-head,.pf-report>section,.pf-limitations,.pf-html-report{padding:18px}.pf-report h2{font-size:1.4rem}.pf-export{width:100%;gap:6px}.pf-export button{padding:8px 10px;flex:1;font-size:.77rem}.pf-section-head{gap:10px;flex-wrap:wrap;margin-bottom:15px}.pf-section-head h3{font-size:1.25rem}.pf-section-head p:not(.pf-overline){font-size:.85rem}.pf-metric-grid,.pf-field-metrics{grid-template-columns:1fr}.pf-metric{padding:14px}.pf-metric-value{margin-top:8px;font-size:1.6rem}.pf-metric p{font-size:.86rem}.pf-metric-grid .pf-metric{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}.pf-metric-top{grid-column:1}.pf-metric-value{grid-column:2;grid-row:1/3;align-self:center;margin:0}.pf-metric p,.pf-metric details{grid-column:1/-1}.pf-metric-top h4 span{display:block;font-size:.8rem}.pf-badge{font-size:.72rem}.pf-metric-top{justify-content:flex-start;gap:8px}.pf-metric h4 strong{font-size:.95rem}.pf-opportunity{grid-template-columns:32px minmax(0,1fr);gap:10px}.pf-savings{grid-column:2;text-align:left;display:flex;gap:8px;align-items:center}.pf-savings small{display:inline}.pf-html-metrics{grid-template-columns:1fr;gap:8px}.pf-html-metrics>div{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;gap:8px}.pf-html-metrics strong{font-size:1.3rem;margin:0}.pf-progress{padding:15px}.pf-progress>div{flex-wrap:wrap}.pf-progress #pf-elapsed{font-size:.8rem}.pf-stale,#pf-ai-bar,.pf-warnings{margin:15px}.pf-thresholds,.pf-lab-boundary{font-size:.83rem}.pf-environment dl{grid-template-columns:1fr;gap:3px}.pf-environment dd{margin-bottom:9px}.pf-field-note{font-size:.87rem}.pf-page .related{position:static}.pf-page{padding-bottom:90px}}
@media(prefers-reduced-motion:reduce){.pf-spinner{animation:none}.pf-report{animation:none}.pf-page *{scroll-behavior:auto!important}}
@media print{.pf-heading,.pf-workbench,.pf-progress,.pf-status,.pf-guide,.pf-empty,.pf-export,#pf-ai-bar,.pf-report-head+.pf-stale,.pf-source-links{display:none!important}.pf-page{padding:0;--pf-bg:#fff;--pf-ink:#111;--pf-muted:#444;--pf-line:#bbb;--pf-soft:#fafafa}.pf-report{box-shadow:none}.pf-report>section{break-inside:avoid}.pf-metric-grid{grid-template-columns:repeat(2,1fr)}.pf-metric{break-inside:avoid}.pf-report [hidden]{display:none!important}}
