:root{--ink:#16181d;--muted:#666b75;--line:#e2e4e8;--panel:#f6f7f9;--accent:#3b5bdb;--bad:#c92a2a;--good:#2b8a3e;--navy:#1f2a44;color-scheme:light}*{box-sizing:border-box}body,html{margin:0;padding:0;background:#fff;color:var(--ink)}body{font:14px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,sans-serif}.home{max-width:640px;margin:20vh auto;padding:0 16px}.lab{padding:16px 20px 64px;max-width:1600px;margin:0 auto}.lab h1{font-size:18px;margin:0 0 4px}.lab .sub{color:var(--muted);margin:0 0 12px}.lab .bar{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.lab .bar label{display:inline-flex;gap:6px;align-items:center}.lab button,.lab select{font:inherit;padding:3px 8px;border:1px solid #c8ccd3;border-radius:6px;background:#fff;cursor:pointer}.lab button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.lab .env{color:var(--muted);font-size:12px;margin:8px 0 12px}.lab .env b{color:var(--ink);font-weight:600}.lab .drop{border:2px dashed #c8ccd3;border-radius:10px;padding:22px;text-align:center;color:var(--muted);margin:12px 0 20px;cursor:pointer}.lab .drop.over{border-color:var(--accent);color:var(--accent);background:#f3f6ff}.lab .photo{border:1px solid var(--line);border-radius:10px;padding:12px;margin:0 0 18px}.lab .photo-head{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:baseline;margin-bottom:10px}.lab .photo-head h2{font-size:15px;margin:0}.lab .status{color:var(--muted);font-size:12px}.lab .error{color:var(--bad)}.lab .cands{display:flex;gap:16px;overflow-x:auto;padding-bottom:6px}.lab .cand{flex:0 0 auto;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff}.lab .cand h3{font-size:13px;margin:0 0 8px;display:flex;gap:8px;align-items:center;justify-content:space-between}.lab .row{display:flex;gap:6px}.lab .overview canvas{width:150px;border-radius:4px;cursor:crosshair;display:block}.lab .crops{margin-top:6px}.lab .crops canvas{image-rendering:pixelated;display:block;border-radius:4px}.lab .cap{font-size:11px;color:var(--muted);text-align:center;margin-top:2px}.lab table.metrics{border-collapse:collapse;margin-top:8px;font-size:12px;width:100%}.lab table.metrics td{padding:1px 6px 1px 0;vertical-align:top}.lab table.metrics td:first-child{color:var(--muted);white-space:nowrap}.lab .badge{font-size:11px;padding:1px 6px;border-radius:10px;background:#eef0f3}.lab .badge.bad{background:#ffe3e3;color:var(--bad)}.lab .badge.good{background:#e6fcf5;color:var(--good)}.lab table.summary{border-collapse:collapse;font-size:12px;margin-top:8px}.lab table.summary td,.lab table.summary th{border-bottom:1px solid var(--line);padding:4px 10px 4px 0;text-align:left}.lab table.summary td.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lab .hint{color:var(--muted);font-size:12px}