:root{--bg:#f6f7f9;--surface:#fff;--text:#1b1f24;--muted:#5b6573;--border:#d9dee5;--accent:#1d4ed8;--accent-contrast:#fff;--bad:#b42318;--bad-bg:#fef3f2;--good:#067647;--good-bg:#ecfdf3;--warn:#b54708;--warn-bg:#fffaeb;--neutral-bg:#f2f4f7;--radius:12px;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font:16px/1.6 system-ui,-apple-system,PingFang TC,Noto Sans TC,Microsoft JhengHei,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f1216;--surface:#171b21;--text:#e6e9ee;--muted:#9aa4b2;--border:#2b323c;--accent:#6d9cff;--accent-contrast:#0b1020;--bad:#fda29b;--bad-bg:#3a1714;--good:#75e0a7;--good-bg:#0e2e1f;--warn:#fec84b;--warn-bg:#332407;--neutral-bg:#222831}}*{box-sizing:border-box}body{margin:0}a{color:var(--accent)}.mono,code{font-family:var(--mono)}.muted{color:var(--muted);font-size:.875rem}.app{max-width:760px;padding:max(16px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:16px;min-height:100svh;margin:0 auto;display:flex}main{flex:1}.app-header{align-items:center;gap:12px;display:flex}.app-header h1{margin:0;font-size:1.375rem;line-height:1.3}.subtitle{color:var(--muted);margin:0;font-size:.875rem}.tabs{background:var(--neutral-bg);border-radius:var(--radius);grid-template-columns:1fr 1fr;gap:4px;margin-bottom:16px;padding:4px;display:grid}.tabs button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:10px}.tabs button[aria-selected=true]{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #00000026}.panel{gap:12px;display:grid}.hint{color:var(--muted);margin:0;font-size:.9rem}.hint code{word-break:break-all;font-size:.8rem}.field-label{font-weight:600}.notice{border-radius:var(--radius);background:var(--warn-bg);color:var(--warn);margin:0;padding:10px 12px}textarea,input[type=file]{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}textarea{font-family:var(--mono);resize:vertical;font-size:.85rem}textarea:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.file-label{color:var(--muted);gap:6px;font-size:.9rem;display:grid}.actions{flex-wrap:wrap;gap:8px;display:flex}.actions button,.copy-btn,.link-btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;min-height:44px;padding:10px 18px}.actions button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);flex:1;max-width:240px;font-weight:600}button:disabled{opacity:.6;cursor:wait}.link-btn{color:var(--accent);text-align:left;background:0 0;border:0;min-height:0;padding:0}.results{gap:12px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);border-left-width:6px;gap:10px;min-width:0;padding:14px 16px;display:grid}.card-head{gap:2px;display:grid}.card-title{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:.9rem;font-weight:500}.verdict{margin:0;font-size:1.6rem;font-weight:700;line-height:1.25}.status-needs_update{border-left-color:var(--bad)}.status-needs_update .verdict{color:var(--bad)}.status-ok{border-left-color:var(--good)}.status-ok .verdict{color:var(--good)}.status-not_applicable{border-left-color:var(--muted)}.status-not_applicable .verdict{color:var(--muted)}.status-error{border-left-color:var(--warn)}.status-error .verdict{color:var(--warn)}.status-pending .verdict{color:var(--muted);font-size:1.2rem}.error-body p{margin:0 0 4px}.findings{gap:6px;margin:0;padding:0;list-style:none;display:grid}.findings li{align-items:baseline;gap:8px;font-size:.95rem;display:flex}.badge{background:var(--neutral-bg);color:var(--muted);border-radius:999px;flex:none;padding:1px 8px;font-size:.75rem;font-weight:600}.level-affected .badge{background:var(--bad-bg);color:var(--bad)}.level-warning .badge{background:var(--warn-bg);color:var(--warn)}.chain summary{cursor:pointer;color:var(--accent);padding:4px 0;font-size:.9rem}.chain ol{gap:10px;margin:8px 0 0;padding:0;list-style:none;display:grid}.cert{border:1px solid var(--border);border-radius:10px;min-width:0;padding:10px 12px}.cert.affected{border-color:var(--bad);background:var(--bad-bg)}.cert-role{margin:0 0 6px;font-size:.9rem;font-weight:600}.affected-tag{color:var(--bad);font-size:.85rem;display:block}.cert dl{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;font-size:.85rem;display:grid}.cert dt{color:var(--muted)}.cert dd{overflow-wrap:anywhere;min-width:0;margin:0}.fp{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.fp code{word-break:break-all;flex:200px;font-size:.78rem}.copy-btn{min-height:32px;padding:2px 10px;font-size:.8rem}@media (width<=480px){.cert dl{grid-template-columns:1fr;gap:0}.cert dt{margin-top:6px}}.app-footer{color:var(--muted);border-top:1px solid var(--border);padding-top:12px;font-size:.8rem}.app-footer p{margin:0 0 4px}
