:root{--ink:#171717;--paper:#fff;--muted:#6b6b6b;--line:#e2e2e2;--accent:#b3854a;--error:#a13a2f;--panel:#f7f6f4}@media (prefers-color-scheme:dark){:root{--ink:#ededed;--paper:#121212;--muted:#9b9b9b;--line:#2c2c2c;--accent:#d5b07c;--error:#e08678;--panel:#1a1a1a}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}a{color:inherit}button{font-family:inherit}.wrap{max-width:640px;margin:0 auto;padding:4rem 1.5rem 5rem}.title{letter-spacing:-.01em;margin:0 0 .35rem;font-size:1.5rem;font-weight:600}.subtitle{color:var(--muted);margin:0 0 2.5rem;font-size:.95rem}.field{margin-bottom:1.75rem}.label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:.6rem;font-size:.8rem;font-weight:600;display:block}.textInput{border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);border-radius:8px;padding:.65rem .8rem;font-size:1rem}.textInput:focus{outline:2px solid var(--accent);outline-offset:1px}.dropzone{border:1.5px dashed var(--line);text-align:center;cursor:pointer;border-radius:10px;padding:2rem 1rem;transition:border-color .15s,background .15s;display:block}.dropzone:hover,.dropzone.active{border-color:var(--accent);background:var(--panel)}.dropzone input{display:none}.fileName{margin-top:.25rem;font-weight:600}.detailGrid{grid-template-columns:repeat(3,1fr);gap:.6rem;display:grid}@media (max-width:480px){.detailGrid{grid-template-columns:1fr}}.detailButton{text-align:left;border:1.5px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;border-radius:10px;padding:.85rem .9rem}.detailButton.selected{border-color:var(--accent);background:var(--panel)}.detailButton .name{margin-bottom:.3rem;font-weight:600}.detailButton .desc{color:var(--muted);font-size:.82rem;line-height:1.35}.hint{color:var(--muted);margin-top:.5rem;font-size:.8rem}.submit{background:var(--ink);width:100%;color:var(--paper);cursor:pointer;border:none;border-radius:8px;padding:.9rem;font-size:1rem;font-weight:600}.submit:disabled{opacity:.5;cursor:not-allowed}.errorBox{border:1px solid var(--error);color:var(--error);background:color-mix(in srgb, var(--error) 8%, transparent);border-radius:8px;margin-bottom:1.5rem;padding:.8rem 1rem;font-size:.9rem}.progressList{margin:0 0 1.5rem;padding:0;list-style:none}.progressList li{color:var(--muted);align-items:baseline;gap:.6rem;padding:.4rem 0;font-size:.95rem;display:flex}.progressList li.done{color:var(--ink)}.progressList li.active{color:var(--ink);font-weight:600}.progressMark{flex-shrink:0;width:1.1rem}.progressNote{color:var(--muted);margin-top:1rem;font-size:.85rem}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:.85rem;height:.85rem;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.resultHeader{margin-bottom:1.5rem}.downloadButton{background:var(--ink);color:var(--paper);border-radius:8px;margin-bottom:1.5rem;padding:.8rem 1.4rem;font-weight:600;text-decoration:none;display:inline-block}.compromiseBox{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:8px;margin-bottom:1.75rem;padding:.9rem 1rem;font-size:.9rem}.compromiseBox .heading{margin-bottom:.4rem;font-weight:600}.compromiseBox ul{margin:0;padding-left:1.1rem}.outlineMeta{color:var(--muted);margin-bottom:.75rem;font-size:.85rem}.outlineTable{border-collapse:collapse;width:100%;font-size:.88rem}.outlineTable th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-bottom:1px solid var(--line);padding:.4rem .5rem;font-size:.72rem}.outlineTable td{border-bottom:1px solid var(--line);vertical-align:top;padding:.5rem}.outlineTable tr.compromised td{background:color-mix(in srgb, var(--accent) 8%, transparent)}.startOverButton{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:8px;margin-top:2rem;padding:.6rem 1rem;font-size:.9rem}.loginBox{max-width:360px;margin:6rem auto;padding:0 1.5rem}
