:root{--bg:#e8ecf1;--ink:#1b2433;--muted:#5d6b82;--accent:#2f56c8;--ok:#17805a;--sleeve:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif}main{max-width:1100px;margin:0 auto;padding:0 12px 40px}header{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:var(--bg);padding:12px 0 10px;border-bottom:1px solid #cdd5e0}.top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}h1{font-size:1.3rem;margin:0}.count{margin:0;color:var(--muted)}.count strong{color:var(--ink);font-size:1.1rem}.bar{height:8px;background:#cdd5e0;border-radius:4px;margin:8px 0;overflow:hidden}.bar span{display:block;height:100%;background:var(--ok);transition:width .3s}.tools{display:flex;gap:6px;flex-wrap:wrap}.chips{margin-top:6px}.chips button{padding:5px 10px;font-size:.85rem}.lock input,.tools input[type=search]{flex:1 1 140px;padding:8px 10px;border:1px solid #b9c3d3;border-radius:6px;font:inherit}button{font:inherit;cursor:pointer}.lock button,.tools button{padding:8px 12px;border:1px solid #b9c3d3;border-radius:6px;background:var(--sleeve);color:var(--ink)}.tools button.on{background:var(--accent);border-color:var(--accent);color:#fff}.msg{margin:8px 0 0;color:var(--accent);cursor:pointer}section h2{margin:22px 0 0;font-size:1.05rem;display:flex;align-items:baseline;gap:10px}section h2 span{font-size:.85rem;font-weight:400;color:var(--muted)}.grid{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));grid-gap:8px;gap:8px}.card{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;padding:8px 4px 6px;background:var(--sleeve);border:2px solid transparent;border-radius:8px;color:var(--muted)}.card img{filter:grayscale(1) brightness(.85);opacity:.4;image-rendering:pixelated}.card.has{border-color:var(--ok);color:var(--ink)}.card.has img{filter:none;opacity:1}.num{font-size:.72rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.name{font-size:.82rem;text-transform:capitalize;text-align:center;overflow-wrap:anywhere}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.lock{max-width:320px;margin:20vh auto;display:flex;flex-direction:column;gap:10px}.card:disabled{cursor:default}.panel{max-height:45vh;overflow-y:auto}