*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a1a;background:#f5f5f5;font-family:system-ui,-apple-system,sans-serif}.app{max-width:1200px;margin:0 auto;padding:2rem 1rem}header{text-align:center;margin-bottom:2rem}header h1{font-size:2.5rem;font-weight:700}.subtitle{color:#666;margin-bottom:1rem}.search{border:2px solid #ddd;border-radius:8px;outline:none;width:100%;max-width:400px;padding:.75rem 1rem;font-size:1rem;transition:border-color .2s}.search:focus{border-color:#005ea1}.count{color:#888;margin-top:.5rem;font-size:.9rem}.center{text-align:center;padding:4rem;font-size:1.2rem}.error{color:#e8112d}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.card{background:#fff;border-radius:12px;gap:1rem;padding:1rem;transition:box-shadow .2s;display:flex;box-shadow:0 1px 3px #0000001a}.card:hover{box-shadow:0 4px 12px #00000026}.portrait{object-fit:cover;border-radius:8px;flex-shrink:0;width:80px;height:100px}.info{flex-direction:column;gap:.25rem;display:flex}.info h2{font-size:1rem;font-weight:600}.parti-badge{color:#fff;border-radius:4px;width:fit-content;padding:.15rem .5rem;font-size:.8rem;font-weight:600;display:inline-block}.info p{color:#555;font-size:.85rem}.meta{color:#888;font-size:.8rem}
