:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.5rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--bg:#f4f6f9;--bg-2:#ebeef4;--ink:#0f1923;--ink-2:#4a5568;--muted:#8896aa;--accent:#0b2d4d;--accent-2:#0369a1;--card:#fff;--border:#c8d0dc;--shadow:none;--radius:8px;--mono:"IBM Plex Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--sans:"IBM Plex Sans", "Source Sans 3", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--surface:#fff;--surface-2:#e4e7ec;--on-surface-2:#344054;--btn-fg:white;--grade-aplus:#059669;--grade-a:#16a34a;--grade-b:#65a30d;--grade-c:#ca8a04;--grade-d:#ea580c;--grade-f:#dc2626}*{box-sizing:border-box}body{min-height:100vh;font-family:var(--sans);font-size:var(--text-base);color:var(--ink);background:var(--bg);margin:0}main{flex-direction:column;gap:24px;max-width:760px;min-height:100dvh;margin:0 auto;padding:0 24px 48px;display:flex}header{border-bottom:1px solid var(--border);background:var(--card);flex-direction:row;justify-content:space-between;align-items:center;gap:16px;width:100vw;height:72px;margin:0;padding:0 max(24px,50vw - 380px);display:flex;position:relative;left:50%;transform:translate(-50%)}.header-text{flex-direction:row;align-items:center;gap:12px;min-width:0;display:flex}.header-controls{flex-direction:row;flex-shrink:0;align-items:center;gap:8px;display:flex}.locale-select{width:auto;font-size:var(--text-sm);border-radius:4px;min-width:0;padding:6px 10px}.brand-mark{margin:0;line-height:0}.brand-logo{width:min(100%,320px);height:auto;transition:filter .4s;display:block}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;gap:14px;padding:22px;display:flex}label{font-size:var(--text-sm);color:var(--ink-2)}input,select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--ink);font-family:inherit;font-size:var(--text-base);border-radius:4px;padding:10px 12px;transition:border-color .15s}input:focus,select:focus{outline:2px solid var(--accent-2);outline-offset:1px;border-color:#0000}button{letter-spacing:.01em;cursor:pointer;background:var(--accent);color:var(--btn-fg);border:none;border-radius:6px;padding:10px 18px;font-weight:600;transition:transform .15s}button.ghost{color:var(--ink-2);border:1.5px solid var(--border);font-size:var(--text-sm);background:0 0;padding:6px 14px}button.ghost:hover:not(:disabled){background:var(--bg-2)}button:disabled{opacity:.6;cursor:not-allowed}button:hover:not(:disabled){transform:translateY(-1px)}.advanced-options{border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface);padding:8px 10px}.advanced-options>summary{cursor:pointer;color:var(--ink-2);font-size:var(--text-sm);align-items:center;gap:8px;font-weight:600;list-style:none;display:flex}.advanced-options>summary::-webkit-details-marker{display:none}.advanced-options>summary:before{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex-shrink:0;width:7px;height:7px;transition:transform .15s;display:inline-block;transform:rotate(-45deg)}.advanced-options[open]>summary:before{transform:rotate(45deg)}.advanced-options[open]>summary{margin-bottom:8px}details[inert]{opacity:.45;cursor:not-allowed}details[inert]>summary{pointer-events:none}.progress-status{font-size:var(--text-sm);color:var(--ink-2);margin:0}.progress-domain{font-family:var(--mono);font-size:var(--text-xl);color:var(--ink);overflow-wrap:break-word;word-break:break-all;margin:4px 0 12px;font-weight:600;display:block}.progress-bar-track{background:var(--surface-2);border-radius:999px;height:8px;position:relative;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent) 0%, var(--accent-2) 100%);border-radius:999px;min-width:8px;height:100%;transition:width .3s;position:relative;overflow:hidden}.progress-bar-fill:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff59 50%,#0000 100%);width:50%;height:100%;animation:1.6s ease-in-out infinite shimmer;position:absolute;top:0;left:-50%}@keyframes shimmer{0%{left:-50%}to{left:150%}}.status-banner{border-radius:var(--radius);font-weight:600;font-size:var(--text-base);border:1px solid var(--border);background:var(--surface);padding:12px 16px}.status-banner.ok{color:#065f46;background:#e7f8ee;border-color:#a7f3d0}.status-banner.warning{color:#92400e;background:#fffbeb;border-color:#fcd34d}.status-banner.error{color:#9a3412;background:#fff7ed;border-color:#fdba74}.status-banner.critical{color:#991b1b;background:#fef2f2;border-color:#fca5a5}.level-pill{font-size:var(--text-xs);background:var(--surface-2);color:var(--on-surface-2);text-transform:uppercase;letter-spacing:.02em;border-radius:6px;width:max-content;padding:2px 8px;font-weight:600;display:inline-block}.level-pill.severity-debug{background:var(--surface-2);color:var(--ink-2)}.level-pill.severity-info{color:var(--ink-2);border:1px solid var(--border);background:0 0}.level-pill.severity-notice{color:#075985;background:#e0f2fe}.level-pill.severity-warning{color:#92400e;background:#fef3c7}.level-pill.severity-error{color:#9a3412;background:#ffedd5}.level-pill.severity-critical{color:#991b1b;background:#fee2e2}.result-heading-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.result-meta-row{align-items:center;gap:12px;display:flex}.result-heading{font-size:var(--text-lg);margin:0;font-weight:700}.result-date{font-family:var(--mono);font-size:var(--text-xs);color:var(--muted)}.ns-timings-card{margin-top:4px}.ns-timings-summary{align-items:center}.ns-timings-summary-text{font-size:var(--text-sm);color:var(--muted);text-align:right;margin-left:auto}.ns-timings-content{padding:0;overflow-x:auto}.ns-timings-table{border-collapse:collapse;width:100%;min-width:560px}.ns-timings-table th,.ns-timings-table td{font-size:var(--text-sm);padding:10px 12px}.ns-timings-table th{color:var(--ink-2);text-align:left;border-bottom:1px solid var(--border);font-weight:600}.ns-timings-table td{border-bottom:1px solid var(--border)}.ns-timings-table tbody tr:last-child td{border-bottom:none}.ns-timings-name,.ns-timings-ip{font-family:var(--mono)}.ns-timings-name{color:var(--ink)}.ns-timings-ip{color:var(--ink-2)}.ns-timings-num{text-align:right;font-family:var(--mono)}.ns-timings-avg{color:var(--ink);font-weight:700}@media (width<=600px){.ns-timings-summary{align-items:flex-start}.ns-timings-summary-text{text-align:left;margin-left:0}}.result-grade-inline{align-items:center;gap:5px;display:inline-flex}.grade-chip-score-inline{font-family:var(--mono);font-size:var(--text-xs);color:var(--ink);font-weight:600}.grade-chip-letter{color:#fff;width:20px;height:20px;font-size:var(--text-xs);font-weight:700;font-family:var(--mono);background:#6b7280;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.grade-chip-letter[data-grade=A\+]{background:var(--grade-aplus)}.grade-chip-letter[data-grade=A]{background:var(--grade-a)}.grade-chip-letter[data-grade=B]{background:var(--grade-b);color:#1a1a1a}.grade-chip-letter[data-grade=C]{background:var(--grade-c);color:#1a1a1a}.grade-chip-letter[data-grade=D]{background:var(--grade-d)}.grade-chip-letter[data-grade=F]{background:var(--grade-f)}.module-list{flex-direction:column;gap:12px;display:flex}.module-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);border-left:3px solid var(--border);overflow:hidden}.module-card[data-level=notice]{border-left-color:#7dd3fc}.module-card[data-level=warning]{border-left-color:#fbbf24}.module-card[data-level=error]{border-left-color:#fb923c}.module-card[data-level=critical]{border-left-color:#f87171}.module-summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:14px 18px;list-style:none;display:flex}.module-summary::-webkit-details-marker{display:none}.module-summary:hover{background:var(--surface)}.module-chevron{border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex-shrink:0;width:8px;height:8px;transition:transform .18s;transform:rotate(-45deg)}details[open]>.module-summary>.module-chevron{transform:rotate(45deg)}.module-name{font-weight:600;font-size:var(--text-base);flex:1}.module-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.module-entries{flex-direction:column;gap:6px;padding:8px 18px 14px;display:flex}.testcase-group{border:1px solid var(--border);border-radius:4px}.testcase-summary{cursor:pointer;font-size:var(--text-sm);align-items:center;gap:8px;padding:8px 12px;list-style:none;display:flex}.testcase-badge{flex-shrink:0;margin-left:auto}.testcase-summary::-webkit-details-marker{display:none}.testcase-chevron{border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex-shrink:0;width:8px;height:8px;transition:transform .15s;display:inline-block;transform:rotate(-45deg)}details[open]>.testcase-summary .testcase-chevron{transform:rotate(45deg)}.testcase-desc{color:var(--ink)}.testcase-entries{border-top:1px solid var(--border);flex-direction:column;gap:4px;padding:8px 12px;display:flex}.result-row{grid-template-columns:90px 1fr;align-items:flex-start;gap:10px;min-width:0;padding:6px 0;display:grid}.result-message{overflow-wrap:break-word;word-break:break-word;min-width:0}.entry-level{font-family:var(--mono);font-size:var(--text-xs)}.entry-message{font-size:var(--text-base);color:var(--ink);line-height:1.4}.mono{font-family:var(--mono);font-size:var(--text-sm)}.small{font-size:var(--text-sm);color:var(--muted)}.notice{border-radius:var(--radius);color:#92400e;font-size:var(--text-sm);background:#fef3c7;padding:10px 12px}.error-box{border-radius:var(--radius);color:#991b1b;font-size:var(--text-sm);background:#fef2f2;border:1px solid #fca5a5;padding:10px 12px}.theme-toggle{border:1px solid var(--border);color:var(--muted);box-shadow:none;background:0 0;border-radius:8px;flex-shrink:0;padding:6px 11px;font-size:1rem;line-height:1}.theme-toggle:hover:not(:disabled){box-shadow:none;background:var(--surface);color:var(--ink);transform:none}.reveal{animation:.5s both rise}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=600px){main{padding:0 16px 60px}header{width:100vw;height:auto;padding:12px 16px;left:50%;transform:translate(-50%)}.header-text{flex-direction:column;align-items:flex-start;gap:4px}.brand-logo{width:min(100%,180px)}.result-row{grid-template-columns:1fr}.score-left{flex-direction:column;align-items:flex-start}.score-meta-row{flex-wrap:wrap}.result-heading-row{flex-direction:column;align-items:flex-start;gap:8px}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1117;--bg-2:#161b22;--ink:#e8edf3;--ink-2:#8b98a7;--muted:#5a6478;--accent:#38bdf8;--accent-2:#93c5fd;--card:#161b22;--border:#2d3748;--shadow:none;--surface:#1c2330;--surface-2:#2d3748;--on-surface-2:#8b98a7;--btn-fg:#0d1117;--grade-aplus:#34d399;--grade-a:#4ade80;--grade-b:#a3e635;--grade-c:#facc15;--grade-d:#fb923c;--grade-f:#f87171}:root:not([data-theme=light]):not([data-theme=dark]) .brand-logo{filter:invert()sepia()saturate(3)hue-rotate(30deg)brightness()}:root:not([data-theme=light]):not([data-theme=dark]) .level-pill.severity-notice{color:#7dd3fc;background:#0c2233}:root:not([data-theme=light]):not([data-theme=dark]) .level-pill.severity-warning{color:#fbbf24;background:#2a1f0a}:root:not([data-theme=light]):not([data-theme=dark]) .level-pill.severity-error{color:#fb923c;background:#2a150a}:root:not([data-theme=light]):not([data-theme=dark]) .level-pill.severity-critical{color:#f87171;background:#2a0a0a}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1117;--bg-2:#161b22;--ink:#e8edf3;--ink-2:#8b98a7;--muted:#5a6478;--accent:#38bdf8;--accent-2:#93c5fd;--card:#161b22;--border:#2d3748;--shadow:none;--surface:#1c2330;--surface-2:#2d3748;--on-surface-2:#8b98a7;--btn-fg:#0d1117;--grade-aplus:#34d399;--grade-a:#4ade80;--grade-b:#a3e635;--grade-c:#facc15;--grade-d:#fb923c;--grade-f:#f87171}:root[data-theme=dark] .brand-logo{filter:invert()sepia()saturate(3)hue-rotate(30deg)brightness()}:root[data-theme=dark] .level-pill.severity-notice{color:#7dd3fc;background:#0c2233}:root[data-theme=dark] .level-pill.severity-warning{color:#fbbf24;background:#2a1f0a}:root[data-theme=dark] .level-pill.severity-error{color:#fb923c;background:#2a150a}:root[data-theme=dark] .level-pill.severity-critical{color:#f87171;background:#2a0a0a}.score-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-start;gap:20px;padding:18px 20px;display:flex}.score-left{align-items:flex-start;gap:16px;min-width:0;display:flex}.grade-badge{background:#6b7280;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:80px;display:flex}.grade-badge[data-grade=A\+]{background:var(--grade-aplus)}.grade-badge[data-grade=A]{background:var(--grade-a)}.grade-badge[data-grade=B]{background:var(--grade-b);color:#1a1a1a}.grade-badge[data-grade=C]{background:var(--grade-c);color:#1a1a1a}.grade-badge[data-grade=D]{background:var(--grade-d)}.grade-badge[data-grade=F]{background:var(--grade-f)}.grade-letter{font-size:var(--text-3xl);font-weight:700;font-family:var(--mono);color:#fff;letter-spacing:-.02em;line-height:1}.score-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.score-domain{font-family:var(--mono);font-size:var(--text-lg);color:var(--ink);overflow-wrap:break-word;word-break:break-all;margin-bottom:2px;font-weight:600}.score-meta-row{align-items:center;gap:10px;margin-top:2px;display:flex}.score-number{font-size:var(--text-2xl);font-weight:700;line-height:1;font-family:var(--mono);color:var(--ink)}.score-denom{font-size:var(--text-base);color:var(--muted);font-weight:400}.score-label{font-size:var(--text-xs);color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em}.score-cats{flex-direction:column;flex:1;justify-content:center;gap:7px;min-width:180px;display:flex}.score-cat-row{grid-template-columns:90px 1fr 28px;align-items:center;gap:8px;display:grid}.score-cat-name{font-size:var(--text-xs);color:var(--ink-2);text-align:right;white-space:nowrap}.score-cat-bar-track{background:var(--surface-2);border-radius:999px;height:6px;overflow:hidden}@keyframes score-bar-grow{0%{width:0}to{width:var(--bar-pct)}}.score-cat-bar{background:var(--bar-color,#22c55e);height:100%;width:var(--bar-pct);border-radius:999px;animation:.5s cubic-bezier(.4,0,.2,1) both score-bar-grow}.score-cat-num{font-size:var(--text-sm);font-family:var(--mono);color:var(--ink-2);text-align:right}.score-cat-row[data-untested] .score-cat-name,.score-cat-row[data-untested] .score-cat-num{opacity:.45}.score-partial-notice{font-size:var(--text-sm);color:var(--muted);margin:0;font-style:italic}.score-bonus{border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow:hidden}.score-bonus-summary{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--text-sm);align-items:center;gap:10px;padding:10px 14px;list-style:none;display:flex}.score-bonus-summary::-webkit-details-marker{display:none}.score-bonus-summary:hover{background:var(--surface-2)}.score-bonus-chevron{border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex-shrink:0;width:7px;height:7px;transition:transform .15s;transform:rotate(-45deg)}details[open]>.score-bonus-summary>.score-bonus-chevron{transform:rotate(45deg)}.score-bonus-title{flex:1;font-weight:600}.score-bonus-status{font-size:var(--text-xs);background:var(--surface-2);color:var(--ink-2);border-radius:999px;padding:2px 8px;font-weight:600}.score-bonus-status[data-met=yes]{color:#065f46;background:#e7f8ee}.score-bonus-list{border-top:1px solid var(--border);flex-direction:column;gap:5px;padding:10px 14px;display:flex}.score-bonus-item{font-size:var(--text-sm);color:var(--muted);align-items:center;gap:8px;display:flex}.score-bonus-item[data-met=yes]{color:var(--ink)}.score-bonus-item[data-met=no]{color:var(--muted)}.score-bonus-icon{text-align:center;width:18px;font-size:var(--text-sm);flex-shrink:0}.score-bonus-item[data-met=yes] .score-bonus-icon{color:var(--grade-a)}.score-bonus-item[data-met=no] .score-bonus-icon{color:var(--grade-f)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) .score-bonus-status[data-met=yes]{color:#4ade80;background:#052e16}}:root[data-theme=dark] .score-bonus-status[data-met=yes]{color:#4ade80;background:#052e16}.fork-ribbon{z-index:9999;pointer-events:none;text-indent:-999999px;width:12.1em;height:12.1em;font-size:13px;text-decoration:none;position:absolute;top:0;right:0;overflow:hidden}.fork-ribbon.fixed{position:fixed}.fork-ribbon:hover,.fork-ribbon:active{background-color:#0000}.fork-ribbon:before,.fork-ribbon:after{box-sizing:content-box;width:15.38em;height:1.54em;display:block;position:absolute;top:3.23em;right:-3.23em;transform:rotate(45deg)}.fork-ribbon:before{content:"";pointer-events:auto;background-color:#a00;background-image:linear-gradient(#0000,#00000026);padding:.38em 0;box-shadow:0 .15em .23em #00000080}.fork-ribbon:after{content:attr(data-ribbon);color:#fff;text-shadow:0 -.08em #00000080;text-align:center;text-indent:0;border:.08em dotted #ffffffb3;border-width:.08em 0;margin:.15em 0;padding:.15em 0;font:700 1em/1.54em Helvetica Neue,Helvetica,Arial,sans-serif;text-decoration:none}.fork-ribbon.right-bottom{top:auto;bottom:0}.fork-ribbon.right-bottom:before,.fork-ribbon.right-bottom:after{top:auto;bottom:3.23em;transform:rotate(-45deg)}.print-button{color:var(--ink-2);border:1.5px solid var(--border);font-size:var(--text-sm);background:0 0;padding:6px 14px}.print-button:hover:not(:disabled){background:var(--bg-2)}@media print{:root,:root[data-theme=dark]{--bg:#fff;--bg-2:#f4f6f9;--ink:#000;--ink-2:#333;--muted:#666;--card:#fff;--border:#ccc;--surface:#fff;--surface-2:#eee;--on-surface-2:#333;--lightningcss-light:initial!important;--lightningcss-dark: !important;color-scheme:light!important}body{color:#000!important;background:#fff!important}.header-controls,[data-testid=test-form],.fork-ribbon,.version-footer,.print-button{display:none!important}header{background:0 0;border-bottom:none}[data-testid=results-view].card{background:0 0;border:none;padding:0}details>summary{list-style:none}details>summary::-webkit-details-marker{display:none}.module-chevron,.testcase-chevron,.score-bonus-chevron{display:none!important}.module-summary,.testcase-summary,.score-bonus-summary{cursor:default;pointer-events:none}.module-card,.testcase-group,.score-card,.ns-timings-card{break-inside:avoid}.level-pill{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:0 0!important;border:1px solid!important}.status-banner{background:0 0!important;border:2px solid!important}.score-cat-bar{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#333!important;animation:none!important}.score-cat-bar-track{border:1px solid #ccc;background:#eee!important}.grade-badge,.module-card{-webkit-print-color-adjust:exact;print-color-adjust:exact}.module-summary:hover,.score-bonus-summary:hover{background:0 0!important}*{transition:none!important;animation:none!important}main{max-width:100%;padding:0}[data-testid=share-button]{display:none!important}}.version-footer{justify-content:center;margin-top:auto;display:flex}.version-box{font-family:var(--mono);font-size:var(--text-xs);color:var(--muted);background:var(--bg-2);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;padding:8px 16px;display:inline-flex}.version-row{gap:8px;display:flex}.version-name{color:var(--on-surface-2);min-width:7em}
