:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#111214;--panel:#1b1d21;--line:#2c2f35;--text:#eceef1;--muted:#9aa1ab;--accent:#4f8cff;--accent-text:#fff;--danger:#ff5a5f;--ok:#3ccf8e;--radius:12px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (prefers-color-scheme:light){:root{--bg:#f6f7f9;--panel:#fff;--line:#dde1e6;--text:#15171a;--muted:#5d6570}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0}body{padding:env(safe-area-inset-top) 16px calc(16px + env(safe-area-inset-bottom))}a{color:var(--accent)}.top{max-width:960px;margin:0 auto;padding:16px 0 4px}h1{margin:0;font-size:1.4rem}h2{margin:0 0 8px;font-size:1.1rem}.tagline,.muted{color:var(--muted)}.small{font-size:.85rem}.tagline{margin:4px 0 0}.app,.eval{gap:12px;max-width:960px;margin:0 auto;padding-top:12px;display:grid}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.panel.error{border-color:var(--danger);color:var(--danger);font-weight:600}.panel.ok{border-color:var(--ok)}.row{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}progress{width:100%;height:8px;accent-color:var(--accent);margin-top:8px}.pick,.export{grid-template-columns:1fr 1fr;gap:8px;display:grid}.button{text-align:center;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);min-height:48px;color:var(--text);font:inherit;cursor:pointer;justify-content:center;align-items:center;padding:10px 14px;font-weight:600;text-decoration:none;display:inline-flex}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.button input[type=file]{display:none}.button:disabled{opacity:.45;pointer-events:none}.button:has(input:disabled){opacity:.45;pointer-events:none}.toolbar{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:8px;display:flex}.segmented,.zoom{border:1px solid var(--line);border-radius:var(--radius);display:inline-flex;overflow:hidden}.segmented button,.zoom button{font:inherit;background:var(--panel);color:var(--text);cursor:pointer;border:0;min-height:40px;padding:8px 12px}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--accent-text)}.zoom output{text-align:center;font-variant-numeric:tabular-nums;align-self:center;min-width:3.2em}.viewport{border-radius:var(--radius);border:1px solid var(--line);touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch;max-height:70vh;overflow:auto}.viewport canvas{image-rendering:auto;width:100%;height:auto;display:block}.checker{background-color:#fff;background-image:linear-gradient(45deg,#c8ccd2 25%,#0000 25%),linear-gradient(-45deg,#c8ccd2 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#c8ccd2 75%),linear-gradient(-45deg,#0000 75%,#c8ccd2 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px}.settings summary{cursor:pointer;font-weight:600}.settings label{gap:4px;margin-top:10px;display:grid}.settings input[type=range],.settings select,.controls select{width:100%;font:inherit}.foot{text-align:center;padding:12px 0}.controls{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;gap:10px;display:grid}.controls label{gap:4px;font-size:.9rem;display:grid}.totals{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px}.stat b{font-variant-numeric:tabular-nums;font-size:1.5rem;display:block}table.compare{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}table.compare th,table.compare td{text-align:left;border-bottom:1px solid var(--line);padding:6px 4px}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);display:grid;overflow:hidden}.card canvas{cursor:zoom-in;background:#000;width:100%;height:auto;display:block}.card .body{gap:8px;padding:10px;display:grid}.card .name{overflow-wrap:anywhere;font-size:.9rem;font-weight:600}.counter{justify-content:space-between;align-items:center;gap:8px;font-size:.9rem;display:flex}.counter .ctl{align-items:center;gap:6px;display:inline-flex}.counter button{font:inherit;border:1px solid var(--line);background:var(--bg);width:40px;height:36px;color:var(--text);cursor:pointer;border-radius:8px}.counter output{text-align:center;font-variant-numeric:tabular-nums;min-width:2ch;font-weight:700}.card.failed{border-color:var(--danger)}.lightbox{z-index:10;background:#000000e6;place-items:center;display:grid;position:fixed;inset:0;overflow:auto}.lightbox canvas{cursor:zoom-out;width:200%;max-width:none}@media (min-width:900px){.lightbox canvas{width:140%}}.update-banner{left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;background:var(--panel);border:1px solid var(--accent);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;max-width:560px;margin:0 auto;padding:10px 12px;display:flex;position:fixed;box-shadow:0 8px 24px #00000059}
