:root{--ink: #16181d;--muted: #5c6370;--paper: #f6f7f9;--panel: #ffffff;--rule: #d8dbe0;--link: #1b4fd8;--fail: #c2352b;--fail-bg: #fbeae8;--warn: #a4660a;--warn-bg: #fdf3e0;--info: #1b5fa8;--info-bg: #e8f1fb;--pass: #1e7a3a;--pass-bg: #e7f4eb}*{box-sizing:border-box}body{margin:0;font:15px/1.55 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--paper)}.app{max-width:72rem;margin:0 auto;padding:1.5rem 1.25rem 4rem}.masthead{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;border-bottom:2px solid var(--ink);padding-bottom:1rem;margin-bottom:1.25rem}.masthead h1{margin:0;font-size:1.5rem}.tagline{margin:.2rem 0 0;color:var(--muted)}.repo-link{color:var(--link);text-decoration:none;font-weight:600}.repo-link:hover{text-decoration:underline}.dropzone{border:2px dashed var(--rule);border-radius:8px;background:var(--panel);padding:1rem 1.25rem;color:var(--muted);cursor:pointer;margin-bottom:1rem}.dropzone strong{color:var(--ink)}.dropzone-active{border-color:var(--link);background:var(--info-bg)}.error{background:var(--fail-bg);color:var(--fail);border:1px solid var(--fail);border-radius:6px;padding:.6rem .9rem}.source-line{color:var(--muted);margin:0 0 1rem}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.75rem;margin-bottom:1.25rem}.card{display:flex;flex-direction:column;gap:.1rem;background:var(--panel);border:1px solid var(--rule);border-radius:8px;padding:.75rem .9rem;text-align:left;font:inherit;cursor:pointer}.card-clean{cursor:default}.card-muted{opacity:.45}.card-count{font-size:1.6rem;font-weight:700}.card-sev{font-size:.75rem;font-weight:700;letter-spacing:.06em}.card-label{font-size:.8rem;color:var(--muted)}.card-fail .card-sev,.card-fail .card-count{color:var(--fail)}.card-warn .card-sev,.card-warn .card-count{color:var(--warn)}.card-info .card-sev,.card-info .card-count{color:var(--info)}.card-pass .card-sev,.card-pass .card-count,.card-clean .card-sev,.card-clean .card-count{color:var(--pass)}.filters{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}.filters input[type=search]{flex:1 1 16rem;padding:.5rem .75rem;border:1px solid var(--rule);border-radius:6px;font:inherit}.filters select{padding:.5rem .6rem;border:1px solid var(--rule);border-radius:6px;font:inherit;background:var(--panel)}.clear-btn{padding:.5rem .9rem;border:1px solid var(--rule);border-radius:6px;background:var(--panel);font:inherit;cursor:pointer}.table-wrap{overflow-x:auto;background:var(--panel);border:1px solid var(--rule);border-radius:8px}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{padding:.55rem .75rem;text-align:left;border-bottom:1px solid var(--rule)}th{background:var(--paper);position:sticky;top:0}tbody tr:last-child td{border-bottom:none}.sort-btn{font:inherit;font-weight:700;background:none;border:none;padding:0;cursor:pointer;color:var(--ink)}.sort-arrow{margin-left:.3rem;font-size:.7rem}.row-expandable{cursor:pointer}.row-expandable:hover td{background:var(--paper)}.cell-url{max-width:26rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,Consolas,monospace;font-size:.8rem}.cell-flags{display:flex;flex-wrap:wrap;gap:.3rem}.sev{font-weight:700;font-size:.75rem;letter-spacing:.05em;padding:.15rem .5rem;border-radius:999px}.sev-fail{color:var(--fail);background:var(--fail-bg)}.sev-warn{color:var(--warn);background:var(--warn-bg)}.sev-info{color:var(--info);background:var(--info-bg)}.sev-pass{color:var(--pass);background:var(--pass-bg)}.chip{font-family:ui-monospace,Consolas,monospace;font-size:.72rem;padding:.1rem .45rem;border-radius:4px;white-space:nowrap}.chip-fail{color:var(--fail);background:var(--fail-bg)}.chip-warn{color:var(--warn);background:var(--warn-bg)}.chip-info{color:var(--info);background:var(--info-bg)}.chip-pass{color:var(--pass);background:var(--pass-bg)}.detail-row td{background:var(--paper)}.detail-row ul{margin:.25rem 0 .5rem;padding-left:1.25rem}.detail-row li{margin-bottom:.3rem}.suggested{margin:.25rem 0}.suggested code{background:var(--panel);border:1px solid var(--rule);border-radius:4px;padding:.1rem .35rem;font-size:.8rem}.empty{color:var(--muted);padding:2rem 0;text-align:center}
